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 (c) 2026 Pablo Murad