The pieces
The Player
An offline-first web app in vanilla JavaScript with a vendored Leaflet map. GPS arrival when you're really there, sign codes when you're not, four scare levels per stop, a hint budget that keeps score honestly — and it speaks seven languages.
The Pack Format
Every quest is a JSON pack: stops with story, puzzle, hints, and fallback text written per scare level, so the same course plays Cozy for a five-year-old and Overdrive for the office bracket. Story lives in the pack, never in the code.
The Backend
A PocketBase service validates access codes, issues signed content-pack URLs, and serves the public Communities API. A separate tracker keeps team progress and leaderboards, split by design so game data and play data never mix.
Fulfillment
Checkout talks to a small delivery service that verifies the payment, signs a personal download link, and emails it to the host — the kits on the Leaders page arrive through it.
Public code
quest-player
Wisp's Lost Lanterns player — the offline-first PWA described above.
quest-packs
Ready-to-play scavenger hunt quest packs — the authored content the player runs on.
zqmlabs-site
The public ZQM Labs website — Z's Quests & Mischief — as a Hugo static site.
The whole estate is watched by an in-house estate-watch gate — dozens of wiring checks over DNS, tunnels, access control, and live probes — whose source lives with the platform code and runs daily.
Recently shipped
- October 2026 — the rich demo: Wisp's Lost Lanterns relaunched on the full pack, with per-level art for every stop.
- Communities: the verified-host directory and its public API went live, with booking built into the player.
- Four hosting kits: Family Night, Community, Office Team, and Office Event, all fulfilled automatically.
- Z's Zoo: the official bestiary of the game's creatures, at every scare level.