EMCHESS
A small chess game that runs in the browser. The pieces are emoji. No accounts, no ads, no tracking, no server required. Open it and play.
DESCRIPTION
Emchess is a static web app. All the chess rules run locally with chess.js. The opponent is Stockfish, compiled to WebAssembly and run in a Web Worker so the board never freezes. The engine is made to pause before it moves, so it looks like it is thinking.
Six opponents, from a careless beginner to a strong master. Four piece sets, including a plain Unicode set for maximum clarity. Two themes: plain paper, or phosphor-green CRT with scanlines. An evaluation bar and a captured-pieces row track the battle. Positions load from the URL (?fen=…). Games export to PGN. Everything is stored in the browser, and it works offline after the first load.
REQUIREMENTS
Node 18 or newer, and npm.
BUILD
npm install npm run build
The result is written to ./dist as plain static files. Copy it to any web server; there is nothing else to configure.
DEVELOP
npm run dev
Starts Vite on http://localhost:5173 with hot reload.
DEPLOY
With PM2 and the included ecosystem file:
npm run build pm2 start ecosystem.config.cjs
This serves ./dist on port 17393. Or serve ./dist with anything else you already have (nginx, Apache, a static host). No special headers needed.
USAGE
- Click or drag a piece to move it.
- Pick your side and opponent on the New Game screen.
- Change the piece set in Settings.
- Copy PGN from the panel to save or share a game.
- Share a position by putting a FEN in the URL: /?fen=
ENGINE
The computer opponent is Stockfish (https://stockfishchess.org), licensed under the GNU GPL v3. Its files live in public/stockfish.
LICENSE
GPL-3.0-or-later. See LICENSE.
Copyright © 2026 Pablo Murad pablomurad@pm.me