Back

Building Enboq - Crafting a Real-Time Virtual Desktop for Gamified Onboarding

May 20, 2025

Author: Boby Santoso Freedantius

Reading time: 4 minutes

4 years ago we started RiddleStory, now Enboq. The idea was simple: Create an Online Escape Room that remote teams could play together. What was a simple idea has evolved into a Gamified Onboarding Platform. Helping companies turn dull training into immersive, story-driven experiences.

How it started

We started off with an idea for an Online Escape Room. This was during Covid and everyone were forced to stay inside and do stuff remotely. The vision was to simulate a digital escape room where players could explore, uncover clues, and solve challenges. All inside a custom built desktop environment.

What makes a Great Escape Room

An escape room needs two things to work:

  • A believable Environment
  • A compelling Story

Building the Environment

Enboq Game Environment

The Environment of the escape room that we built was to give experience of a mix of Mac and Windows desktop. It has most of Mac essentials, like the Dock, Filebrowser, Email, Notes, and Chat.

  • Dock to hold all applications, such as Filebrowser, Email, Notes, and Chat.
  • Filebrowser let users open files, draw on top of images, read pdfs.
  • Email delivers in-game messages and updates.
  • Notes to write and jot down clues.
  • Chat to chat and connect with a live moderator.

Our goal was simple: make it feel as real as possible, not just another web page.

. . .

PS: We also built the same Environment in Enboq's blog. Check it out!

Crafting the Story

Enboq Game Environment Story is the core of an Escape Room, its the engine. We represent it as a flow that drives each player's journey:

  1. The game kicks off with a chat message…
  2. Then an email arrives with new context…
  3. Players hunt for clues, in-app or IRL…
  4. They submit answers via chat…
  5. Our bot (or moderator) judges correctness…
  6. Onward to the next puzzle (or branching ending!)

Over time, we evolved from a straight path to branching narratives with multiple endings. Kinda like a mini RPG where your answer may affect the ending

Under the Hood

Building a fully interactive, real-time virtual desktop inside a browser isn't exactly standard web dev work. Here's how we tackled it.

Frontend (React)

The desktop environment was built in React from the ground up. We wrote our own window manager to handle:

  • Opening and closing apps like Filebrowser, Email, Notes, Chat
  • Custom window manager for dragging, resizing, stacking
  • Shared state via Context + hooks, synced in real time
  • Dynamic theming for white-label clients
  • PDF rendering (react-pdf) and canvas overlays for drawing
  • Mini-games: crosswords, word searches, quizzes… you name it

Backend (Node.js, Express, Redis, MongoDB)

  • REST APIs for sessions, progress tracking, story management
  • WebSocket layer (socket.io) for instant updates
  • BullMQ for in-game event scheduling and queue
  • A story engine that triggers events (emails, chats) based on your choices

Real-Time Magic

The WebSocket layer was the core of the game room:

  • Incoming messages triggered new story events (emails, chat replies)
  • Moderator responses were pushed live into the chat app, powered by LLM
  • Live updates on the progress of the escape room

Moderation System

Moderators played a big role in early versions of the game. However, due to limited personel, we built our own Chatbot powered by nlp.js. We trained the Chatbot to do basic responses like recognizing player's intent in the chat, whether to submit an answer, ask for a hint, or just regular chat with other team members. Eventually when ChatGPT came out, we also powered the Chatbot using ChatGPT to be able to guide the user through the game.

The Evolution of Our Story Engine

  • Linear flow: One path, one ending.
  • Branching choices: Your answers shape the narrative.
  • Multiple endings: Like an RPG, every decision matters.

This provides lots of possibilities for the Story creator to provide fun and engaging story. Especially, in our case, for Onboarding.


What's Next?

We're always pushing Enboq forward. Our big focus now is utilizing LLMs into every step of the story building process. Soon, you'll be able to generate entire Story Flows on the fly, customized to your company's unique profile (check out how we're summarizing org data here). That means every puzzle, email, and branching path adapts not just to your team's choices, but to your brand, your culture, and your goals. Imagine escape rooms that feel handcrafted for your business..

Want to keep up? Grab the RSS feed.

Got a thought, question, or just want to say hi?
Reach out on X or LinkedIn — I’d love to connect.

Made with

by Boby