Back to projects

full-stack web app

Workout Tracker PWA

An installable, offline-capable workout logger built to replace the pencil and notepad I kept carrying around the gym, deployed with proper development and production environments.

Retiring the gym notepad

For a long time, my workout tracking system was a pencil and a notepad that I had to remember to carry around the gym. This app replaced it with something that lives on my phone: quick workout creation, an active workout screen for logging exercises and sets, and the nice-to-haves paper never gave me, like recalling my previous starting weight for an exercise and browsing past workouts.

Because it gets used mid-workout, the design is mobile-first with fast data entry, large tap targets, and low-friction editing. Exercises support flexible metrics, so reps, weight, time, distance, and laps all fit the same logging flow.

Real environments, like real software

The app runs on Vercel with a Supabase-hosted Postgres database behind a Prisma ORM, built on the Next.js App Router with TypeScript and Tailwind. Unlike a typical side project, it has separate development and production deployments: changes land at dev.workout.supernettech.app first, and only promote to production at workout.supernettech.app once they have proven out.

It's a single-user app today, so visiting either environment lands on a login screen. The development environment additionally sits behind Vercel's deployment protection.

An app without the app store

It's implemented as a progressive web app, a sort of makeshift native app: in Chrome or Firefox it's installable to the home screen, and a service worker with network-first caching keeps it usable for a period even with no internet connection. Logged sets queue up in IndexedDB and sync when a connection returns, which matters in a gym that is effectively a cellular dead zone.

What's next

The plan is basic metrics on top of the data it already collects: plotting weight and endurance progression over time, like watching lat pulldown set weights climb alongside max reps.

The single-user model is also on its way out. The next iteration adds multiple users through an admin-initiated invite system, rather than open self-signup, so the app can grow past just me without giving up the control a password-protected notebook replacement started with.