17th October, 2024

V3 Stable Release!

After almost a year of waiting, I'm proud to announce that MyFit V3 is now officially released πŸŽ‰πŸŽ‰πŸŽ‰! Here's a glimpse of the new features:

  • Brand new, clean UI with dark and light modes
  • Detailed statistics for all kinds of metrics
  • Adjust mesocycle split during its active phase
  • Drag and drop exercises to change their order
  • Volume progression customizations per muscle group
  • Better handling of bodyweight exercises

You can also migrate all your data from V2 to V3! To migrate, just go to your profile page in V3 from the top navbar and hit β€œStart migration.” There are some limitations due to schema mismatches:

  • You should NOT have an active mesocycle in V2. If you do, you can finish it at your own pace and migrate later, no rush.
  • You'll need a single average bodyweight to back-fill all workouts.
  • You'll need a single average workout duration to back-fill all workouts.

Although I've thoroughly tested the app and have been using it for quite some time, there might still be small bugs. Feel free to open an issue if you encounter any. Thank you all for your patience!



20th September, 2024

V3 beta release!

I said I'd try to write a blog post every month, but I got busy with college admissions and stuff. And honestly, I got a Deadlock invite (the game), and it was way too enticing to miss out on. Met up with friends as we hadn't seen each other for quite some time. So basically, I procrastinated working on the app for the better part of August.

After finishing up the admissions process, I had a bit of breathing room before the start of the academic year. I got the motivation to start working on the app again and learned a lot about GitHub guidelines and issue tracking from a friend. A beta version of V3 was released for testing and feedback, and people started opening issues like bug reports and feature requests. After seeing positive comments when I resolved the GitHub issues and discussed the app with others, I WANTED to work on the app. Closing issues one by one while interacting with the community has a different kind of satisfaction to it.

Unfortunately, there were a LOT more things remaining to finish off before I could release the V3-stable version. And I couldn't finish them before college, and now I'm buried under assignments, practicals, and lectures. So I will be slowing down work on the app for now, and when a new holiday season arrives, giving me some free time, I'll catch up on the issues. Here's the V3-beta link for anyone who missed it on GitHub: https://my-fit-v3.vercel.app (this version is in beta and user data might be deleted without notice, use at your own discretion)



7th July, 2024

Being fine with "sub-optimal" and v3 updates

To avoid keeping everyone in complete darkness, I've created a GitHub discussion which I'll try to update regularly.

"Sub-optimal" β€” you might've heard this word many times on social media: influencers telling you that this exercise is "sub-optimal" for this head of this muscle group and that you SHOULD NOT do it AT ALL. Sometimes it is true and well-intended, but many times it's just unnecessary and a lot more nuanced. Fitness should be considered with context, and so should exercises. Some exercises might not be "optimal," but they might feel better on your joints, or you might simply enjoy them more. Keeping a black-and-white view of exercises as simply optimal vs. not optimal is not good for long-term goals.

I've learned this same lesson when making this app on the technical side as well. Sometimes you can't get the optimal structure or pristine code with perfect readability, and you should be fine with it. I've re-made this same workout app about four times now, each time learning new things and getting better at it. Instead of aiming for perfect code, I've now started to aim for "good enough" code. Otherwise, I'll never be able to release v3 and will be stuck in my OCD forever.

Tech updates:

  • Moved to CockroachDB from Neon for the lower latency and higher storage (10GiB free!)
  • A good CI/CD pipeline that will work for PRs as well

Again, I'm just a college student who's barely an adult. This blog is a place where I plan to share my journey of building this application. None of this is scientific advice, just my opinion on things I've built by watching tons of Dr. Mike on YouTube πŸ˜…



16th June, 2024

Update on the progress of v3

The app now gets 4000+ views every week πŸ₯³. Thanks, all!

Now that my exams are over and I have almost an entire month of holidays, I'm dedicating nearly the entire day to v3. I'm learning new things and implementing features every day, which feels great! I'm almost done with the foundational work on exercises and mesocycles and will begin working on workouts very soon. Most of the tech stack is now fixed, and I doubt I'll have to rewrite anything for at least the next few months.

v3 sneak peek
v3 sneak peek

Some of the new and requested features that I've implemented are:

  • Drag and drop for exercises
  • Exercise search list where you can add an exercise with one click
  • Ability to change the exercise split of an ongoing mesocycle without losing progress
  • Actual and meaningful analytics

For the tech people who are interested (these decisions don't really affect the actual end user experience directly, mostly just UI stuff and some speed improvements), here are some of the major changes:

  • tRPC instead of REST API for type-safe database queries
  • shadcn-svelte with Svelte 5 for UI components
  • Prisma with Neon PostgreSQL for efficient joins and type safety

Now that the basics are in place, I can soon start work on the progression algorithms. I just need to write some tests to make sure things don't break later on when I add more features. That's about it for this blog post. I'll try to post once every month to give updates on v3 and cool upcoming stuff. Happy lifting!



3rd May 2024

About v3

TLDR: Life happened. and I wasn't happy with the current tech stack, so I'm sorry but it's gonna take quite some more time

Yeah... that didn't pan out well. It's been almost half an year since I made the v3 notice. I was naive to believe that I'd actually be able to complete the thing in 2 months. I didn't expect so much stuff to happen in this last semester of my diploma, basketball, hackathons, college events, and even exams! I still tried to put in as much work in v3 as I could, but the code quality was deteriorating over time as I was starting to do the same thing I did in v2, rush things.

I wasn't happy with how the spaghetti code looked, I just knew this was something that would become a disaster to manage later on, so instead of trying to deliver a rushed app again, I've decided to let v3 take as much time as it needs.

I also need to change the tech stack entirely.

  • I'm moving away from MongoDB with API endpoints, to server-side streamed Prisma ORM with PostgreSQL hosted on Neon, this should offer much better type safety without code duplication and better performance.
  • I'm also going to use shadcn-svelte for this project instead of DaisyUI, it looks very cool and is quite low-effort tbh.
  • I also want to use Svelte 5, but I need to wait a bit as the shadcn-svelte library isn't yet fully ready for runes support.

"So how long will v3 take?", you may ask, and to answer that honestly, I don't know at this point, I really don't want to rush this. Sorry for making false promises, I didn't know any better.

I have my last sem exams now, after which I have a lot of free time to build, till then hopefully svelte 5 would be better supported in the ecosystem and the DX would be great too.

On a side note: v2 is still doing extremely well, there are 10000+ views every month, which is insane to me. So many people have opened helpful issues to suggest stuff and also told me to add a donations option, which is very cool, thanks a lot guys. As soon as exams are over, I'll start working on v3, I don't feel comfortable yet giving a specific timeline but I promise you this, I'll try my best to finish it as soon as possible.

Happy lifting!



27th December, 2023

v3 Notice!

I have received quite the traffic in v2, I am super happy about that

Unfortunately, even though I wanted to, I couldn't fully implement all the features of v2 before launch, I hurried a lot

I have began work on v3 now, this time it will be a full fledged app with all the features from start, and not break any important features after launch

Developing v3 will take a long time (~2 months), but if there are some important features that you guys wish to have in v2, feel free to open an issue on the GitHub repository

The reason I am working on v3 and not implementing the new features directly in v2 is cause of potential migration problems, v3's schema will be different from v2's. Don't worry though, I will definitely make a migration script after v3 has finished development for an easy upgrade to v3

Some new features that I'm working on in v3 are:

  • Offline support
  • Automatic recovery suggestions
  • Automatic deload creator
  • Better and working analytics
  • Open to suggestions, open an issue!