Skip to content

Who Is This?

A real-time multiplayer guessing game that helps groups of strangers break the ice, powered by Cloudflare Durable Objects and Workers AI.

AstroReactCloudflareCloudflare WorkersDurable ObjectsWebSocketsWorkers AIDaisyUI
Launched February 2025

The Problem with Mixing Friend Groups

My birthday was coming up and I had invited people from completely different circles. Work friends, childhood friends, hobby friends — most of them had never met. I knew that awkward standing-around-with-a-drink energy all too well. Small talk only gets you so far when nobody shares context.

I needed an ice breaker that actually worked. Something interactive, something that could run on a big screen, and something that made people genuinely curious about each other. I didn’t find it, so I built it.

How It Works

A host creates a lobby and shares an invite code. Players join from their phones and answer a set of questions — text, numbers, multiple choice, even locations on a map. Once everyone has answered, the game begins.

Answers are revealed one clue at a time. After each clue, players vote on who they think gave that answer. Get it right early and you score big. Wait for more clues and the points drop. The tension builds with every reveal.

The host controls the pace: starting rounds, revealing clues, or letting the timer run. A dedicated spectator view throws the whole experience onto a projector or TV so everyone in the room can follow along.

AI-Powered Questions

Coming up with good questions is harder than it sounds. They need to be specific enough to be interesting but broad enough that everyone can answer. Workers AI solves this by generating tailored question sets for any context — a birthday party, a team onboarding, a company offsite, a neighborhood meetup.

Pick your event type, and the AI produces a mix of question formats that actually spark conversation. No more googling “best ice breaker questions” and ending up with the same tired list.

Real-Time Architecture

This was my first project with Cloudflare Durable Objects, and they turned out to be the perfect fit. Each lobby is a Durable Object instance that manages its own WebSocket connections, game state, and player sessions.

When the host reveals a clue, every connected player sees it instantly. When someone votes, the scoreboard updates everywhere in real time. Connection status indicators let players know they’re still in sync, and reconnection is handled gracefully — no lost game state if someone’s phone briefly loses signal.

Key architecture decisions:

  • Durable Objects hold lobby state in-memory with persistent storage as backup
  • WebSockets managed per-lobby for low-latency bidirectional communication
  • Workers AI runs server-side question generation without external API dependencies
  • Astro with React islands keeps the static shell fast while interactive game components hydrate on demand

The Stack

The frontend is built with Astro and React, styled with DaisyUI. Astro handles the static pages — landing, lobby creation, invite entry — while React takes over for the interactive game views where state changes constantly.

The entire backend runs on Cloudflare. Workers handle routing and API logic, Durable Objects manage game sessions, and Workers AI generates questions. No separate server, no database to manage, no infrastructure to babysit.

Beyond Birthdays

The game was a hit at the party, but it works for any group that wants to know each other better. Team dailies that go beyond status updates. Onboardings where new hires actually learn about their colleagues. Meetups where people leave knowing more than just names.

The format scales naturally — a lobby of 5 feels intimate, a lobby of 30 feels like a game show.

Interested in this project?

Check out the live project or get in touch to discuss similar solutions.