About Chess Codex

A free, open encyclopedia of every named chess opening — built as a side project, no ads, no signup.

Who made this

I'm a high school student in Norway. I built Chess Codex in my spare time because I wanted a single reference that combined what I liked from Lichess's opening explorer (live statistics) and an encyclopedia-style site (one page per named opening with interactive board, theory, and analysis) — without ads, paywalls, or accounts in the way.

It's a hobby project. I'm still learning. If something feels rough — it probably is. Feedback is welcome via the Suggest an improvement form on any opening page.

Where the data comes from

  • Opening list (3,690 lines) — from the Lichess chess-openings dataset, public domain. ECO codes, PGN move sequences, canonical names.
  • Game statistics — fetched on demand from the Lichess Opening Explorer API and cached server-side. Win rates, popular replies, everything you see in the "Statistics from Lichess" panel.
  • Engine evaluations — Stockfish, via the Lichess Cloud Eval API, cached per opening. Only positions Lichess has already analysed return an evaluation.
  • Play vs the engine — uses Stockfish.wasm running entirely in your browser. Nothing is sent to a server for this; the engine is loaded once and runs locally.
  • Editorial descriptions — when an opening has a prose description, it was either written by me directly or accepted from a community submission via the suggest form. Pages without a curated description fall back to a generated "Overview" built from the underlying metadata.

How it's built

Vanilla PHP 8.1, MySQL, plain JavaScript (ES modules). No framework, no build step, no bundler — minified by a tiny in-repo PHP script. Hosted on shared OVH for a few euros a month. Source-first, optimised for being readable rather than clever.

Open-source libraries that do the heavy lifting: chess.js (move validation), chessground (the board UI), Stockfish.wasm (the engine for /play), Parsedown (Markdown rendering).

Privacy

No tracking, no cookies for analytics, no third-party scripts. The site stores a single cookie only if you log in as admin (that's not you). Visit counts in the admin dashboard are aggregate-only — no IP addresses, no sessions, no fingerprint. Bots and the admin's own visits are excluded from those counts.

The only outbound requests the site makes are to lichess.org for statistics and engine evaluations, and only server-side — your browser never talks to Lichess directly.

Contact

The fastest way to flag something is the Suggest an improvement form on any opening page. Bug reports, missing openings, wrong moves — everything goes there.