Chess vs. Stockfish
A full engine in a Web Worker, no backend
React · JavaScript · Web Workers · chess.js · Vercel
Stockfish runs client-side in a Web Worker, so the engine never blocks the interface and no backend is required for move calculation — which removes the latency and the hosting bill in one decision. Rules and move validation are handled by chess.js, keeping the engine integration concerned only with search.
Five difficulty levels run from Beginner to Grandmaster, with real-time position evaluation, move suggestions and full history in algebraic notation. The interface uses click-to-move rather than drag-and-drop — which is both more accessible and far better on touch — with legal-move highlighting, last-move indication, four board themes, four piece styles and optional sound.
The component split is deliberately conventional: a game orchestrator, a board renderer, an AI adapter that owns all engine communication, a move history view and a controls panel. Keeping every Stockfish message inside one adapter is what makes the difficulty levels and the evaluation display straightforward instead of tangled.