Inspiration
We've all been there. Sitting in a clinic waiting room, ticket number 47 in hand, with no idea if that means five minutes or fifty. Nothing to do, nowhere to go, just the slow crawl of time. Waiting is something everyone experiences but nobody has solved well. Queue management tools exist for businesses, but the patient side has always been an afterthought - a number on a screen and a vague hope that someone calls your name soon. We wanted to build something that made both sides better at the same time. If you're going to wait, you might as well do something with that time. And if you're running a queue, you deserve actual tools to manage it. That's where SideQuest came from.
What it does
SideQuest is a mobile-first queue management platform with two sides. For businesses, it is a complete queue operations dashboard. Businesses register and immediately get a room with a unique QR code. They can create up to ten rooms, each with its own independent queue. From the dashboard they can call the next patient or a specific patient directly, close and reopen queues in real time, rename and delete rooms, and view a full searchable history of every patient who came through. Analytics are built in - total patients, average wait time, average satisfaction rating. The entire history exports as a CSV file or a formatted PDF report. For restaurant businesses, the language throughout the dashboard adapts automatically - patients become guests, queues become waitlists, rooms become sections. For patients, the experience starts with a QR scan. SideQuest uses jsQR to read a live camera feed and navigates automatically the moment a valid room code is detected. Patients see their exact position in the queue, an estimated wait time, and a gradient progress bar. When they reach position two, a banner tells them to head back. When the business calls them, their screen transitions instantly - powered by Supabase Realtime, firing the moment the business acts. Patients can leave the queue at any time through a confirmation flow that automatically rebalances everyone else's position. On exit, they leave a star rating that feeds directly into the business analytics. While waiting, patients have fifteen games available on a single grid - all opening as full screen overlays so the queue position stays active underneath. The games range from classic HTML5 canvas games like Snake, Block Blast, and Flappy Bird, to algorithmic games like Sudoku and Memory, to AI-generated content games like Rabbit Holes, Battle, and Dangerous Knowledge. The Confessional is a live anonymous post feed shared across everyone in the same waiting room, with emoji reactions updating in real time via Supabase Realtime.
HOW WE BUILT IT
SideQuest was built entirely through MeDo, Baidu's AI app builder, using React, Vite, and Supabase.
Design System
We started by defining the visual identity before writing a single line of logic. The palette is midnight navy with pastel accent colors — soft cyan for curiosity, lavender for calm, peach for play, mint for focus. Space Grotesk handles headings, Share Tech Mono handles data labels, and everything is rounded to 50px buttons and 24px cards to make the interface feel soft rather than clinical. The companion character Byte is a pixel art blob with three animated states — idle, excited, and sleepy — whose dialogue and body language change depending on what game you're playing and how long you've been waiting.
Patient Flow
Patients open SideQuest, scan a QR code using jsQR on their live camera feed, and land on a join screen that detects whether they're already in the queue before creating any new entry. Queue position tracking uses Supabase Realtime subscriptions rather than polling, so when a business taps Call Next, the patient's phone responds instantly — closing any open game overlay and navigating to the called screen without a single page refresh.
Business Dashboard
Businesses register, get a room auto-created with a unique 6-character code, and land on a dashboard with four tabs. The Queue tab shows a horizontally scrollable room chip selector, live patient counts, stat cards, and a call next button that decrements all remaining positions via a Postgres RPC function. The QR Code tab generates scannable codes per room. The Stats tab tracks history across all rooms with search and export to CSV or PDF. The Rooms tab lets businesses create up to ten rooms, rename them, toggle them active or paused, and delete them with confirmation. When a business registers as a restaurant, every label in the dashboard swaps — patients become guests, queues become waitlists, rooms become sections.
The Games
Fifteen games live in a flat 2-column grid on the queue status page. Each one opens as a full-screen overlay with a pixel art header and a mini Byte companion showing context-aware dialogue. The AI-powered games — Rabbit Holes, Dangerous Knowledge, Tasks, and Battle — use a triple fallback chain: Groq (llama-3.3-70b-versatile) as the primary provider, Google Gemini 2.0 Flash as the first fallback, and Cerebras as the second. Each call has an eight-second timeout. If all three fail, the app shows a retry state rather than a broken UI. Generated content is saved to Supabase immediately so future patients receive cached results instantly, and sessionStorage tracks what each patient has already seen to prevent repeats within a session. The canvas games — Snake, Block Blast, Flappy Bird — use requestAnimationFrame loops with ref-based cleanup to prevent memory leaks. Sudoku generates valid puzzles via backtracking entirely in the browser. Memory, Word Scramble, Breathing, and Draw require no AI and no database.
CHALLENGES WE RAN INTO
Realtime Queue Management
Getting Supabase Realtime working reliably across the full patient lifecycle was the most demanding technical problem. The queue status subscription needed to detect position changes, handle the called transition by closing any open game overlay before navigating, show the almost-up banner even when a game was fullscreen, and clean up properly on unmount to avoid memory leaks and ghost subscriptions. Getting all of that working together — particularly the z-index layering that lets the gold banner appear above a fullscreen canvas game — took significant iteration.
The Rabbit Holes Caching Architecture
Rabbit Holes and a few other games, needed a content system that gets richer with every patient who uses it. Facts are stored with parent IDs, branch labels, topics, and depth levels so the cache lookup is fast and accurate regardless of how deep a player goes. Communicating that schema clearly enough for MeDo to implement it correctly — including the duplicate detection logic and the save-before-display behavior — was its own challenge before any code ran.
Fifteen Games, One Mobile Viewport
Building fifteen games that all work within a 480px mobile viewport was harder than building any one of them individually. Snake, Block Blast, Flappy Bird, Sudoku, and Memory all have completely different canvas sizing requirements. We had to specify exact responsive formulas for each — cell sizes derived from viewport width, canvas dimensions capped with min() and calc(), number pads that don't overflow on narrow screens. Getting a Tetris clone and a live confessional feed to coexist gracefully on the same page without breaking the queue tracking underneath required careful overlay architecture.
The Full Screen Game Overlay System
The game overlay needed to work across fifteen very different experiences without any of them interfering with the queue position tracking underneath. When the overlay is open and the business calls a patient, the overlay must close, the navigation must fire, and the tile must stay highlighted when the patient returns. Making companion state persist across opens and closes — without resetting to idle every time — required thinking carefully about where state lived and what triggered overrides.
Accomplishments that we're proud of
The Rabbit Holes game is the feature we're most proud of. The idea of a content system that gets richer with every patient who uses it — where AI-generated facts are cached permanently and served instantly to future patients — felt ambitious when we started. Seeing it work end to end, with the triple fallback chain handling provider failures silently, is genuinely satisfying. The real-time called experience is the moment that makes the whole platform feel real. When a business taps Call Next and a patient's phone transitions to a full-screen alert instantly — with no refresh, no polling, just Supabase Realtime firing — it demonstrates exactly what the platform is supposed to feel like. Building fifteen complete games in a single MeDo prompt and having them all work correctly on mobile is something we didn't expect to pull off as cleanly as we did. The range from Flappy Bird physics to Sudoku backtracking to the live Confessional feed is significant, and each one works as a standalone experience. We're also proud of the companion character Byte. A pixel art robot with three distinct states, context-aware dialogue for every game, position-based overrides, and poke responses — Byte makes the app feel alive in a way that a plain queue tracker never would.
What we learned
Writing prompts for MeDo is a skill in itself. The prompts that worked best were the ones that were completely unambiguous — exact pixel values, exact colour codes, exact function names, exact database column names. Anywhere we left room for interpretation, MeDo made a choice, and that choice wasn't always the one we had in mind. We also learned that the order of information in a prompt matters as much as the content. Establishing the design system and component names in the first prompt meant that every subsequent prompt could reference those decisions by name rather than re-describing them. The triple AI fallback architecture taught us something about resilience in AI-powered apps. Assuming any single provider will always be available is a mistake. Building fallbacks from the start rather than adding them later is significantly easier and more reliable.
What's next for SideQuest — Turning wait time into time well spent
The foundation is solid and the platform has real utility beyond the hackathon. The most immediate next steps are: Leaderboards — room-scoped and global high scores for the games, giving patients a reason to compete with others in the same waiting room. Audio for the breathing game — procedurally generated tones via the Web Audio API to make the breathing exercise genuinely immersive. Push notifications — so patients can put their phone down and get notified when they're close to the front rather than checking the app manually. Business analytics depth — per-room statistics, game engagement breakdowns, and trend data over time so businesses can understand their queue patterns properly. Custom business branding — letting businesses set their own colours and logo so SideQuest feels native to their environment rather than a third-party tool. The core insight that brought SideQuest into existence — that waiting time is an untapped resource — still holds. There's a lot more that can be done with it.
Log in or sign up for Devpost to join the conversation.