← Back to Home

How I Built a Workout Tracker That Doesn’t Suck (GympleBuddy)

Built my own workout tracker because the others sucked.

June 5, 2025

Over the last couple of months, I have started to take my health a bit more seriously, and I noticed that all the apps I used although great, were a bit too much for me. I just wanted an app that was simple, tracked my weekly progress so I know when to amp my workouts up. I want something super simple, with no truck loads of features, no paywall, and is just something you quickly use and forget till your next workout.

So being the serial builder I am, I decided to build my own.

🚧 The Problem

I wanted something that:

  • Shows me today’s workout. Nothing more, nothing less
  • Lets me log sets + reps with ease
  • Remembers my last weights and reps
  • Looks clean and works offline

🧠 The Stack

Built in Flutter, because it’s cross-platform, fast, and great to build the mvp quickly.

All Data is stored locally for now (SQLite).
UI is dead simple, using emojis for workouts because why not.
State management: provider and ValueNotifier, because I like keeping things snappy and lean.

🧼 The Features

  • Onboarding flow to set goals + choose premade or custom workouts
  • Each workout has emoji, name, exercises, sets, and history
  • Logging screen that autofills last set’s data
  • Can skip a day, undo it, and still track progress
  • Settings for backup, export, and even theme/font tweaks

It’s not bloated. It’s not ad-driven. It just does what it says on the tin

🧪 Things I Learned

  • UX in fitness apps needs to be frictionless or people won’t stick with it
  • Flutter’s hot reload is god-tier for UI tweaks
  • Designing for repetition and flow (vs one-time tasks) makes you think different
  • A good app doesn’t just store data, it nudges you to keep showing up

🚀 What’s Next

  • Supabase sync for cross-device use
  • AI-generated workout suggestions based on history
  • In-app streaks, reminders, and habit reinforcement (but not in a cringey way)
  • Maybe open-source it?