Why it exists
A daily podcast is usually a person with a microphone. This one asks a different question: can a model invent a mystery with an ending worth the drive — surprising when it lands, but earned by everything that came before — and produce it as something you’d want to listen to on a commute? The discipline is in how it’s written: the model decides the solution first and builds the story backward from it, so the reveal locks into place instead of being pulled from a hat.
How it works
Once a day, a single Claude run invents the whole case. It decides the solution first, then lays the trail backward — suspects with motives and alibis, a timeline, a handful of pieces of evidence — and writes the episode as a multi-speaker script tagged by character, third act included. It emits all of that as one structured case file: the writers’-room scaffolding that keeps the story coherent, even though only the story itself reaches the listener.
A renderer then turns the script into audio on the server, for free: the same Kokoro neural voices reader and aloud use, one voice per speaker so the narrator, the detective, and the witnesses each sound like a different person, mixed under a short cold-open sting and a low bed. The finished MP3 is published to a normal podcast RSS feed and played on the page with the episode’s summary and full transcript.
It’s a small Django app, part of the floatbird monorepo. The daily writing runs against a Claude subscription rather than the metered API, and the voices synthesize on the CPU, so a fresh episode every day costs almost nothing to keep making.
A note on the fiction
The Daily Case is entirely made up. The towns don’t exist, the people aren’t real, and no episode depicts an actual crime or a real person. Any resemblance to real events is coincidental — it’s a story show, not reporting.