Podcast City started as one idea: a podcast player that grows an isometric city from your real listening history. Each genre becomes a district, the shows you finish become landmarks, and the whole thing is a truthful portrait of what you listen to rather than a game with its own loop.
The guiding rule for the whole app is that it rewards listening well, never time spent in the app. No streaks you can lose, no currency, nothing that’s ever taken away.
The player above opens a working demo: subscribe to real shows and listen. Everything you do stays in your own browser.
I tried three versions of the city. The first built every building from shapes in code, and looked like a mess of generated pixels. The second was a hex world from Kenney’s Hexagon Kit, which looked far better but only came in one medieval style, so eight distinct districts were out of reach. The third used Kenney’s City Kits on a square grid of blocks.
Underneath all three the rules stayed the same. The city is a pure function of the listening log: the same history always builds the same city, new growth never moves anything already placed, and each district draws from its own random stream so one can’t shift another.
After two pivots I parked it. The visuals were taking all the time and there was no podcast app underneath yet. The code and its tests are still there, and every listening session is logged in the shape the city will need when I come back to it.
So I built the podcast player properly:
- Search and trending through the Podcast Index, via a small Cloudflare Worker that signs requests and gets feeds past CORS
- A queue you can drag to reorder, plus starring and archiving, borrowed from the bits Pocket Casts gets right
- A sleep timer that fades out, and skip intervals you can set
- Chapters, read from either the feed or the MP3’s own ID3 tags, shown as marks on the scrubber
- Transcripts, where a show publishes them, with search and tap-a-line-to-jump
- Bookmarks: one tap saves where you are without pausing, and you can stretch it into a clip and add a note later
- Light and dark themes, Sunroom and Nightcap
- It installs as an app, works offline, and everything stays on your device, with a full backup and OPML export
The part I care most about is how listening is counted. It measures content heard, not time spent: a 30-minute episode at 2x counts as 30 minutes. Replaying a bit earns nothing extra, and skipping ahead doesn’t count as hearing what you skipped.
That same data drives a heard map on the scrubber. Stretches you skipped past show as gaps in the played fill, so you can see what you missed and tap straight back to it.
Next is the progression side, badges for finishing back catalogues and keeping up with shows, and eventually the city again.