Flaky Not Flaky — Con Weekend Bingo
An offline-first bingo and scavenger-hunt PWA, plus print pieces, for an Atlanta bake shop’s Dragon Con weekend.
Solo — app design and build, print comps
- Quest squares
- 25
- Art payload
- 7.2 MB → 0.84 MB
- Set pieces
- 4
- Share images
- 6 at 1080x1350
01 / problem
The problem
Flaky Not Flaky is a family bake shop in a downtown Atlanta food court. For Dragon Con weekend they wanted a game that would pull convention crowds to the counter: a 25-square scavenger hunt dressed in a retro-futurist wasteland theme, with prizes redeemed in pastry.
The catch was the venue. The game is played in a food-court sub-level on convention wifi, so offline is the normal case, not the edge case. The design prototype pulled React, Babel, fonts and an icon webfont from CDNs at runtime: five network round-trips before a single pixel.
02 / build
What I built
I ported the prototype into a real Vite + React PWA and removed every runtime network dependency.
- Offline after one load. Self-hosted font subsets (~91 KB), icons tree-shaken to the ~28 glyphs used, and a precaching service worker. Art went from 7.2 MB of PNG to 0.84 MB of WebP.
- Four set pieces. A password-deduction terminal, a first-person raycaster over the food-court blueprint (with a headless test that walks it), a hold-to-open whack-a-mole, and an eight-phase blackout sequence that still resolves under reduced motion.
- Shareable merit cards. Six 1080x1350 images composed on canvas, delivered through Web Share, then download, then press-and-hold as a fallback that cannot fail.
- No accounts. Progress lives in one localStorage key, with transfer codes to move a card between phones.
- Print pieces. A Python/OpenCV compositor places the meal box into location plates with colour matching and ground shadows, which produced the poster set.
03 / signal
What it shows
Designing for the real environment instead of the demo. The constraints (bad wifi, iOS share quirks, a QR code that has to outlive any deploy) drove the architecture. It also shows I can carry a small client from concept to a live event: app, print, and the unglamorous checks, like an asset-integrity script that pins one image to exact pixel dimensions because the minigame crops it by coordinate.

Gallery 1 / 5
Part of a five-poster set built from one composited box render.