
MESO 01 Gym Tracker is a mobile-first progressive web app built to replace the friction of using static weekly gym-program PDFs during training sessions.
Problem
My coach sends the training plan as a PDF at the start of each week. That worked as reference material, but it was awkward in practice:
- PDFs are slow to navigate mid-workout
- set, rep, and weight tracking still had to happen elsewhere
- rest intervals were easy to lose track of
- gym connectivity is unreliable, so depending on a normal web page would be fragile
I needed something faster than a document, but lighter-weight than maintaining a native iOS and Android app.
Solution
I built the program as a Progressive Web App instead of a traditional native mobile app.
That gave me the right tradeoff:
- fast updates without app-store review cycles
- installable home-screen experience
- offline support for use inside the gym
- a mobile-first UI designed around actual workout flow
The app turns each training week into structured workout screens with:
- week and day navigation
- per-set weight logging
- completion tracking for exercises and training days
- built-in 60s and 90s rest timers
- bodyweight circuit round counting
- exercise demo videos
- weekly compliance and progress reports
Tech Stack
- Vite
- Vanilla JavaScript modules
- HTML and CSS
- Progressive Web App architecture
- Service worker for offline caching and update prompts
localStoragefor client-side workout persistence- Vercel for deployment
Why not just use an app?
I looked at existing gym apps and they all had more surface area than I needed - account setup, syncing, subscription tiers, generic program builders. None of them were going to load a specific PDF-based program from my coach.
The real constraints were:
- the program changes every week
- gym connectivity is unreliable
- I’m using this mid-workout, so it needs to be fast
- I didn’t need a backend or app-store distribution
A PWA hit all of those. Native would’ve been overkill.
Demo
- Live demo: gym.pgicharu.dev