tidal-radio
overview
Self-hosted multi-station live radio. People link their Tidal playlists (or submit individual tracks) to a station; the app downloads the audio, runs a fair-shuffle rotation, and streams each station as its own Icecast mount.
Replaced an earlier Last.fm-based playlist generator entirely. Built fresh with its own schema, rotation logic, and UI identity ("Transmission" — teal, worn/failing CRT aesthetic).
tech stack
Backend: Node + Express,
better-sqlite3, WebSockets.
Streaming: Liquidsoap → Icecast, fronted by Caddy.
Frontend: htmx + server-rendered fragments — no build step.
Deployment: Docker Compose, self-hosted.
links
forge.cherrysofa.com/elphiene/tidal-radio
Self-hosted on the home network — no public URL yet.