Back to projects

In plain English

A live quiz game like Kahoot. One person hosts on a big screen, everyone joins from their phones, and you answer in real time and race up the leaderboard. Great for parties or community events, in English or Lithuanian.

End-to-end · Solo build

Quizmo

A Kahoot-style multiplayer quiz platform for community events and game nights. Players join via QR code, compete in real time on any device, and see live leaderboards. Daily news quizzes auto-generated by Claude.

ProductFrontendBackendDevOps
Quizmo title screen on a living-room TV with game controller

Try it

Host a quiz with friends in 30 seconds

Open the site, pick a topic, share the QR code. No accounts, no signup, works on any device.

By the numbers

Live since

2026

quizmo.auridev.com

Game modes

3

Classic, Elimination, Team

Question types

8

Multiple choice, true/false, +6

Stack cost

~€5/mo

Hetzner + Vercel

Why I built this

Originally I wanted a quiz tool for Lithuanian Youth Society events in Denmark. Kahoot's free tier capped the player count and the free experience felt sterile. So I built my own.

3 game modes, 8 question types (multiple choice, true/false, zoom-out, year-guesser, fastest-finger, audio, video, bluff), power-ups, daily news quizzes auto-generated by Claude. Free, no accounts, works on any device.

Started with Lithuanian support for the community events. The user base shifted to friends playing in English, so I removed the translation layer earlier this year. Today it runs English-only. My friends are still the main users. The build is what interested me: real-time multiplayer on a €5/mo VPS, no serverless, no WebSocket.

How it works

1

Open, pick, share

Open quizmo.auridev.com, pick a topic, share the room code or QR with friends to host a game.

2

Play in real time

Everyone answers on their own device. Live scoring, power-ups, and a countdown that stays in sync across phones.

3

Score, podium, replay

Round summary with accuracy and rank, animated podium for the winners, one-tap replay.

A round in motion

Classic Kahoot-style multiple choice on the surface. Underneath, the server stamps each question with its own timestamp so every player's countdown stays in sync, even on flaky networks or late joiners.

Multiple-choice question with four colored answers
European Geography round, question 1 of 15

Key features

3 game modes

Classic, Elimination, Team

Power-ups

Freeze, Shield, Double points

8 question types

Multiple choice, true/false, zoom-out, year-guesser, fastest-finger, audio, video, bluff (plus wager as a round modifier)

Daily news quizzes

Topics auto-generated from major news sources via Claude AI

QR-code join

Host shares a code or QR, players join in one tap, no account needed

PWA + quiz editor

Installable on mobile, create and edit custom quizzes in the browser

Tech stack

Frontend

Next.jsReactTypeScriptTailwind CSS

PWA-installable, dark mode default, QR-code joins

Real time

Node.jsSSE

Server-Sent Events stream per player for game state, plain POST for player actions, no WebSocket

AI

Claude AI

Claude generates daily news quiz questions with structured output

Infrastructure

Hetzner

Single Next.js process on a Hetzner CX23 VPS, managed by systemd, nginx terminates TLS via Let's Encrypt, auto-deploy via GitHub Actions

Under the hood

Everyone plays in real time on their own phone, and the countdown stays perfectly in sync even on a shaky connection, because one shared clock runs the show instead of each phone keeping its own time.

The whole thing runs on one small always-on machine for about the price of a coffee a month, which is what makes a live group game possible without expensive infrastructure.

Brand & creative

Visual identity, ads, and product photoshoot

Logo, social ad creative, and styled product photoshoot generated with Pomelli, Google's AI brand toolkit.

Quizmo social ad creativeStatic ad
Quizmo multiple-choice gameplay screenshotGameplay
Friends gathered watching Quizmo on TVGame night

Install as PWA

Add Quizmo to your home screen

The site works in any browser, but installing it as a PWA gives you a native-feeling launcher icon and full-screen gameplay.

1

Open the site

Visit quizmo.auridev.com on your phone (iOS Safari or Android Chrome).

2

Add to Home Screen

Tap share (iOS) or the menu (Android) and choose Add to Home Screen.

3

Host or join

Open the app, pick a topic to host a room, or scan a QR code to join one.

Common questions

Is it free?+

Yes, completely free. No accounts, no signup, no ads. Anyone can host a room or join one.

How many players can join one room?+

The Hetzner CX23 (1 vCPU, 4GB) comfortably handles 20-30 players per room with SSE streams. Above that you'd want a bigger box, but no friend game night has come close.

What happens if I lose connection mid-game?+

SSE auto-reconnects on most networks. The client reopens the stream and rejoins with the same player ID. You keep your seat and your score as long as you reconnect before the round ends.

Can I make my own quiz?+

Yes, the built-in editor lets you create custom topics with all 8 question types. They live with the deployment, not in a public library yet.

Where do the daily news questions come from?+

A scheduled job pulls headlines from BBC, Reuters, NYT, and a few others, then Claude generates 5 questions per topic with structured output. Cached for 24h so everyone playing that day sees the same set.

Who maintains it?+

Solo side project by me, Auri. Built originally for the Lithuanian Youth Society in Denmark, now mostly used at friend game nights.

What I learned

  • ·Building it for real people, even just my friends, was the best thing I did. Problems showed up in the first five minutes of a game night, not a month later.
  • ·A live game has to handle players dropping out, rejoining, and slow phones, and none of that matters until you actually have a few people playing on different networks at once.
  • ·You do not need fancy paid infrastructure to run a live group game. A simple, cheap setup handled real game nights without ever skipping a beat.

What's next

Honest roadmap. Things I know are gaps, in priority order.

Persistent room state

Today rooms live in Next.js process memory, so a deploy or systemd restart wipes any in-progress games. Moving the room state to Redis (or even SQLite) would survive restarts and let me deploy fearlessly.

Public quiz library

Custom quizzes are saved locally to the deployment. A shared library where players can browse and play community-made quizzes would turn it from a tool into a small platform.

Player accounts and history

No accounts means no stats across games. Optional login (Google OAuth) would unlock profile stats, win history, and persistent avatars without forcing it on casual joiners.

Spectator mode and big-screen view

The host screen is split between game management and display. A dedicated spectator/projector view (read-only, big text, no controls) would clean up event hosting.

Let's talk about this project

More projects

Next.jsReactTypeScriptTailwind CSSNode.jsSSEClaude AIHetznersystemdnginx