Case Study Live i produktion Spil · iOS + Web

QuizFight – Realtime Trivia Duels

En realtime quiz-platform med 5 forskellige spilmodes, 160+ kategorier, AI-genererede spørgsmål der aldrig gentager sig, character creator og rank-progression fra Fetus til Mad Scientist. Bygget af Halfdan Harring som både web-app og native iOS-app.

5
Spilmodes
160+
Kategorier
10
Rank-niveauer
AI-spørgsmål

Konteksten

I en tid hvor AI gør det trivielt at google ethvert svar, ville jeg bygge et produkt der fejrede den ene ting AI ikke kan erstatte: din egen hjerne. QuizFight er svaret – en quiz-platform der ikke bare er "endnu en trivia-app", men en hel ranglistebaseret oplevelse med karakterer, daglige udfordringer og turneringer for op til 8 spillere.

Målet var at gøre quiz vanedannende igen. Ikke bare 10 spørgsmål og slut – men progression, karakter, socialt spil og rigtig konkurrence på tværs af 160+ kategorier.

De tekniske udfordringer

1. Realtime-duels uden forsinkelse

To spillere skal se hinandens svar afgivet i realtime. Det betyder lav latency, optimistiske updates og stærk state-synkronisering — bygget på Firebase Realtime Database med et eget reconciliation-lag.

2. AI-genererede spørgsmål der aldrig gentager sig

Spørgsmål genereres dynamisk via OpenAI-modeller med streng kvalitetskontrol: faktatjek-pipeline, sværhedsgrads-scoring og deduplikering mod et voksende korpus. Resultatet er friske spørgsmål til hver runde — uden manuel kuration.

3. 5 forskellige spilmodes i én kodebase

Online Quiz, Streak Run, Quiz Cup, What Year? og What Country? deler samme core-engine, men har vidt forskellige regler. Løst med et strategy-pattern hvor hver mode er sin egen isolerede state-machine.

4. Cross-platform: web og native iOS på samme backend

React-baseret web-app og native iOS-app (App Store: Quiz Fight: Guess What?) deler den samme backend. Login, leaderboards og venneliste fungerer sømløst på tværs af platforme.

Arkitekturen

QuizFight er bygget som et serverless-first system med fokus på lave driftsomkostninger og høj reaktivitet.

FRONTEND React + Vite + Tailwind • SwiftUI (iOS) • Optimistic UI for øjeblikkelig respons
BACKEND Firebase Functions (Node.js/TypeScript) • Firestore + Realtime Database
AI OpenAI til spørgsmålsgenerering med faktatjek-pipeline og sværhedsgrads-scoring
LOGIN Firebase Auth: Sign in with Apple/Google + email/password
DRIFT Firebase Hosting (web) • App Store Connect (iOS) • Crashlytics + Analytics

Resultatet

  • Live i produktion med både web-app og native iOS-app i App Store
  • 5 unikke spilmodes — fra hurtige 5-spørgsmåls-runder til turneringer med 8 spillere
  • 10 rank-niveauer der giver spillere langsigtet progression
  • Character creator med flere lag af tilpasning
  • Asynkrone duels: udfordr venner og afgør runden over flere dage
  • Daglige challenges der nulstilles for alle spillere samtidig
  • 160+ kategorier der dækker alt fra geografi til popkultur

Hvad jeg lærte

Realtime er en feature – ikke et teknisk valg. At se sin modstander svare live føles helt anderledes end at vente på et resultat. Det forvandler en quiz til et spil — og det er det, der får spillerne til at blive hængende.

AI som content engine kræver rammer. Råt LLM-output kan ikke bruges. En pipeline med faktatjek, sværhedsgrads-scoring og deduplikering gør forskellen mellem "okay" spørgsmål og "rigtigt godt indhold".

Native iOS giver tillid og distribution. Tilstedeværelsen i App Store åbnede for en helt anden brugergruppe end web-appen alene. Det var værd at investere i — også som solo-udvikler.

Skal du bygge noget lignende?

Realtime, AI-genereret indhold eller cross-platform (web + iOS)? Det er præcis den slags projekter, jeg elsker at bygge.

Book 20 min. intro