Lobby.
The answer to “What should we play?”
Inspiration
Every group knows the moment.
You finally get everyone together, someone asks “What should we play?” and suddenly the fun turns into finding a game, downloading it, explaining the rules, setting everything up, and figuring out who keeps score or manages the timer. We wanted to make that moment disappear. Lobby is built around one simple idea: getting a group into a game should take seconds, not setup.
Lobby gives everyone one shared space where a host creates a room, friends join with a simple 4-letter code, and the group can move from one game to another without starting over.
One app in everyone’s pocket becomes the game library and Digital Game Master for the whole room.
What It Does
Lobby turns a room full of phones into a party-game table.
One player becomes the host. Everyone else joins using a simple code (or just “bump” to join •ᴗ•). Each player uses their own phone, while Lobby handles everything needed to run the game:
- Game state
- Secret roles and private information
- Turns
- Timers
- Scoring
- Rules
- Game transitions Public information is shared with the room, while private information such as a secret role, word, card, or target is shown only to the correct player.
The actual game still happens between the people in the room. The arguing, bluffing, accusing, guessing, reacting, laughing, and betraying all happen face to face.
Lobby currently includes seven playable games.
Join → Play → Back to Lobby → Choose another game → Play again
or just
“bump” to join •ᴗ• → Play → Back to Lobby → Choose another game → Play again
No rebuilding the room. No asking everyone to join again. When a game ends, the group simply chooses another one.
Lobby+
Lobby uses a host-first monetization model designed specifically for group play.
The host pays. The whole room benefits.
Free rooms support up to 4 players. When the host has Lobby+, the room can use each game’s full player capacity and access advanced settings such as discussion times, round counts, and more. Other players do not need their own subscription to participate in a premium room.
Instead of putting a paywall between every participant, we made the person organizing the session the natural customer. This keeps monetization from interrupting the social experience.
How We Built It
Lobby is built with Flutter, Firebase Realtime Database, and RevenueCat.
No dedicated game server. Firebase keeps players synchronized while the host device is authoritative for game logic. Players send actions to the host, the game engine processes them, and the resulting state is written back to Firebase. This allows multiplayer rooms without maintaining a dedicated game server for every session.
A Reusable Game System
Every game follows the same game-engine architecture.
Game logic is separated from Flutter UI, Firebase synchronization, and navigation. Because of this, adding a new game does not require rebuilding the lobby, networking architecture, database structure, or routing.
Lobby currently ships with 7 playable games, while 5 additional game engines are already built and tested, bringing the system to 12 game engines.
Privacy by Design
Some games depend on information that must remain secret.
We separate public game state from private player-specific state, and Firebase Security Rules ensure that roles, words, hidden cards, and targets can only be accessed by the correct player.
Secure Purchases
RevenueCat manages Lobby+ subscriptions and entitlements across iOS and Android. Premium functionality is also enforced through Firebase rather than being protected only by the client UI, so paid capabilities cannot simply be unlocked by modifying the app.
Challenges We Solved
Keeping purchases in sync
RevenueCat can confirm a purchase immediately on the device, while the corresponding Firebase entitlement may arrive later through a webhook. We use two entitlement states: a local RevenueCat result for immediate UI feedback, and a Firebase entitlement as the confirmed authority for protected functionality.
This makes purchases feel instant while keeping premium room capabilities securely enforced.
Protecting secret information
A single shared room state would make hidden roles, words, cards, or targets accessible to players that should not see them. We solved this by separating public and private state and enforcing access through Firebase Security Rules.
Consistent Timers
Independent countdowns on multiple phones eventually drift. Instead of synchronizing countdown values continuously, Lobby stores a shared deadline for each timed phase. Every device calculates its countdown from that deadline, while the host controls when the game advances.
Mixed-language Rooms
We wanted people using different languages to play together without forcing everyone to use the host’s language. Lobby stores language-neutral game data. Each device renders that data using the player’s selected language, allowing different languages in the same room.
Monetization without breaking the party
A paywall or advertisement at the wrong moment can interrupt the entire group. This led directly to the host-first Lobby+ model: one person upgrades the room, while everyone benefits.
What We’re Proud of
One system, seven games. All playable games use the same multiplayer architecture, making it possible to expand the library without rebuilding the core system.
A persistent party-game lobby. Players can finish one game and immediately start another without reconnecting or rebuilding the room.
One person pays, everyone benefits. Only the host needs Lobby+. Other players can join premium rooms without their own subscription.
Mixed-language rooms. Players can use different languages simultaneously while sharing the same game session.
A visual identity built for Lobby. We created a distinctive visual language with hand-drawn illustrations, motions, playful interactions, and game-specific artwork that gives the entire experience a cohesive personality.
What We Learned
Reducing friction can matter more than adding features
Every extra step before the first game starts is an opportunity for a group to lose momentum. Reducing setup time became one of our most important product decisions.
The trust boundary is a product decision.
RevenueCat makes purchases feel immediate on the device, while Firebase independently determines what those purchases are allowed to unlock. Separating these responsibilities gave us both a responsive purchase experience and a stronger trust model.
Monetization works differently in social products.
The natural customer is not always every individual player. For Lobby, the person creating and organizing the session is the natural subscriber.
Separating game logic makes everything easier to test.
Keeping game engines independent from Flutter and Firebase lets us test game behavior without simulating the entire UI or multiplayer stack.
Why Lobby for the Best Game Award
Lobby is a growing collection of quick, replayable party games built around playing together in the same room. The persistent lobby keeps the core loop fast:
Join → Play → Back to Lobby → Choose another game → Play again
or just
“bump” to join •ᴗ• → Play → Back to Lobby → Choose another game → Play again
The current library includes seven games spanning different mechanics and social dynamics, from social deduction and hidden information to reflex, wordplay, and competitive challenges.
Lobby handles the rules, timers, private information, player states, and transitions between games, allowing players to focus on each other. The shared lobby is what ties everything together. A group can finish a game and immediately choose another without leaving the room or starting over.
Why Lobby for the RevenueCat Design Award
Lobby was designed to make a technically complex multiplayer system feel simple, expressive, and fun.
Across seven games, we built one cohesive interaction language rather than designing every game in isolation. Consistent patterns make the experience easy to understand, while playful transitions, responsive feedback, and game-specific interactions keep it dynamic.
We also developed a visual language specifically for Lobby. Our illustrations are hand-drawn, giving the product a distinctive character rather than relying on generic game UI. From interaction and motion to illustration and visual identity, everything was designed as part of the same system.
Why Lobby for the HAMM Award
Lobby’s monetization is based on how groups actually play.
The host creates the room, configures the session, and brings everyone together; making the host the natural subscriber.
Instead of asking every participant to purchase premium access, Lobby+ lets one host upgrade the experience for the entire room.
Host has Lobby+? Everyone benefits.
RevenueCat manages the subscription and entitlement lifecycle, while Firebase uses confirmed entitlement state to enforce premium room capabilities.
What’s Next
Five more games are already built and tested and are on the way:
- Bomb
- Don’t Blink
- Tower Race
- Closest Guess
- Freeze They will expand the playable library as their artwork is completed, with more games continuing to join the system.
We’re also expanding Lobby beyond individual sessions with quick actions, adding friends, reusable game presets, more roles and customization, including new Vampire roles.
Seasonal themes and limited-time visual updates are also planned, alongside additional languages made possible by Lobby’s language-neutral game architecture.
The Goal
We want Lobby to become the app people open when a group gets together and someone asks:
“What should we play?”
The answer should be Lobby.
Built With
- adobe-illustrator
- firebase
- flutter
- photoshop
- realtime
- revenuecat

Log in or sign up for Devpost to join the conversation.