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
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