Skip to main content
Version: 2.0 PartyKit

Sommelier Arena

A real-time blind wine tasting quiz β€” Kahoot-style, €0/month to host, zero cold starts.

How it works​

A host creates a game session with one or more wines. Each wine gets five questions (color, country, grape variety, vintage year, wine name). Participants join via a 4-digit code on their phone, answer live as the host controls the pace, and compete on a leaderboard.

Everything runs on Cloudflare: the frontend is a static Astro site on Cloudflare Pages; the game backend is a PartyKit Durable Object (Cloudflare Workers); session lists are stored in Cloudflare KV.

DocWhat it covers
Quick StartRun locally in under 2 minutes
ArchitectureRepo layout, runtime communication, DO lifecycle
Tech StackStack choices and design principles
Gameplay WorkflowPhase machine, event flow, answer/scoring rules
Event ReferenceAll WebSocket message types (client ↔ server)
Host IdentityTANNIC-FALCON-style IDs, session dashboard, rejoin
Data PersistenceDO storage keys, KV schema, what survives a restart
DeploymentCloudflare Pages + PartyKit deploy guide
Cloudflare SetupStep-by-step Cloudflare dashboard walkthrough
Contributing & EnvDev workflow, branch strategy, PR checklist, and environment setup

What's new in v2.0 (PartyKit)​

  • Zero cost, zero cold starts β€” Durable Objects wake on demand

  • Session persistence β€” create Monday, resume Wednesday

  • Participant rejoin β€” page refresh during a game reconnects automatically

  • Host identity dashboard β€” see all your past and active sessions from any device

  • Five questions per wine β€” added wine_name category

  • Configurable timer β€” 15–120 s slider at session creation

  • No-lock answers β€” participants can change their answer until the host reveals

  • 2 Γ— 2 option grid β€” cleaner layout on mobile

  • Quick Start β€” local dev setup