The ChessMaster
- Year
- 2023
- Role
- Design & build
- Stack
- Next.js, TypeScript, Supabase, WebSockets, chess.js
The ChessMaster is a real-time multiplayer chess game you play in the browser with friends. You create a room, send the invite, and the game happens live: every move shows up instantly for both players and for anyone watching. You can play it here, and the code is on GitHub.
Why I built it
I’ve always loved chess, and building a way to play it with my friends felt like the perfect project.
It’s also a genuinely real-time problem. Most web apps are fine if data shows up a second late. A chess game isn’t. If your opponent moves and you don’t see it, the game is broken.
How it works
- Create an account. You land on your own dashboard.
- See your history. The dashboard lists the games you’ve played.
- Open a game room and invite your friends.
- The first friend to join is your opponent.
- Everyone else who joins is a spectator. They watch the game live, move by move. It’s like having your own live audience.
The real-time part
Two pieces do most of the work:
- chess.js knows the rules. It checks whether a move is legal and tracks the full game state: whose turn it is, check, checkmate, stalemate and draws. Chess has plenty of edge cases (castling, en passant, promotion), and chess.js handles all of them.
- Supabase Realtime keeps everyone in the room in sync over WebSockets. A move goes out to the opponent and every spectator straight away, with no refreshing and no polling.
Supabase is also the database behind the app.
Under the hood
- Next.js and TypeScript
- Supabase for the database and Realtime
- chess.js for move validation and game state
- Tailwind CSS for the interface
- Deployed on Vercel
Try it
Grab a friend, open thechessmaster.vercel.app, create a room and send the invite. If you find a bug, or you beat me, let me know on X.
More projects
All projects
GrowthSense
2026A tax practice site that turns anxious visitors into WhatsApp messages, with free calculators that do real work.
Astro · React · TypeScript · Three.js · Vitest
Softly Drawn
2026A gallery-like portfolio for a digital artist, with a WebGL hero and artwork that morphs between pages.
React · TypeScript · Three.js · GSAP · Vite