Realtime chess on Cloudflare Workers

A ranked chess arena at the edge.

Match with a human, challenge Edge Bot when the queue is quiet, earn Elo, and let a Durable Object govern every board with authoritative state.

Ranked Elo Edge Bot Live spectators
Editorial illustration of chess pieces connected by an orange network trail
Active match 5+0 Blitz
Elo swing +16
— active games
— spectators
— registered players
Elo after every result

Why Durable Objects

One match, one authoritative coordinator.

Realtime moves

Players and spectators connect over hibernatable WebSockets, so idle thinking time stays cost-efficient.

Strong state

Each match stores FEN, clocks, move history, and chat in SQLite-backed Durable Object storage.

Server validation

The browser proposes moves; chess.js inside the Durable Object decides what is legal.

Architecture

Workers serve the frontend. Durable Objects own the game.

The Matchmaker Durable Object pairs players by time control, then creates a named ChessMatch Durable Object. That match instance becomes the single source of truth for the board, timers, chat, and spectators.

Competitive polish

Every win has weight.

A final result triggers Elo updates, a dramatic result overlay, and confetti for winners. If no human is waiting, Edge Bot keeps the board alive.

Ready

Take the next seat.

Join the queue, or spin up a bot match instantly. The board is already waiting at the edge.

Play now