Repository navigation
Roadmap #200
⚠️ Breaking changes
- The manager password moved from
config/game.jsonto aMANAGER_PASSWORDenvironment variable, with an optionalJWT_SECRET(at least 32 characters). Update your configuration before upgrading. - Most manager and quiz actions now go through a REST API instead of WebSocket events, using signed session tokens. Forks and branches built on the old socket events will need rebasing. (#199)
- Behind your own reverse proxy, allow request bodies up to 100 MB (for example
client_max_body_size 101m;in nginx), or media uploads will fail.
✨ New features
- Manager game bar: a bottom bar on every screen with the player count, the join link and PIN, fullscreen, a room lock and game settings. (#203)
- Game settings:
- Media uploads: upload images, audio and MP4/WebM videos up to 100 MB from the question editor, and reuse them from a media library with search, type filter, and grid and list views. Files are stored in
config/media. (#62) - Estimation questions: players answer with a number, using a slider or by typing it, and are scored by how close they get. (#130)
- Question categories: consecutive questions in the same category play as one round, and the leaderboard only shows between rounds. (#204)
- Answer explanations: an optional note on a question, shown when the answer is revealed. (#85)
- Vietnamese language (#178)
- Quizzes are sorted by name in natural order (Quiz 2 before Quiz 10). (#237)
- The correct answer color can be configured through branding.
WEB_PORTandSOCKET_PORTset the ports when running without Docker.- The quiz editor checks your input as you edit, and loading screens now show skeletons.
🐛 Fixes
- Answers are no longer hidden on phones when a question has media, because the media now opens in a popup. (#188)
- Long answers get the full width on narrow screens. (#153)
- A correct answer counts as correct even when the question gives 0 points, including answers sent at the very end of the timer. (#185)
- Ranks are translated on the result and finish screens, with the right English ordinals (21st, 22nd, 23rd). (#214, #216)
- Results show the real correctness and points of each question.
- More reliable game flow and reconnections, game timers stop when a game is removed, and the skip button stays clickable across rounds.
- The podium spotlight plays when the winner is revealed.
- Accessibility labels and missing translations were added.
🧪 Internal
- Unit, integration and Playwright end-to-end tests run on every pull request. (#249)
- The socket server is now bundled with rolldown, shared dependencies use a pnpm catalog, and the docs and contributing guide were reworked.