Where Am I Serving?
Real-time mission call reveal game for Latter-day Saint missionaries and their families. Guests guess where the missionary will serve on a live world map; the reveal fires on every screen at once.
What it doesLink to heading
Where Am I Serving? is a real-time mission call reveal game for Latter-day Saint missionaries and their families. When a young missionary receives their call to serve — but before the call is opened — guests guess where they think the missionary will be sent on an interactive world map. As guesses come in, every screen updates live. When the admin triggers the reveal, every device flies to the actual mission at the same moment and highlights the correct guessers.
$9 per event. No app to install. Works on any device with a browser.
StackLink to heading
- Framework: SvelteKit 2 + Svelte 5 (runes) + TypeScript
- UI: Tailwind 4 + shadcn-svelte + bits-ui, Lucide icons
- Map: Leaflet with CartoDB dark tiles + real mission pins for every mission worldwide
- Realtime: Supabase Postgres + Realtime channels — every screen updates as guesses come in
- Backend: Supabase Edge Functions for admin actions and reveal orchestration
- Analytics: PostHog
- Hosting: Cloudflare Pages via GitHub Actions
The realtime pieceLink to heading
The whole experience hinges on sync feeling instant. A guest picks a location on their phone and within the second the TV in the living room shows the new pin and name label. Any other guest watching the map sees the same update. That single second of sync is the difference between a game that feels alive and one that feels like a shared spreadsheet.
Why this stackLink to heading
SvelteKit + Supabase + Cloudflare Pages is a shape I’ve run on multiple sites at this point — fast to build, cheap to host, boring enough to defend at 2am. Realtime was the piece I hadn’t leaned on hard before this project. Supabase Realtime handles it cleanly when the channels are scoped correctly, and the client library made the “every screen agrees within a second” experience pretty tractable.