I built and shipped a daily puzzle game called ALLEGEDLY — one redacted celebrity story a day, three strikes to name who it was. It is free, there is no signup, and it takes about ninety seconds to play. You can try today’s edition here.
I want to write about the build rather than the game, because the interesting part is where AI-assisted development actually earned its reputation and where it quietly did not.
What genuinely collapsed
The scaffolding. A game like this needs a lot of unglamorous machinery: streak tracking, a guess-distribution chart, share-receipt generation, an email capture that writes to a database, a daily scheduler, an archive that publishes yesterday’s answer. None of that is intellectually hard. All of it is hours of typing.
That is the work that compressed the most — not because the AI was clever, but because the problems were well-understood and the patterns already exist a thousand times over. If a competent developer would solve it without thinking, it goes fast.
The other genuine win was throughput on the boring-but-necessary: privacy policy, terms, cookie policy, an editorial standards page. Real pages that a real site needs and that nobody enjoys writing.
The bug that nearly shipped
Here is the one worth the whole post.
The game works out which puzzle is “today’s” from the player’s local date. The archive that publishes past answers gets built on a server, and build servers run in UTC. Those two facts are individually boring and jointly a disaster: when it is already tomorrow in UTC, a player in Los Angeles is still on today, still playing today’s puzzle — and a UTC-timed build will happily publish that answer to the public archive while they are mid-guess.
Nothing errors. No test fails. The site deploys green. It just silently spoils the game for everyone in the Americas.
It surfaced only because the same build ran on two machines in different timezones and produced different output. The fix is to publish a case only once its day has ended in UTC-12 — the furthest behind any player on earth can be. The archive lags by up to a day, which costs nothing, and it is now impossible to spoil a live puzzle for anyone.
The lesson is not “AI writes buggy code.” A human would have written the same thing. The lesson is that the failure modes that survive AI-assisted development are the ones that don’t throw errors — the silent, correct-looking, wrong-in-context ones. Speed increases how much code you produce. It does not increase how much of it you have actually thought about. That gap is where the real bugs now live.
Automate the check, not just the work
The practical response was to write a test that asserts the property rather than the output: for every UTC offset from -12 to +14, whatever puzzle is live for a player at that offset must not appear anywhere in the published archive. Twenty-seven assertions that encode the actual rule.
This is the habit I would take from the whole exercise. If AI assistance makes producing code cheap, then the scarce resource is confidence that the code is right. Spend the saved time there. Verification is now the bottleneck worth automating, and it is the thing people skip because shipping feels productive and testing feels like overhead.
The part it could not do
Every puzzle in the game is about a real person. So the first real decision was editorial, not technical: what is allowed to be a puzzle?
The rule I settled on is that a case has to be a matter of public record — a criminal conviction or guilty plea, a civil judgment, an official ruling by a governing body, or something that happened live on camera in front of millions. No anonymous tips, no rumours, no speculation about anyone’s private life, nothing where a person was accused and never found responsible. That last one rules out stories that would make excellent puzzles.
Nothing about that is a technical constraint. It is a judgment about what you are willing to publish about real people who have families that can read. AI is genuinely useful for checking whether a specific claim clears the bar. It cannot decide where the bar goes. That was mine to set, and it is the decision the whole project actually rests on.
The honest scoreboard
Building the thing was the easy part, and that is the uncomfortable finding. A polished game with streaks, an archive, a daily email and a clean mobile experience went from nothing to live very quickly. Getting anyone to play it is a completely different problem that no amount of build speed touches.
That is worth sitting with if you are using AI to ship faster. It moves the bottleneck. It does not remove it — it relocates it to distribution, judgment, and knowing what is worth building at all. Those were always the hard parts.
Play today’s edition of ALLEGEDLY — and if you beat it in one guess, I’d like to know which detail gave it away.

Leave a Reply