Skip to content

Volt

Offline workout tracker for Android

Designer & Developer
Since August 2026
Volt illustration

Project Details

Volt is a personal workout tracker I built for my own training. Every app I tried wanted a subscription or a network connection to create my own exercises, so I made one that runs entirely on the phone: no backend, no sign-up, and every workout stored in a local SQLite database.

Volt home screen with weekly stats and routinesVolt exercise library with search and type filtersVolt edit exercise form with a GIF preview

What does it do?

Open a routine, press start, and the phone tells you what's next, what you did last time, and when to stop resting.

Exercises are measured by reps, time or a free-form note, and can carry a photo, GIF or short video of the movement (perfect for instagram reels workouts). Routines list them with target sets, reps or seconds and an optional weight. During a session, a focus view gives you a giant rep stepper or a hold timer, then a full-screen rest countdown. The summary shows duration, sets, total volume and a per-exercise breakdown, and Home keeps track of the week and the streak.

Volt session checklist with the current exercise set tableVolt rep focus view with the rep stepperVolt hold timer focus view

Local by design

A workout log is small, private and only useful on the phone you carry to the gym. It doesn't need a server.

SQLite ships inside Android and is a real relational database, so questions like "what did I lift last time" or "how much volume this week" are plain SQL. Drizzle ORM types the schema and runs migrations at startup, and screens subscribe to table changes so a logged set shows up everywhere instantly. A CSV export through the share sheet is the backup.

Under the hood

Expo and React Native in TypeScript, expo-router for navigation, NativeWind for styling and Zustand for the live session state. Rest timers, sounds, haptics, keep-awake and the rest-end notification rely on Expo modules, and the rest cue is scheduled from the session store so it fires whichever screen you are on.

Let's work together

Got an idea? A challenge?
Let's talk.

nthn.lemale@gmail.com →