← Back to the Lab
Guide · Web apps and PWAsSeptember 20265 min read

Website or web app? When to choose a PWA

A website displays information; a web app makes people work. Knowing which one you need saves you time and money. I'll explain it through SammaGym, the training app I built as a PWA: installable and fully functional even offline.

Website or web app? When to choose a PWA

Before deciding “website or app” you need to know what you're actually talking about. A website displays content: you read it. A web app lets you take actions: enter data, calculate, save, work. A PWA (Progressive Web App) is a web app that installs like a native app and works offline too, without going through any store. The practical rule: if the user needs to do something repetitive, you need a web app, not a website.

Why I chose a PWA for SammaGym

Every training app I'd tried had the same flaw: either empty logs where you had to type everything by hand, or pre-built programmes that never adapted. I wanted the opposite — an app that builds the programme itself and at the gym just lets me count my sets. And since this is a daily-use tool, with hands full and poor signal, a PWA was the right call: no store needed, opens like an app, runs offline.

The real value: a programme that builds itself

I knew the problem exactly: an intermediate lifter, aiming for hypertrophy and body recomposition, wanting to train properly without spending evenings planning mesocycles. No product on the market combined “serious, research-backed programming” with “usable one-handed, in low light, between sets”. That gap is SammaGym.

SammaGym — the app across multiple screens
The app across multiple screens, designed for the thumb

The science behind the programme

The engine is built on the volume landmarks from Renaissance Periodization (the work of Mike Israetel, PhD in Sport Physiology): MEV, the minimum volume that produces muscle growth; MAV, the range where you grow fastest; MRV, the ceiling beyond which you no longer recover. The programme starts there and adds sets week by week within that window, instead of handing you a one-size-fits-all fixed number.

Loads that adjust themselves

The second pillar is autoregulation. Double progression (reps go up first, then load) and RIR— the reps you keep “in reserve” — as a fatigue compass. When a session goes well, the app pushes; when fatigue accumulates, it backs off. The deload doesn't fire on a schedule — it fires when objective signals say it's genuinely needed.

SammaGym — the dashboard with progress
The bento dashboard: progress and PRs always at a glance

Offline-first: why it runs without a connection

Signal at the gym is terrible and your hands are full. That's why SammaGym is an installable PWA that works offline: data lives on device first, in IndexedDB, and syncs when a connection is available. I pull it out between sets, log my reps, and never lose my place — even in the locker room with no signal.

SammaGym — the app palette
The palette: dark by default, vivid accents

There's the full SammaGym project with the demo, or see the other work in the Lab.

See the SammaGym project