The problem
A quiz played together only works if everyone sees the same question and the same clock. Polling a server for updates makes players drift apart and makes the leaderboard lag behind.
What we built
Each room is a WebSocket group. The server holds the room's state, runs the countdown and pushes each question, score update and the final leaderboard to every player at once.
Key features
Live rooms
Players join a room by code and play the same questions in step.
Server-run countdown
The clock runs on the server, so every player sees the same time remaining.
Live scores and leaderboard
Scores update as answers arrive, ending with a final leaderboard.
Battle mode
Rooms can be grouped into a battle for team-against-team play.
Question bank by level
Education levels, fields of study, subjects and topics.
Story mode and culture packs
Story levels with slides and quizzes, and culture quiz packs that can be unlocked.
Certificates and plans
Certificates for players, and paid plans that raise question limits and duration.
Guest play
Guests can take part; old guest submissions are cleaned up automatically.
Engineering challenges
Keeping every player on the same clock
The countdown runs server-side and is broadcast to the room's group, rather than trusting each browser's timer.