A customer holds a catalog and operates stations. A station is on air around the clock with no process behind it: what plays is a pure function of the clock, the library and the rotation, and listeners fetch segments that were cut once.
- Multi-tenant from the first table: every row and every stored object carries its customer, and every query names it.
- Sign-in, organisations and roles through a shared identity service; a program acts for a customer with an API key.
- Catalog of titles with their sheets (ISRC, credits, tempo, key). Masters upload in parts; the original is kept and never replaced.
- Mastering in Rust, native and in WebAssembly: loudness and true peak (BS.1770), corrective EQ, width, look-ahead limiter.
- Ingest in a container started per job, which holds a token for that job and nothing else: AAC-LC at 48 kHz in six-second MPEG-TS segments.
- Stations as HLS: a schedule computed from the clock, rotations that change at an item boundary, station idents.
- Listener report from playlist requests, without storing an address; every play logged with the operator at that moment.