Back to earlier work

Earlier project

ChessIQ

Review your games with Stockfish in the browser, then turn what you missed into focused practice.

Built for repeated post-game use as a free local-first utility: fast first feedback, deeper analysis over time, and follow-up practice from your own positions.

Problem

Most chess apps optimize for play, content feeds, or subscriptions. I wanted a focused post-game review loop that stays useful as a free local-first utility.

Who it is for

Players who care about improving through their own games, not generic puzzles detached from recent mistakes.

What I built

I built a browser-native analysis workflow: import games, get progressive engine feedback, inspect mistakes, then keep useful follow-up practice close to the review.

Why it matters

ChessIQ closes the loop from review to practice in one place, with no account required and on-device analysis by default.

How I built it

Technical choices that support the review loop.

Browser-native engine

Stockfish runs in-browser with WebAssembly and workers, keeping core review on the player’s device instead of depending on a remote engine service.

Progressive analysis

ChessIQ gives quick first feedback, then refines deeper analysis over time without treating early shallow results as final.

Trustworthy review state

The app separates decision-time and post-move evaluations, guards against stale engine output, and avoids noisy label changes during live refinement.

Local study memory

Reviewed games, analysis history, training state, and preferences persist locally so repeated study becomes more useful over time.

Real-world imports

The importer handles PGN paste/upload, Chess.com and Lichess sources, and imperfect export data without requiring account setup.

Technical notes

  • Next.js + TypeScript app for dense analysis and study flows
  • WebAssembly worker orchestration for browser-native engine execution
  • IndexedDB-backed persistence strategy for larger local datasets
  • Responsive UX tuned for desktop review and mobile post-game sessions

What I learned

  • A clear review loop beats feature sprawl.
  • Trust comes from stable behavior, not just strong engine depth.
  • Data edge cases are product work, not cleanup work.