This project started on the sofa with my kids. We're a family that loves games, and the last few boxed escape-room style games we played came with a companion app for checking your answers — and every one of those apps was clunky, barely worked on a phone, and the UI became a running family joke. I figured I could do better, so I built the thing I wished those games had shipped with: something that works simply using the phone already in your hand.
The use case I'm chasing: self-published authors dropping a QR code in the back of a book (or e-book!) that opens a short puzzle tied to the story. But it should work for any sequential puzzle — events, classrooms, a party, or a DIY family game night.
A few live demos (no signup, work on mobile): - Snowpiercer (TV trivia with answers available on our home page!): https://api.unpuzzld.com/p/snowpiercer-tv-trivia - The Speckled Band (a public-domain Sherlock Holmes locked-room mystery): https://api.unpuzzld.com/p/speckled-band - The Black Harbor Heist (a heist — decode a cipher, crack a vault combo, escape): https://api.unpuzzld.com/p/heist-plan-template
How it works: a puzzle is a sequence of questions, each with hints that cost the player a time penalty (helps create tension!). You build puzzles in a web admin — or, using MCP and an AI client. Unpuzzld exposes an MCP server, so you can point Claude/Cursor/etc. at your account and just describe the puzzle; it can create or edit the questions, hints, costs and penalties for you. I built the Holmes and heist puzzles above using MCP.
Stack: ...this one surprized me a bit; the player is built with Angular. I always saw Angular earmarked for boring enterprisey apps with lots of forms and text fields (like my admin!), but never considered it for a rich UI like we have with the player app! We have an Angular player PWA, an Angular admin UI and are using Node/Express on top of a MySQL db. Co-op play (several people on one puzzle) syncs over plain HTTP polling to keep future scaling dead-simple — a version-stamped state doc on the server checked on a ~2.5s poll, without websockets. Deliberately boring! Themes include the CRT/scanline look, a wood cabinet, and a few others. Auth by Google login & a pro plan to add features usinf Stripe for simple payments.
The part that surprised me most was the multiplayer mode. I first let everyone in a game drive — anyone could answer, advance, or reveal a hint. Total chaos: players talked over each other and the screen lurched around as people raced ahead. So I flipped it — now only the host drives the game forward, and everyone else gets a live, read-only feed: the timer, questions, hints, wrong guesses and solutions, all update as the host plays. Turns out that's exactly how a family plays an escape room anyway — one person holds the phone, everyone else leans in and shouts answers — and it made the whole thing far simpler: one writer, many readers, nothing to reconcile.
It's an early beta and very much a solo project. I'd love to hear feedback on: (1) whether the author/QR angle resonates or if there's an better audience that I haven't mentioned, (2) the player UX — it's deliberately knob-and-button, which may be divisive, and (3) the MCP authoring flow for easy authoring.
Thanks for taking a look!