The Wire
Four publications: two RSS-based news digests, an events calendar built from Des Moines venues’ public iCal feeds, and a weekly original-analysis title.
The architectural constraint that shaped everything: no Anthropic API key anywhere in this project’s infrastructure. Rather than a cron-triggered Worker holding a metered key, generation runs as a session with a human in the loop that writes results directly into D1. The reader-facing pages, archive, and per-publication RSS feeds all key off one metadata module, so adding a publication is one entry rather than six edits.
Honest degradation, specifically
Every dynamic Wire page reads KV for a latest-edition pointer, then D1 for the edition itself. On a fetch failure it renders a labeled “temporarily unavailable” panel — never a 500, never a blank page. Editions past a staleness threshold say so on the page, and the threshold is per-publication, because a healthy weekly title should not be labeled stale after two days.
The iCal work
workers/wire/src/ical.ts is a hand-written RFC 5545 parser with windowing by
event date, title deduplication, and a minimum lead time — unit-tested against
fixtures shaped to each venue’s real output, then proven against live feed data
before the first edition published.