SSStefan Saladino← Selected work

04 / Case study

Published product · Mobile-first fitness PWA

Top Set

A lifting-first workout tracker that turns personal progress into friendly competition.

Top Set is an installable fitness PWA for logging lifts and cardio, following exercise progress, and competing with friends. Workout state stays durable through mobile interruptions, while scoring, roles and group data are enforced behind the interface.

ROLEProduct designer · Full-stack developer
SCOPEProduct strategy, responsive UX, scoring domain, offline state, Supabase, testing and launch
STACK
  • React
  • TypeScript
  • Supabase
  • PostgreSQL
  • PWA
Top Set mobile workout screen showing an active barbell bench press set with weight and repetitions
REAL PRODUCT SCREENActive lift · Set tracking

System architecture

How one workout becomes trusted progress.

01Workout UI
02Durable session
03Supabase boundary
04Scoring ledger
05Progress + standings
01

THE CHALLENGE

Fitness scoring has to reward consistency—not loopholes.

A social fitness app has to stay fast enough during a lift, recover safely after interruptions, and compare users fairly. Raw strength alone cannot determine scores, and offline retries must not create duplicate workouts or XP.

02

WHAT I DID

I made the rules explicit and durable.

I separated the React screens from services and pure scoring rules, used Supabase Auth, row-level security and database functions for authoritative actions, and added IndexedDB recovery for active sessions. Automated unit, integration, browser and visual checks cover workout logging, progress, groups and administration.

03

WHERE IT STANDS

Top Set is published and ready for real workouts.

The published PWA now supports lift and cardio logging, exercise progress, weekly goals, badges, group standings, chat, reactions and a global leaderboard in an app-first mobile interface. It can be installed and continue loading its shell offline, while private data and scoring paths remain protected.

Publishedinstallable PWA
125 XPdaily scoring ceiling
Offlinesession recovery
RLSdata boundaries

Next case study

Return to selected work