Lee Hardy Dydo

I Just Want to Know What Happened

July 2025 · Retrospectives

Most of a news feed is about things that haven't happened. Someone plans to, vows to, may, could, is expected to. I wanted the other part: who did what, already, for certain. So I built a reader that kept only that, and bought a domain for it, whathappened.dev.

What I was after

A short list I could read in a minute and trust. No speculation, no threats, no promises, no celebrity filler. If a story said someone signed, voted, was arrested or released a report, it stayed. If it said someone would, it went.

How it was made

I built and deployed the first version in one day, July 11, 2025: Next.js on Vercel, a Postgres database on Supabase, and a job that ran every six hours to pull RSS feeds from the AP, Reuters and the BBC.

Each headline went to a language model (OpenAI's GPT-4 Turbo) with a short set of rules: accept completed actions and confirmed events; reject plans, speculation, threats, ongoing investigations without a conclusion, and entertainment. For anything it accepted, it broke the headline into who, action, object and context, so the page could show a table of plain sentences instead of headlines written to be clicked.

A week later I added sign-in and started planning a $2 a month subscription. That's where the work stopped.

What happened to it

The scheduled job kept going for fifteen months after I stopped looking. Its database has 28,230 articles, and every one of them is from the BBC: the AP and Reuters feed addresses had stopped working, and nothing told me.

Of the articles the model actually judged, it accepted 974 and rejected 2,248, about three in ten kept. The other 25,008 never got judged. The calls to the model started failing in August 2025 and failed every time after early October, and the job kept fetching and saving them anyway, marked "processing failed."

So the filter worked, roughly, when it ran. What didn't work was everything around it. Nothing checked whether the sources were alive or the model was answering, and the only person who would have noticed had stopped reading.

What I'd keep

The rule itself: show what happened, leave out what might.

I've taken the site down. The domain isn't set to renew and runs out in July 2027.