Realtime multiplayer · Consumer product
A social game built as a synchronized multi-device state machine.
Listcheta translates a physical word-association party game into a phone-first product where 4–10 people join the same room, submit or draw prompts, play timed team rounds and carry their identity and statistics across future games.
01 · Problem
The hard part was not digitizing the cards. It was coordinating the room.
Every phone needs enough shared state to stay in sync, but not every phone should see the secret prompt. Turns must rotate correctly, timers must survive device differences, round rules change, players can join as guests or profiles, and the app has to stay invisible enough for the social game to remain the focus.
Many devices, one game
Room membership, teams, phase, scores and turn state have to stay coherent across every joined phone.
Not everyone can see everything
The current secret prompt belongs to the master device while public room state remains safe for every player.
Software cannot interrupt play
Joining, setup, handoffs and round changes need to be fast enough that people keep looking at each other, not configuring the app.
02 · State machine
The game is a sequence of controlled transitions.
The backend encodes the legal phases and actions: lobby setup, alternating team turns, a 60-second active turn, a final-guess state, between-round transitions and a finished game that is persisted into history.
What the state machine enforces
03 · Realtime & privacy
Shared state propagates. Secret state does not.
Joined devices subscribe to room-change events and refresh when the shared room changes. The API deliberately returns different information depending on the device role.
Phase, players, teams, scores, current round, active team, explainer/guesser roles, timer end and readiness state.
The current word is separated from the sanitized shared snapshot and returned only to the authorized master player.
04 · Identity & progression
A temporary room became a persistent social product.
Guests can play immediately, while registered players can build a profile, return later and accumulate career history. That required identity, security, persistent statistics and progression—not just a game screen.
Email-verified profiles
Repeat players can create profiles while guests can still join without account friction.
Hashed PIN + sessions
PINs use PBKDF2 hashing, failed attempts trigger temporary lockout and stored session tokens are hashed.
Per-player game records
Each completed game records wins, guesses, explanations, final guesses, turn counts and category/round breakdowns.
Stats, leaderboard, achievements
Career totals, streaks, MVP-style metrics, teammate history and achievement milestones create continuity between sessions.
05 · Product decisions
The product is designed for a group around a table, not a user at a desk.
Link + QR room entry
A host gets an invite link and QR code so every player can enter the same room from their own phone.
Player-written or built-in
Rooms can use private custom prompts or draw from a built-in bilingual bank of roughly 3,000 prompt records.
Rules change, prompts persist
Free explanation, one-word clue and mime modes reuse the same prompt pool across up to three rounds.
Transferable master device
The phone holding the private prompt and controls can be reassigned to another joined player when needed.
Custom identity layer
Profiles include configurable visual avatars rather than relying on a generic account icon.
Phone-first web product
The UI, manifest and interaction model are built for mobile use and installable web-app behavior.
06 · My role
I translated a familiar offline game into a complete digital product system.
I designed the game-state logic, room and role behavior, privacy split, realtime synchronization, identity flows, profile security, data model, statistics and consumer interface. I also iterated the rules and UX around actual play behavior rather than treating the game as a static specification.
Realtime state thinking
Managing shared state, private state, permissions and transitions across multiple devices without exposing the underlying complexity to players.
Full consumer-product depth
Gameplay, onboarding, security, identity, persistence, multilingual UX and progression working as one coherent product.