Problem
Most chess apps optimize for play, content feeds, or subscriptions. I wanted a focused post-game review loop that holds up under repeated use.
Case study
Review your games with Stockfish in the browser, then train from what you missed.
Built for repeated post-game use: fast first feedback, deeper analysis over time, and training generated from your own positions.

Product capture showing the study surface: board-first review, engine-backed feedback, and the handoff toward training from real missed positions.
Most chess apps optimize for play, content feeds, or subscriptions. I wanted a focused post-game review loop that holds up under repeated use.
Players who care about improving through their own games, not generic puzzles detached from recent mistakes.
A browser-native analysis workflow: import games, get progressive engine feedback, inspect mistakes, then move into targeted training.
The product closes the loop from review to practice in one place, with no account required and on-device analysis by default.
Architecture choices tied to product outcomes.
Stockfish runs in-browser (WASM + workers), so core analysis and game data stay on the user device instead of requiring a remote engine service.
Analysis starts shallow for quick signal, then deepens over time. Players can begin review quickly without waiting for a full deep pass.
Session IDs, watchdog recovery, and throttled UI updates prevent stale engine output from creating noisy or misleading analysis states.
Heavy analysis data is stored in IndexedDB while lighter settings stay in local/session storage, supporting repeat study across many games.
The importer handles imperfect PGN exports, setup context edge cases, and stable IDs so real-world study archives remain usable.
Related writing
The technical work matters because it changes what a player can trust: which labels are final, which mistakes become training, and whether a browser-native engine can hold up in repeated study.