--- title: "A live trivia game with phone play, built by Claude Code on Elements" author: "@chris" author_url: https://elements.dev/u/@chris published: 2026-09-30T18:27:21.325Z url: https://elements.dev/demos/a-live-trivia-game-with-phone-play-built-by-claude-code-on-uorf312o kind: post format: article --- # A live trivia game with phone play, built by Claude Code on Elements by [@chris](https://elements.dev/u/@chris) ยท 2026-09-30 ## Description Hosts build quizzes and run them on a big screen. Players join from their phones with a code, race the countdown, and see their points and rank after every question. Quizlight needed a big screen and a room full of phones that move through each question together, a fair countdown, scoring and accounts for hosts. Each of those is a part of Elements, so the agent spent its 21 minutes on the game itself. - **One game state for every screen.** A channel carries a snapshot of the game, and every join, answer and host action sends a fresh one, so the big screen and each phone redraw together. The answer and new scores join it when the question closes. - **Players join from their phones.** A player types the six-digit code from the big screen and a nickname and gets their own game page. Nicknames are unique and a game holds up to 50 players. - **Scoring timed on the server.** Each answer is timed in SQL from when the question opened, so points fall from 1,000 for an instant answer to 500 at the buzzer, with a short grace for the network. The question closes the moment the last player answers. - **A countdown in step.** Each screen turns the server's remaining time into a local deadline once per question, so the phones and the big screen count down together. - **Server calls as function calls.** The host's controls and the quiz editor call server functions straight from the page with `@rpc`. - **Data and sessions from SQL.** Migrations define the game and seed a host login with three quizzes of ten questions each. Hosts sign in with a session, and each game's controls stay with the host who started it.