Hosted under chess.sethpc.xyz/duplicate/ as a third game-mode card on blind_chess. With base='/', Vite emitted absolute /assets/... URLs that would fall through the Caddy /duplicate/* handler and 404 against the blind_chess Fastify backend. Setting base='/duplicate/' keeps every asset fetch inside the static handler.
Duplicate Chess
A local, single-operator browser sandbox for duplicate chess — a four-player chess variant invented by Andrew Freiberg. Four players (North, South, East, West) and four boards (NW, NE, SW, SE); each player controls one colour on two boards and must play the identical move on both. A captured piece leaves a frozen "ghost" twin on the player's other board.
This tool puts all four boards on one screen as a rotated "compass", enforces the synchronized-move coupling, renders ghosts, shows the move-legality intersection, and detects the endgame.
Develop
pnpm install
pnpm dev # run the dev server
pnpm build # production build
pnpm test # run the engine test suite (vitest)
pnpm exec svelte-check --tsconfig ./tsconfig.json typechecks the Svelte/TS code.
Design
See docs/superpowers/specs/2026-05-19-duplicate-chess-design.md for the full design,
and docs/superpowers/plans/2026-05-19-duplicate-chess-sandbox.md for the build plan.
This is v1 — a local sandbox. Networked multiplayer, AI opponents, and a free position editor are explicitly out of scope (see the spec, §7).