live-trivia.mdx
Live Trivia
A synchronized multiplayer trivia application built around real-time interactions.

Overview
Live Trivia is a multiplayer trivia application where an administrator runs a session and players join from their own devices. The important constraint is coordination: questions, hints, timers, answers, presence, and scores need to move together without every client inventing its own version of the game.
The problem
Trivia sounds simple until people answer at nearly the same time, reconnect mid-round, or watch a timer drift between devices. The application needs a single source of truth that handles frequent events while keeping the mobile player interface responsive.
Architecture
The server is treated as the authority for the room. Player events flow to the backend, game state is updated in one place, and LiveView streams the visible changes back to the browser. This keeps the browser focused on interaction and presentation instead of becoming a second game engine.
| Area | Decision |
|---|---|
| Session control | Administrator-driven room state |
| Player updates | LiveView events and patches |
| Shared state | Server-owned data model |
| Mobile support | Compact controls and responsive layouts |
Technical decisions
Phoenix and Elixir leave room for process-oriented modeling. A room can be reasoned about as an active system rather than a set of isolated form submissions. That matters for simultaneous answers, presence, and score propagation.
Current state
The project is receiving finishing touches before the deployment and repository links are published. The portfolio intentionally leaves those actions hidden until the frontmatter contains real URLs.
Lessons learned
The core lesson is that real-time interfaces benefit from ruthless clarity about ownership. Once the server owns the authoritative state, the UI can stay smaller, easier to synchronize, and easier to reason about under load.
Screenshots


