A real-time multiplayer chess application built with React, Node.js, and WebSocket-driven gameplay.
Chess.app is a browser-based chess platform for live matches, matchmaking, private rooms, account-based play, and rating tracking. The project combines a React frontend with a Node.js backend and a Prisma-managed SQLite database.
Coming soon.
- Real-time chess gameplay with WebSocket updates
- Matchmaking and private room support
- Player login and registration flow
- In-game live chat
- Move history and board state tracking
- Elo rating updates after game completion
- User profile and recent game history
- Resign and draw controls
- React
- TypeScript
- Vite
- Tailwind CSS
- chess.js
- Node.js
- Express
- WebSocket (ws)
- Prisma
- SQLite
- JWT authentication
Frontend (React + Vite) Backend (Express + WebSocket)
| |
| --- REST auth requests ----------> |
| |
| --- game events / chat ----------> |
| |
| <--- board + status updates ------ |
| |
+------------------ Prisma --------------------+
SQLite database
Chess.app/
├── backend1/
│ ├── prisma/
│ ├── src/
│ ├── .env
│ ├── package.json
│ └── tsconfig.json
├── docs/
│ ├── landing.png
│ ├── login.png
│ ├── register.png
│ ├── livechat.png
│ └── game.png
├── frontend/
│ ├── public/
│ ├── src/
│ ├── package.json
│ └── vite.config.*
├── README.md
├── package-lock.json
└── .gitignore
cd backend1
npm installCreate a .env file in backend1/ with:
JWT_SECRET=your-secret-key
DATABASE_URL="file:./dev.db"cd backend1
npx prisma migrate devcd backend1
npm run devcd frontend
npm installcd frontend
npm run devOpen http://localhost:5173 in the browser.
JWT_SECRET=your-secret-key
DATABASE_URL="file:./dev.db"- Add richer matchmaking filters and queue tuning
- Improve game analytics and match history insights
- Add reconnect handling and reconnect recovery for live sessions
- Expand spectator and tournament features
- Improve UI polish and accessibility
Vinay SH




