How I built it
A Spring Boot server runs each match and talks to both browsers over WebSockets, pushing the questions and live score updates. Matches run concurrently with thread-safe game state, and the server adds rate limiting and connection monitoring.
The frontend is plain JavaScript modules and CSS animations, built mobile-first with haptic feedback on phones.