- Role
- Product design, engineering, art direction
- When
- 2026, public beta
- Problem
- One jar for phone, tablet and desktop.
- Outcome
- Player notes become shipped fixes.
- Built with
- TypeScript, Canvas, Node, SQLite, Claude Code
- Live
- catchalou.eqctrl.io
CatchaLou
A live puzzle game I designed and built, from the layout system to the loop that turns player notes into shipped fixes.
- One jar, every screen. Layout is measured from the visible glass, so the jar is the same shape on phone, tablet and desktop. Everything else moves around it.
- Thumbs low, eyes high. Aim anywhere, tap to drop. Anything you tap sits in the thumb zone, anything you read sits up top.
- Tokens the canvas can read. Color, spacing, radius and type live in CSS and TypeScript, so the canvas HUD and the HTML menus share values.
- Every capsule reads without color. Each size has a locked hue and its own motif on Louie.
- Figma follows the code. A plugin rebuilds a token-bound mock of every screen from the same values.
- The cast. A drop and merge game starring Louie, our cat and the mascot of my wife Emily's streaming community.




1.AFrom a player's note to a shipped fix
- One door in, one door out. A note arrives from the game or Discord and the answer lands in the same thread, when it is logged and when the fix ships.
- The agent never touches main. Own user, no secrets, a capped API key, a daily run limit and an off switch. I approve every reply before a player sees it.
- Only a tag I cut reaches players. Main deploys itself to staging, where a second agent can test in a headless browser and report with screenshots.




















