Menu
AboutSkillsExperienceWorkContactDownload CV
← All work
Live2025 — nowPersonal project

Health Tracker

An installable PWA for workouts and cardio: routines with a guided runner and per-set timers, GPS-tracked walks and runs, bodyweight and streaks. FastAPI behind React.

2
rewrites to get the architecture right
100%
of API calls network-only by design
1
install, phone and laptop
  • FastAPI
  • SQLAlchemy
  • Alembic
  • SQLite
  • React
  • TypeScript
  • React Query
  • PWA

The problem

Every fitness app I tried wanted a subscription, an account and my data. I train with a routine, and I wanted the phone to walk me through it set by set without any of that.

My role

Sole author — backend, frontend, PWA, deployment.

What I built

  1. 01

    A guided workout runner: routines, per-set timers, an exercise library, bodyweight logging and streaks, built for one thumb in a gym.

  2. 02

    Cardio recorded from GPS and the accelerometer for walks, jogs and runs.

  3. 03

    Installable PWA with a service worker that precaches the shell only — the API is deliberately never cached, because stale health data is wrong data and a cached 401 would lock me out until I cleared site data.

  4. 04

    Started offline-first on IndexedDB, found it wasn't worth the complexity for a connected phone, and rewrote it as a clean client/server split.

Outcome

  • It's what I actually use at the gym, and the one place my workout history lives.

  • Shipping it twice taught me more about offline-first trade-offs than any article did.