Notes
What we changed, measured or learned, dated.
- What rendering all 1,481 voices in production found A full catalogue sweep against production found 169 failing voices - and the cause was a memory quota, not the voices. What we changed. 2026-08-08
- Why we meter minutes instead of characters Per-character pricing is a pass-through of somebody else's bill. Running our own models changes what the honest unit is - and makes retries free. 2026-08-10
- Watermarking every render, and the bug that taught us how Why every Naadly render carries an AudioSeal watermark and a synthetic-media header - and the thread-local state bug that broke it after the first request. 2026-08-11
- Japanese text to speech needs a real front-end, not a bigger model Kanji readings and pitch accent are dictionary problems. How we measured it, and why we refuse the other languages that model claims. 2026-08-12
- A cold container deleted an entire language from the shop A five-minute cold start made every Hindi and Japanese voice vanish and turned saved voices into server errors. The cache design that caused it. 2026-08-09
- Consent records that outlive the account that made them Deleting a workspace removes everything - except the cloning consent records and the admin audit log. Why those two exceptions are the right ones. 2026-08-14
Or just try it
Reading about a voice is a poor substitute for hearing one. Every voice has a free sample, the free plan needs no card, and the policies say what happens to your data before you sign up rather than after.