I Built My Own Workout Tracker Because None Fit
Every fitness app I tried eventually had the same problem: it was built for everyone, so it was fully right for no one.
Strong has good bones — but its templates are locked behind limits I didn't want to pay for. The Leap Fitness tracker was cleaner, but still not quite mine. I just wanted to log Chest day, check if I'm improving, and get out of the app before the next set. No programs. No community feed. No 12-week transformation plan.
So I built my own. (I am just a guy trying to show up consistently. The bar is literally the bar.)
How It Started
I wanted to try Firebase Studio — Google's web-based AI coding platform at the time, a canvas where you describe what you want and the IDE builds it around you. Worth flagging: Firebase Studio has since been sunset. The new playground is Google AI Studio.
The first version came together in a few sessions. Firebase Studio scaffolded a Next.js app, wired up Firestore for storage, and handled the auth flow. In theory, a solid start.
In practice, I spent the next month trying to get the backend to connect properly. No AI could lift that weight for me.
Firebase Studio got me about 40% of the way there — the skeleton was right but the wiring was broken in ways I had to diagnose manually. That month of debugging taught me more about Firestore than any tutorial would have. After that, AI-assisted coding took over for the rest: less "scaffold this from scratch" and more "I have a specific idea, help me implement it exactly."
The UX Problem I Kept Running Into
I log workouts live at the gym. Sweaty phone, between sets, maybe 30 seconds before I need to start the next one. The original form was functional but slow — enter exercise, enter weight, enter reps, submit. Too many steps for the wrong moment.
I rebuilt it around how I actually work: pick an exercise (autocomplete pulls from my own history, so "bench" finds "Flat Bench Press" immediately), add sets dynamically, hit save. The form lives at the top of the page. No navigation. No friction.
One thing I'm glad I added early: the app restores unsaved workouts automatically. If I get a call mid-session or my phone locks up, nothing is lost. It's not glamorous, but it's the kind of thing you miss immediately when it breaks.
Templates are where the real speed is. I have a fixed split — Chest, Leg, Arm, Shoulder, Back — and mostly work through those rather than building a session from scratch each time. Building and tweaking each routine takes seconds in the template manager. The template picker then shows when I last did each one. I can see "Chest — 3 days ago" before I even tap it. That one piece of information removes more mental load than it has any right to.
Progress Visualization
This was the feature I was most deliberate about. I didn't want aggregated numbers — "you lifted X kg this month." I wanted to see every set, plotted by date, for a specific exercise. Did my squat weight trend up over eight weeks? Did my rep count drop when I went heavier?
The charts paginate through data in sets of 15, which keeps them readable on mobile. Each exercise gets its own modal with a full breakdown. It's not analytics for the sake of analytics — it's exactly the view I was missing in every other app.
What AI-Assisted Coding Actually Felt Like
Firebase Studio got the foundation right — auth, data model, routing. What it couldn't do was design for my specific habits. No model knows that I always check my previous weights before logging a new set, or that I want every set for an exercise plotted over time rather than just my best lift. That context only exists in how I use the thing.
The workflow that worked: describe a specific behavior, not a feature. "Show me every set I've done for this exercise, plotted over time with pagination" is better than "add progress charts." The more concrete the prompt, the less I had to revise.
Revisions were still the majority of the work. But they were revisions of my own vision, which is a different kind of work than building from scratch.
Where It Is Now
WorkoutTracker is live at karlakattai.vercel.app. I started building it about a year ago and have been using it daily for over six months. The app today barely resembles what Firebase Studio first scaffolded — in the best way.
It has body weight tracking, exercise notes for form cues and reminders, and a PWA manifest so it installs on my phone like a native app. None of those were in the original spec. They came from actually using it.
The name — karlakattai — refers to a traditional Tamil wooden fitness club, the kind people swung around long before dumbbells were a thing. There's a man who sells them on the last bend from Vellakinar Pirivu to Vellakinar Road, left side of the road, on my daily commute to office. He has the kind of mustache that makes you think he's never missed a session in his life. I see him every morning. The word stuck, and eventually it needed a project.
Build Yours
The entire stack — Firebase, Vercel, the domain — cost me zero rupees. Firebase's free tier covers the database and auth. Vercel hosts the frontend. The app is live and free for anyone to use at karlakattai.vercel.app.
I posted it on r/vibecoding once. People from all over the world came to have a look. Most of them left within seconds — I have the bounce rate data to back that up. A small few actually tried it. That felt good enough.
If you have a problem that an app could solve, build it. You don't need a budget. You need a specific problem and enough stubbornness to sit with it.
If you're a complete beginner and don't know where to start, reach out. I started somewhere too.