Co-op multiplayer Minesweeper. Share a room URL and play together — everyone sees the same board in real time.
Fresh board — scan the QR code to invite someone to your room

Mid-game — cleared region, numbered border, flags on deduced mines

Multiplayer — when a player starts a new game, others see a follow notification

| Mode | Grid | Mines |
|---|---|---|
| Beginner | 9×9 | 10 |
| Intermediate | 16×16 | 40 |
| Expert | 16×30 | 99 |
| Crash Out | 16×30 | 336 (~70%) |
| Custom | any | any |
Crash Out mode designed by Jude Wallace.
Prerequisites: Docker (for the local Supabase stack)
npx supabase startThis starts Postgres, PostgREST, and the Realtime server via Docker. It applies migrations automatically on first run. The local API is at http://127.0.0.1:54321.
.env.local is already configured for this local stack — no changes needed.
npm install
npm run devOpen http://localhost:3000.
npx supabase stopWith the dev server running:
npx playwright test scripts/screenshots.spec.tsAdd a new migration file under supabase/migrations/ and restart (or run npx supabase db reset to reapply all migrations).
Point NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY at your Supabase project. Apply the migrations via the Supabase dashboard or CLI (npx supabase db push). Deploy the Next.js app anywhere (e.g. Vercel).