YS.
Opération Liberté

Opération Liberté

Scroll

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.

logo.

Opération Liberté

COLORS.

Midnight
#111125

Golden
#D4AF37

Lavender
#9898B8

typography.

Heading

Georgia

Regular - Bold

Opération Liberté

body

System UI

Regular - Italic

SF Pro, Segoe UI, Roboto

MONO

Courier New

Bold

TRANSMISSION CHIFFRÉE. Signal reçu.

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.

Next projectNext projectNext project

Mildly impressed?

Let's talkLet's talkLet's talk