Older posts

  1. Not like this

    The engine gets pulled apart into deep, single-purpose modules, and a day later the entire day-two Norwegian layer, carried for three weeks without a dictionary worth playing against, comes out for good.

  2. The week the game started watching itself

    A three-PR refactor trio makes the word-submission pipeline immutable and side-effect-free, then the newly-launched game gets its first stats page, a same-week AI tuning pass informed by it, docs finally caught up to the Postgres stack, and a WCAG 2.2 audit closes the week.

  3. Two kinds of ready

    A second design pass swaps oklch approximations for exact designer hex values and a machine-readable spec, then a seven-part bundle declares the game launch-ready: once-per-day enforcement, a streak counter, analytics, and a way to help pay the hosting bill.

  4. The boring stack, on purpose

    Render and Turso replaced by Railway and PostgreSQL in a single pull request, deleting the hand-written migrator Turso had forced into existence, plus a CI workflow retired in favor of agents bumping their own version.

  5. Same names, new values underneath

    A font and color rewrite that touched zero component files, a layout pass built on the tokens it introduced, and a leaderboard that started checking its own math.

  6. The screen that would not respond

    A WCAG reflow fix that became a permanent layout rule, assisted mode deleted nine days after it shipped, and an end-game screen that froze the browser until profiling found why.

  7. Thirty seconds to decide

    A tuning pass over daily mode: a per-word timer with a speed bonus, a background-timer bug that punished new players for reading the tutorial, and a board size that flip-flopped within the same day.

  8. A second snake, same engine

    Duel mode lands in one day: a turn-based match against an AI opponent that shares the daily engine and a first, cautious idea of what a safe move looks like.

  9. Serving today's puzzle

    Three days of stale PWA caches, a Turso migration table that rejected its own tracking schema twice, and the first real players finding their way in.

  10. The first pull requests

    Two days of committing straight to main end in one day: a CI workflow, a licensing swap, a WCAG audit, and the design question the game keeps coming back to.