Case study // Experiment
Halloween counter: one night, one counter
A phone counter for the door on Halloween night. Two people, sweets in one hand, one free thumb.

01Context
On Halloween two people work the same door, and one of them has their hands full of candy. A counter has to be thumb-operated, stay readable under harsh string lights, and never ask anyone to aim.
And afterwards the night should end with something that still works months later.
02How it was built
One Next app with exactly two surfaces: a counting page with a thumb zone at the bottom, and a read-only display page for the second screen near the window that follows the count without interaction.
Every tenth kid triggers a full-screen scare, pure CSS with pointer-events: none so counting never stops; prefers-reduced-motion switches to a calm text variant.
After the night the result was frozen: Redis and the write endpoint came out, and every route renders statically from the year files. The nights of 2024, 2025 and 2026 stay reachable as their own pages.
The counter is built in a container with a pinned image and the same gate chain as the other projects: lint, typecheck, build, smoke test.
03What I learned
The bug sat in the effect, not the design: a modulo check swallowed the trigger right at the ten boundary, and a fixed decoration element does not survive a screen shake on a shared ancestor. Both landed as their own fix commits.
04Outcome
191 counted kids and 6 lost souls on 2026-10-31, served as static pages with a response time under a second.