bug-postmortem

  1. Giving the logic a name

    Two days pulling shared logic out of stores and routes into small, named, independently tested modules, one of which immediately surfaced a real duel bug and got its own same-day fix.

  2. The clock comes off

    The thirty-second per-word timer added three weeks ago comes out entirely, scoring reverts to pure word length times rarity, and a UI freeze traced to backdrop-filter blur turns up in three more dialogs with a blunter diagnosis than the first time.

  3. 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.

  4. 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.

  5. 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.

  6. Someone else's phone

    The first production deploy, a snake that moved without appearing to, and what the first real players found within a day.