Draft Chess Awaits
I’ve always been a fan of different chess variants, especially Chess960. Draft Chess gives you that randomness and adds some strategy to the pre-game setup. If you haven’t seen it yet, check out Draft Chess. Here I’ll go over some features, the application backend, and what’s planned for the application.
Placement Variants
The default placement setting involves players drafting a group of pieces, then choosing from several placement options for those pieces. Kings are placed at the end of the draft, which can push other pieces in the column up, for example shifting a bishop diagonal or moving a piece out of threat from an enemy bishop.
In Bunker, players place the kings first, then players build a defense (and offense) with the king placements locked in.
REVERSE! allows players to draft their opponents’ pieces instead, while Alternating mode alternates which player is drafting which pieces. Alternating mode will probably be removed soon, but I’d like to get some feedback on it first.
All Random randomizes all draft selections, allowing players to skip the setup and jump into a game of maximum randomness chess. King placements are pseudo-random (avoiding placing into immediate threat).
Features
- Modes: live and correspondence games, local (hotseat) games, gameplay tutorial, AI
- Glicko-2 ELO system (same ELO system as lichess)
- Chat with reporting & admin backend for banning & verifying players
- Observers for public games
- Lobby showing open and current games
- Friends lists, private messaging, notifications
- Abort games early for minimal (20% of normal) ELO hit, or cancel for no ELO impact (draft phase only, requires both players to agree)
- “Rich Mahogany and Leather-bound Books” theme
- Challenge players, offer rematches
- Timer for disconnects, reconnecting to the server automatically returns players to live games if they have any active
- Game history is shown in the side panel, with stepping to different stages of the game
- Sandbox mode enabled after games finish to explore positions
- Ranked games are stored and can be played in sandbox mode
Tech stack
| Layer | Technology |
|---|---|
| Server | Node.js, Express, Socket.IO hosted on VPS |
| Database | PostgreSQL |
| Cache | Redis (lobby rooms, room invites) |
| Ratings | Glicko-2 (glicko2-lite) |
| Auth | Google OAuth 2.0, HTTP-only session cookies |
| Frontend | React 19, TypeScript, Vite |
| AI | Modified Stockfish |
| Testing | Vitest, React Testing Library, Socket.IO integration tests |
On the roadmap
- Better AI (piece placement and gameplay)
- Premoves
- Email notifications
- More game modes
- Saving favorite draft outcomes to start new custom games from that position
- More themes (with other graphics)
- Achievements
Want to try a game? Invite a friend, pick up a match in the lobby, or join the Draft Chess Discord to find opponents and chat. Feedback, bug reports, and suggestions are all welcome - message me anytime. I’m also looking for help managing the Discord server if you’re interested.