Pesto Blog

Why I built a game into our B2B product

Vivek Nair
Vivek Nair
Oct 4, 2019 - 6 min read
Why I built a game into our B2B product

I’m a co-founder of Pesto, a virtual office for remote teams. In this post, I describe Pesto’s empty room problem and how we built a game into Pesto to solve it.

The empty room problem

Currently, the largest issue that we face with product adoption is a problem that all communication products face, the empty room problem. Here's the most common user behavior in Pesto:

  1. Users join Pesto for the first time
  2. They create their avatars
  3. They join a few audio channels to understand the conversation mechanics
  4. They exit the product without inviting any teammates

You need two to tango with any communication product. But, it's a frustrating chicken and egg problem. Users don't get the full product value in an empty virtual office, yet there's too much friction in inviting someone to the team unless you give more upfront value in return.

There are two general approaches to solving this problem - improving the single-player experience, and improving our users’ invite rate. We invested in the latter by adding invitation callouts throughout the product and sending periodic email updates. They certainly helped to reinforce the product in users' minds, but they weren't resulting in massive increases in invitations.

Attempt #1: Different Invitation Callouts
Attempt #2: Email Updates

Deciding to build a trivia game to improve single-player mode

Doug and I spent several hours brainstorming out-of-the-box ways to add more value to the empty office experience in Pragli.

We decided that adding an interactive game built into an audio channel could be a great way for a solo user to engage more with the product. Here's our rationale - if you can't give users value immediately, put them in a position where they can at least get some type of value, even if the value that you give feels like a deviation from the core product feature set.

Moreover, the #1 problem in remote work is loneliness, and teams really struggle with building closeness. We thought this could potentially help teams build camaraderie.

We evaluated the types of games that would make the most sense for these goals. Some characteristics that were important to us:

  1. Easy to build (this is just an experiment after all...)
  2. Easy to understand game mechanics for non-gamers
  3. Fun to play both as a single player and with teammates
  4. Promotes bonding with teammates

With these constraints, we evaluated a few different game types:

Snake: A multiplayer snake game is pretty easy to understand and relatively easy to scale to several people.

Examples of different Snake versions

But, we had concerns about game latency since keystrokes would naturally need to be published faster as the game becomes more difficult (the snake moves faster).

Collectible avatars: If you don't know already, Doug and I created customizable avatars as a way of creating presence with your team in Pesto. We thought that rewarding users with random collectible avatars for certain accomplishments (like starting a conversation in Pesto) could be a great way to push users to invite their teammates.

Example Bob Marley avatar

But, collectible avatars seemed to make the most sense when you could share them with your teammates, who were already within the product. The single player version didn't seem very fun.

Trivia: The mechanics of trivia are dead simple to understand. You get a point for every correct answer and the questions cycle every 15 seconds. Given that there are a ton of open source trivia questions, we knew that we wouldn't have to invest much into question creation. We also knew that the single player experience was super fun and could easily scale to many people without much technical difficulty.

On top of that, we could easily see teammates chatting/laughing/bragging about the trivia questions that they did or didn't know.

Decision: We settled on building a trivia game. The game checked all the boxes, and I was excited to build it.

How I built trivia into Pesto

Our process was straightforward. I started designing the UI and UX in Figma, making sure that the game mechanics felt right. Also, I put significant effort into making sure that the game interaction did not negatively affect the existing conversation mechanics.

You can view my design assets for the game in Figma below.

One important consideration when designing the application was ensuring the quality of the questions. A trivia game can only be as good as the questions that are asked. Luckily, I found that Open Trivia Database had thousands of curated open source questions, filterable by category and difficulty. With a single API request, I could easily create hundreds of trivia questions.

I used the same technology stack to build the trivia game as our core product, Firebase and React. The publish/subscribe mechanics of Firebase Realtime Database made it dead simple to update every player’s game state. I invested roughly half a day to implement the game and squash any bugs that shook out from testing.

Once I built out the main features of the game, I added a bunch of supplementary features to increase user engagement. Here are a few examples:

  • A leaderboard to introduce healthy competition
Unfortunately, Vivek beat me on that game...
  • A “Game refresh” button to allow new teammates to more easily join the channel and participate in existing games
  • A “Start next question” button to cycle through questions faster when playing as a single player

With those features completed, I put the game through some testing, squashed a few more bugs, and pushed the game to production.

Here's what the finished product looks like!

Final Result: Starting trivia
Final Result: Multiple players with a leaderboard
Final Result: Selecting correct answers

Feature Roadmap

If our users fall in love with the game, we will definitely need to add a few more critical features:

  1. Filtering questions by difficulty
  2. Filtering questions by category (e.g. I would prefer to filter out the board games category since I rarely ever play them)
  3. Giving awards, such as stickers for your avatar, for winning games

Concluding thoughts

Building trivia into Pesto was a super fun exercise and a great break from the daily rollercoaster of startup life. I’m excited to see what the reception is for our latest experiment and figure out whether the game produces any meaningful engagement wins.

Either way, I’ll update this post with any interesting insights and comments from our user base. Stay tuned!

Interested in Pesto?

If you are interested in trying out Pesto to play a game of trivia or to communicate better with your remote team (¿por que no los dos?), visit to sign up and create a team.

You can create a trivia channel by pressing the + button in the Channels section and selecting Trivia Channel as the channel type.

Also, if you have any questions or suggestions for Pragli, feel free to email me at [email protected] or direct message me on Twitter, @virtuallyvivek.

How we use Firebase instead of Redux (with React)

How we use Firebase instead of Redux (with React)

Doug Safreno
Doug Safreno
Sep 24, 2019 - 4 min read