An interactive chess platform that runs entirely in your browser. Play the engine, master every opening, sharpen your tactics. No server, no accounts, no build step.
Caissa is a complete chess platform packed into a static website. Open it and you can play against Stockfish with a coach that explains every best move, analyze any position from both sides with live engine arrows, replay 25 major openings line by line, study guided lessons from fundamentals to endgames, and solve 26 hand-crafted tactics puzzles. Everything runs locally in your browser: the engine is WebAssembly, the rules are pure JavaScript, and no data ever leaves your machine.
Caissa is the goddess of chess. She was born in the 1763 poem Caïssa by Sir William Jones, where the god of war invents the game of chess to win the heart of a reluctant nymph. Ever since, chess players have invoked her name for luck in lost positions: "Caissa was with me." A platform meant to guide you through the game could hardly carry any other name.
index.html play.html analysis.html openings.html guides.html puzzles.html
(3D landing) | | | | |
| v v v v v
| js/pages/*.js (one controller per page, no shared state)
| |
v +--> js/core/board.js DOM board, SVG pieces, arrows, drag & drop
js/pages/landing.js +--> js/core/engine.js Stockfish WASM worker (UCI protocol)
(Three.js scene, +--> js/core/explain.js turns engine output into human reasons
parallax camera) +--> js/core/util.js score formatting, FEN helpers
|
+--> js/data/openings.js 25 openings, 80+ variations
+--> js/data/guides.js 23 lessons with board diagrams
+--> js/data/puzzles.js 26 puzzles in 4 difficulty levels
|
v
tools/validate.mjs (replays every line and solution with chess.js)
|
v
js/lib chess.js 1.4 + stockfish.js 10 (WASM) + three.js 0.160 (vendored)
Every page owns a chess.js instance for the game state, renders it through the shared board component, and talks to Stockfish through a small UCI wrapper. The opening, guide and puzzle databases are plain JavaScript modules validated by make check.
- Six strength levels, from Beginner (a casual ~500 Elo feel) to Master (full-strength Stockfish).
- Choose White, Black or random, take back moves, resign and start over as often as you like.
- Captured material and the point balance stay visible during the whole game.
- A built-in coach: ask for a hint and it draws the best move on the board and explains it in plain words ("it develops the knight and fights for the center"). Turn on Guide me every move and it teaches you while you play.
- A free board where you control both sides: test your own ideas for White and for Black.
- The top three continuations appear as ranked arrows (1, 2, 3) with their evaluations, updating live while the engine searches deeper.
- An evaluation bar and a plain-words verdict ("White is clearly better, +1.42") tell you who is winning at a glance.
- Paste any FEN to study a position from a book, a game or a video; copy the FEN of anything you set up.
- Walk back and forward through the move list to compare alternatives.
- 25 major openings: Italian, Ruy Lopez, Scotch, Vienna, King's Gambit, Four Knights, Petrov, Sicilian, French, Caro-Kann, Scandinavian, Pirc, Alekhine, Queen's Gambit, Slav, London, Catalan, King's Indian, Nimzo-Indian, Queen's Indian, Grünfeld, Dutch, Modern Benoni, English and Réti.
- More than 80 variations, each with its idea written out: what both sides want and where the middlegame usually goes.
- Replay every line move by move or let autoplay show it; the board flips automatically for Black repertoires.
- Search by name or ECO code, filter by first move (1.e4, 1.d4, flank) or by the color you play.
23 guided lessons in four blocks, each illustrated with positions on real boards:
- Fundamentals: piece values, opening principles, castling, en passant, promotion, check, checkmate, stalemate and the basic mates.
- Tactics: forks, pins, skewers, discovered attacks, deflections, decoys, removing the defender and the back rank.
- Strategy: pawn structure, outposts and weak squares, open files and the seventh rank, the bishop pair, space, the center and prophylaxis.
- Endgames: the opposition, the square of the pawn, the Lucena and Philidor positions, pawn breakthroughs and the theoretical draws every player should know.
- 26 hand-crafted puzzles across four difficulty levels, every solution validated move by move with chess.js.
- Themes from the whole history of the game: back-rank and ladder mates, royal forks, skewers, discovered checks, deflections and overloads, plus the classics by name: the Arabian mate, Scholar's mate, Fool's mate, Anastasia's mate, Boden's mate, Légal's mate, Damiano's mate and Philidor's Legacy.
- Hints when you are stuck, instant feedback on wrong tries, and progress saved in your browser.
- Read the Fundamentals guide, then solve the Beginner puzzles.
- Play the engine on Beginner or Casual with the coach turned on.
- Pick one opening for White and one defense for Black in the library and learn their plans.
- Move up to the Tactics and Strategy guides, the Intermediate puzzles and stronger engine levels.
- Use the analysis board to review your games: paste the position where you think you went wrong and compare your move against the engine's arrows.
make devThen open http://localhost:8000. Any static file server works, there is no build step.
To validate the opening and puzzle databases:
make checkThe repository ships with a GitHub Pages workflow (.github/workflows/deploy.yml). Once in main:
- Go to Settings → Pages and set Source to GitHub Actions (one time only).
- Every push to
maindeploys automatically tohttps://<user>.github.io/Caissa/.
All asset paths are relative, so the site works from the repository subpath out of the box.
Everything is open source and vendored locally, so the site works offline:
- chess.js: rules, move generation and validation
- Stockfish (WASM): the engine behind play, hints and analysis
- Three.js: the 3D landing scene
- Vanilla HTML, CSS and JavaScript: no frameworks, no bundler
├── index.html Landing page
├── play.html Play vs Stockfish
├── analysis.html Analysis board
├── openings.html Opening library
├── guides.html Learning guides
├── puzzles.html Tactics puzzles
├── assets/ Logo artwork
├── css/ Styles (base, board, landing, pages)
├── js/
│ ├── core/ Board component, SVG pieces, engine wrapper, move explainer
│ ├── data/ Openings, guides and puzzles databases
│ ├── pages/ One controller per page
│ └── lib/ Vendored libraries
└── tools/validate.mjs Data validation script