Background
There are hundreds, if not thousands, of other fitness mobile apps out there on the Google Play and Apple Store. So my project is not actually original, and that’s totally OK. I am not building this project for the purpose of being the first in the market to do a specific feature; I am doing it for the purpose of putting my engineering skills to the challenge to build something that can go beyond a small side-project to something far better.
Sometimes we just forget how complex building something from scratch is. Most of the time, we join a team or a company with a relatively mature project and already paying customers, so all the struggles of a young and underdeveloped project are already behind. The engineers who had overcome those challenges are gone or just working on something else completely.
Ultimately, I want to build this project to be a competitor to existing commercial projects and maybe monetize the user base to create an income source to diversify my investment portfolio. Even though I am approaching this from the perspective of an engineer, I am also considering it as a long-term investment opportunity.
But why a Fitness App?
You are right; with so many other fitness apps out there, why am I considering building a fitness application?
The answer: Because I care.
Yes, I care about becoming a fitter and healthier person. I am approaching my 30s, and for the past year or so, I’ve become so comfortable with my fitness level that I fear I might not enjoy my retirement. It’s easy to become so lazy, especially working as an Software Engineer.
I was spending the majority of the day sitting at a desk, thinking and writing code, sipping coffee, and barely drinking any water. So, why not start taking care of my health by combining the things that I love doing, like building projects and coding?
In spite of all the odds and other incentives to stay lazy, I managed to start exercising over the past few months. I have made considerable progress on my fitness journey, but I feel I can accomplish so much more, and that’s what I plan to do with this side-project.
For reference, here is my before and after photos.
Grow my technical skills while putting on some lean muscles.

With the nice out of the way, what should I build exactly?
Well, I have an idea that combines a workout tracker app with personal trainers. The core of the product is to connect individuals looking to get professional help to improve their physique and fitness level by getting workout recommendations driven by professionals in the industry.
However, this product is considerably difficult to build as it tries to combine two different audiences: End users and Personal Trainers.
So, for now, I am considering just building a workout recommendation app that might have some Generative AI integration to recommend specific exercises based on user input data like personal preferences, time constraints, and goals.
The “MVP”
That’s where most developers fall into a trap, as they cannot stop building more and more features without releasing the app. Trust me, I’ve been there and done that in the past. I know other developers who faced the same issue as well.
The trap can be summarized in the following phrase: “Just one more feature, then we can release it.” – Every other engineer.
However, there is always something to add to an unfinished product. You cannot be a perfectionist in this, or you will never end up finishing any piece of software.
For this project’s MVP, the idea is to allow the user to use ready-made workouts or create their own with a wide selection of exercises. That’s it!
Technical Stack

I have experience building apps using Firebase and custom backends. However, there is an increase popularity of a new kid on the block. Supabase, or as they called it; a replacement for Firebase but with a powerful relational database. I must confess that I like their mantra: Build in a weekend and scale to millions.
This might not happen for this project but I like the enthusiasm.
Another reason to choose Supabase is because of their Postgress database. I do want to normalize the data and create strong connections between models like: Connecting users to a workout routine, linking specific programs recommended by trainers to a specific users.
With all of those considerations, relational databases are perfect to make connections and link data into tables.

For the mobile app I decided to use Flutter, a very old friend of mine.
React Native and other frameworks are also capable of being used in this use-case. However, I feel like I can be way more proficient in Flutter and move faster, and as a plus, I am bias towards Flutter, so why not?
I think that’s all for now, I will be back here once I have more to share on this endeavor.
See you in the next one.
Leave a Reply