İstanbul Chess
Live real-time multiplayer chess on Cloudflare Workers: one Durable Object per game for state isolation, WebSocket fan-out, server-authoritative clocks, and storage-backed reconnect. Ottoman vs Byzantine, playable now.
The problem
Real-time multiplayer is where hobby projects usually stop: two players need the same board, the same clock and the same result, even when one of them loses their connection mid-game.
Under the hood
- Web Client: TypeScript board UI, WebSocket connection
- Edge Worker: Routing, auth and lobby on Cloudflare Workers
- Game Durable Object: One instance per game — board, clocks, players
- Lobby + Matchmaking: Open challenges and seat assignment
- Leaderboard: Ratings and per-house win rates
- DO Storage: Persisted game state for mid-game reconnect
Outcome
Shipped, deployed and still operating: every game is its own Durable Object, so state never leaks between boards; the server owns the clocks, so neither client can cheat them; and reconnecting mid-game restores the position from storage. Playable right now at istanbulchess.com — accounts, lobby and leaderboard included, built by a competitive player (second place in Istanbul, first at university and high-school level).
Want systems built like this?
I'm open to backend and platform work, contract or permanent — on-site in Belgium and the Netherlands, or fully remote for a team anywhere in the world, US and APAC hours included. EU citizen, so no sponsorship is needed. Tell me what you're building.