back to home



RedTetris
Real-time multiplayer Tetris played in rooms: completing a line penalizes the other players, and the last player standing wins. Built by a team of two as a 42 school project.
42 school · Two-person projectThe game
- ▸Each player joins a room with a nickname and room name. The first player to join becomes the owner.
- ▸The owner starts the game, triggering a countdown for everyone at the same time.
- ▸All players receive exactly the same piece sequence, generated and controlled by the server.
- ▸Completing a line sends a penalty line to your opponents. The last player standing wins.
In pictures


Under the hood
The Next.js frontend only displays what the server sends: the board, next piece, score and room members. The Node.js backend is authoritative over the entire game, including piece generation, rooms and penalty lines, and broadcasts game state via Socket.IO. It is covered by 224 Jest tests, reaching roughly 82% coverage, a requirement of the project at 42.

Frontend
- Next.js 16
- React 19
- Tailwind CSS 4
- Socket.IO Client
- GSAP
- Radix UI
Backend
- Node.js
- Express
- Socket.IO
- MongoDB
- Jest — ~82% coverage
- SWC
Context
- ▸Built with Valentin Delafosse.
- ▸The GitHub repository is private, as required for projects at 42.