Skip to main content
All Projects
gamestablev1.0.0

İ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.

typescriptcloudflare-workersdurable-objectswebsocketsreal-timeastro
Live
in production
1:1
Durable Object per game
Server
authoritative clocks
0
origin servers to run
Sole engineer

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).

Loading...

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.

Download CV