Skip to content

4.0.0

Latest

Choose a tag to compare

@Ralex91 Ralex91 released this 10 Oct 18:43
5aa079f

Roadmap #200

⚠️ Breaking changes

  • The manager password moved from config/game.json to a MANAGER_PASSWORD environment variable, with an optional JWT_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:
    • Nickname generator for players (#175)
    • Survey mode, with no scoring, leaderboard or podium (#181)
    • Auto-advance between questions, with a configurable delay the host can skip (#201)
    • Answers only mode, which shows only the answer buttons on player devices (#156)
  • 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_PORT and SOCKET_PORT set 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.