Zugwerk

chess and tic-tac-toe, rebuilt from the protocol up

Play in browser

What it is

Zugwerk is a real-time game platform. Play chess or tic-tac-toe in your browser or from your phone. Challenge friends, face bots at three difficulty levels, or spectate games in progress.

Every game runs with enforced clocks, increment, and draw offers. The lobby shows who's online, who's in a game, and lets you send challenges with custom time controls and side preferences.

Kick back and watch — the observation panel shows every move in real time, with a clean observer list and live game chat. Block anyone whose chat you'd rather not read. Browse demonstration games from the history, replay stored matches, and pick a side to study.

Stable reconnects. Bots, including a Stockfish wrapper for chess. Free, no ads, no analytics.

For the curious

Rust + Tokio hub, opaque relays, game servers as separate processes (and soon WASM modules). Real-time WebSocket protocol with explicit version negotiation. Postgres with continuous aggregates for game history. NGXS frontend, Capacitor for mobile.

The hub enforces clocks, relays moves, manages game lifecycles — and never interprets game state. Game servers receive opaque JSON and return opaque JSON. The protocol is versioned end-to-end.

Screenshots

Lobby with player list and active games
Lobby
Chess game mid-play
Chess
Observation panel
Observation
Zugwerk on mobile
Mobile

FAQ

Is it free?
Yes. No account fees, no microtransactions, no ads.
Do I need an account?
Yes — a free account with a username and password. No email required.
Is it open source?
The source is visible at code.serabi.de. Licence to be determined.
Bots?
Three TTT bots (random, medium AlphaZero, hard AlphaZero) and a Stockfish wrapper for chess. Self-play training pipeline is open too.
Chat moderation?
Mutual block. Block someone and they disappear from your lobby chat, game chat, and challenge list. Two-way block means no interaction at all.