An online multiplayer word game (2–4 players). Players take turns adding letters to a shared
chant; a spell is a dictionary word containing all the chant's letters (reordered, extra
letters allowed). The twist: bluffing and defiance. Canonical rules:
The Wizard's Spell.md.
For how the project is built and how AI agents collaborate on it, see AGENTS.md.
npm install
npm run demoThis builds the web app and starts the Cloudflare Worker locally (no Cloudflare account needed) on port 8787, bound to all interfaces.
- Same machine: open http://localhost:8787 in two browser windows (one creates a room, the other joins with the code).
- Another device on your network: open
http://<this-computer's-LAN-IP>:8787(find it withipconfig). Everyone who can reach that address can join the same room by code.
Create a room → share the code/link → host clicks Start once 2–4 players have joined.
npm run dev:server # terminal 1 — Worker + Durable Object on :8787
npm run dev:web # terminal 2 — Vite dev server (HMR), proxies /api to the WorkerTwo preview routes render UI in isolation (no room or server needed):
http://localhost:5173/?states— gallery of every game state from mock snapshots.http://localhost:5173/?assets— preview of the generated art assets.
npm run typecheck && npm run lint && npm test # all greenpackages/engine (pure rules + scoring), packages/dictionary (ENABLE word list + validation),
packages/shared (wire protocol), apps/server (Worker + GameRoom Durable Object),
apps/web (React + Vite). See docs/ for architecture, the rules-engine spec, and the roadmap.