Dev log·

Shanghainese TTS: a text box that talks

Type Chinese text, hear it in Shanghainese. How a ten-commit prototype ended up with rate limiting, chunking and a rewrite step.

The TTS site does one thing: you type Chinese text and it plays the text back in Shanghainese. The README describes it as a prototype of the first MVP — text in, audio out, played inline — and the landing-page repository lists it as live.

Why one provider

The README’s argument is that Shanghainese eliminates almost every text-to-speech provider. Of the three that remain, Qwen3-TTS is the only hosted one with independently published Wu-dialect quality figures, and it holds up best on hard input — which is what a public text box produces. The longer reasoning is linked from the README.

What the ten commits added

The repository started from a Create Next App commit on 23 August 2026 and had the core flow the same day. Over the next few days it gained the things a public endpoint needs:

  • Long text is split into parts, synthesised separately and joined back into one clip.
  • A playback-speed control and a WAV download.
  • An origin check and rate limiting on the synthesis endpoint, later changed to count in a shared store when one is configured, so the limit holds across serverless instances.
  • An accessibility and mobile pass.
  • On 27 September, a Shanghainese rewrite step and the production deployment config.

The project has no open items and no Reminders list; it is shipped. A related but separate project is the Shanghainese learning app.

Written on 16 Oct 2026 from the repository’s README and commit history.