Web & API Layer
The web layer is a FastAPI app: domain routers for the UI, a WebSocket for live updates, and the gateway mounted as a sub-app.
At a glance
web.pymounts and lifecycle.- Domain routers behind the UI.
ws.pybroadcasts live updates.- Jobs moving from REST polling to WebSocket.
App & routers
FastAPI hosts domain routers (projects, chapters, voices, queue, and more) plus the external gateway as a mounted sub-app. See Internal HTTP API Reference and TTS Gateway API.
Live updates
A WebSocket broadcasts progress and state so the UI updates without polling; queue updates are migrating from REST polling to the WebSocket.