Volt
Offline workout tracker for Android

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.



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.



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.