
26 puzzles,
300 players,
one shot to make it work.
Quick facts.
CLIENT : Family Holidays
ROLE : UX/UI Design & Full-Stack Development
YEAR : 2026
TYPE : Real-time multiplayer web app
TOOLS : Figma, React (Vite), Firebase Realtime Database, Vercel, Claude Code
STATUS : Live
TIMELINE : 1 month from brief to deployment
that's it.
Design and build a web-based escape game for a private event of about 300 simultaneous players. The brief asked for puzzles, mini-games, real-time progress tracking, and a leaderboard. All in a single app, all responsive on any device, all ready in one month.
I worked alongside a content lead who handled the puzzles, the soundtrack, and the order of play, while I took care of design, system architecture, and development.
No second chances: the event ran live, in one session, with no way to redo anything if the app crashed.









Opération Liberté
Opération Liberté
what i learned.
Real-time multiplayer state is magic until it isn't. Persisting player progress in Firebase (not localStorage) was the difference between "the app remembers where you were" and "the app forgot you exist."
Designing for three audiences at once (players, admin, screen viewers) means each interface has to feel like the right tool. Not the same tool with different buttons.
A live event teaches you that the bugs that ruin everything are never the ones you prepared for. It's never the server crash. It's the typo in a variable name on step 17.
that's it.