‹ Back

FOREVER FIT 24/7

A playable essay on dark patterns

Forever Fit 24/7 title screen — a speedrun game with a daily leaderboard and a fake 'auto-renew insurance' ad

Everyone in UX can name dark patterns — the fake countdown, the add-on you never chose, the phone menu that loops you back to the start, the cancel button worded to make you feel guilty. We put them in slide decks and move on. Forever Fit 24/7 is my attempt to make them something you feel instead of something you file away: a self-initiated browser game where you cancel a gym membership through six levels built out of real dark patterns, against a timer, where every trap you fall for adds ten seconds to your run.

Fig. 01 / Level
A sign-up level — a fake 'founding rate locked for 04:57' countdown, a Towel Service add-on silently 'added for you', and an upsell to personal coaching
Each level recreates a real pattern — here, false urgency and a pre-added charge you have to notice and remove.

The design work was in making the patterns legible as patterns while still being nasty enough to catch you. Six ways to cancel — website, app, email, phone, counter — each one a different trick: confirm-shaming copy, a roach-motel phone tree, an "are you sure?" that buries the real button, a form that resets. A diegetic hint system (a handwritten workout-log note, Coach Kelvin's "the family is forever") keeps the tone consistent so the UI never breaks character to teach you.

Fig. 02 / Onboarding
The sign-up / practice round — 'Welcome to the family! The family is forever,' a cheerful onboarding that sets up the tone
A practice round teaches the rules in-world before the timer starts.

I designed, built and shipped it end to end. It runs entirely on Cloudflare's free tier: the whole game is one page, Pages Functions serve the daily-leaderboard API, and D1 stores every run — with server-side timing floors and an optional bot check so the board can't be gamed. The leaderboard, the anti-cheat and the copy are part of the same piece as the interface, not a layer bolted on after. It's where my interest in interaction, systems and ethics in product all land in one build.

Play the game ↗
Next project

Hang Seng

Banking · UI/UX

Regulated banking interfaces, tested before build

View project