Readit News logoReadit News
Posted by u/surgomat 2 months ago
Show HN: Workout.cool – Open-source fitness coaching platformgithub.com/Snouzy/workout...
I was the main contributor to workout.lol, an open-source fitness app to easily build a workout routine. The project had traction (1.4k GitHub stars, 95 forks, ~20K visits/month), but was eventually sold due to video licensing hurdles. The new owner stopped maintaining it, and the repo went abandoned.

Over the next 9 months, I sent 15 emails to try to save it : no replies. Feature requests & issues were ignored. The community was left with a "broken" tool let's say.

I couldn't just let it die So I built the new version from scratch with the same open-source spirit, but a better architecture long-term vision, more features and no license problems.

It's called : Workout.cool (https://workout.cool). What it offers: 100% open-source, MIT-licensed - 1200+ exercises (with videos, attributes, translations) - Progress tracking - Multilingual-ready - Self-hostable

I'm not doing this for money. I'm doing it because I believe in open fitness tools, and I’ve been passionate about strength training for 15+ years.

If this resonates with you, feel free to: - Star the repo - Share with fitness/tech friends - Suggest features - Contribute code/design/docs

Together, we can build the open-source fitness platform we all wanted to easily build a workout routine and get in shape

Website: https://workout.cool GitHub: https://github.com/Snouzy/workout-cool

Vincenius · 2 months ago
Oh funny to see it here. I'm the original author of workout.lol.

I sold the app to a guy who seemed to just abandoned it. I also texted him multiple times if he needs support, but he didn't answer anymore. It makes me really happy to see it being maintained again!

Great work on the UI improvements.

surgomat · 2 months ago
Ohoh ! Vincenius !!

You have no idea how happy I was when I saw your name pop up ahahha

Yeah, no luck either. It really broke my heart to see the project stall like that.

That's what pushed me to rebuild everything, keeping the same open spirit you had from day one.

Thanks a lot for the kind words about the UI it means a lot coming from you.

And if you ever feel like jumping back in (I totally get that it might be tricky, especially since you sold the original project and this one is so close) but you’d always be welcome.

Your input, ideas, or even just your presence would mean a lot !

Cheers !

higgins · 2 months ago
yo @dang, a section on HN for missed-tech-connections would be RAAAAAAAAAD
gnarlouse · 2 months ago
This is SO COOL!!!

I’ve been working on an automated calendar scheduling api that integrates with Apple CalDAV (iCal) that lets you schedule your life around goals (it uses Google OrTools to solve a great big CP-SAT constraint model blazing fast, a year in under 5 seconds), along with meal planning around macro goals. I knew I wanted to integrate a workout/training plan system but had no idea what component I’d end up using.

Now I know! Thanks for building this project.

surgomat · 2 months ago
Thanks mate.

I'd love to hear more about your setup and if Workout.cool can fit as a "component" let's say? in your system, that's exactly the kind of use case I built it for. Open, hackable, and easy to plug into more powerful workflows. GG !

Equivocal0485 · 2 months ago
this sounds really cool! would love to hear more about it. I've been hacking something like this together by hand. Send me a message!
repeekad · 2 months ago
So… someone in the industry bought it hoping to stop a free alternative from getting popular? Wonder what will happen to this one
Vincenius · 2 months ago
I don't think that the guy who bought it was from the industry. In our talks, he really seemed interested in growing the project - but maybe I'm just naive.

If he really wanted to stop the project, he should've put the repository on private and put down the website, but he just left everything the same as it was.

koakuma-chan · 2 months ago
From what I can see this is AI generated, and it doesn't work when you press continue.
minimalist · 2 months ago
It does not appear to be working for me right now, I get "error loading exercises".

What are your thoughts about the wger project [0]? It is a FLOSS AGPL-licensed self-hosted fitness/workout/nutrition manager that has existed for almost a decade (I think?) It's a django app and has a companion flutter app that runs on android/ios/windows/linux/macos. It supports multiple users and could even be used to run a gym. Body.build [1] is a newer FLOSS project (also browser-based) that is focused around building a weight lifting program. The author of body.build also contributes to wger.

I'm using wger in my homelab and while there are a lot of moving pieces to the self-host process, it works well. I'd say the biggest limitation is the comprehensiveness of their exercise database, but that is something that many people have recognized and are steadily expanding. If anyone is willing to contribute exercises (and exercise media) to this AGPL licensed project, they would definitely appreciate it!

[0]: https://github.com/wger-project

[1]: https://github.com/Dieterbe/body.build

Kovah · 2 months ago
I just tried Wget the other month and sadly can't recommend it. The UX of the website is horrible, and their mobile app is a buggy mess (at least on iOS). No matter if I wanted to start a workout, edit weights for an exercise, or browse previous session, the app kept crashing, hanging and logging me out. I am now using LiftLog which does everything that I need. FOSS too. https://github.com/LiamMorrow/LiftLog

It's interesting that fitness and weightlifting are pretty common these days, but there are so few non-commercial applications out there that are usable and well maintained. At least that's my perception after digging through dozens of Github projects.

bdunks · 2 months ago
Have you paid for the AI Planner, and if so, can you recommend it?
riedel · 2 months ago
I got the same error.
surgomat · 2 months ago
Yes totally unexpected! It is fixed right now.

Traffic spiked and my backend rate limits kicked in too hard.

Thanks so much for trying it out

lucasverra · 2 months ago
same for me >> Error loading exercises
bromuro · 2 months ago
I disabled the adblocker and it worked…

Deleted Comment

toyetic · 2 months ago
This is cool, as someone whose been lifting for ~5 years its nice to see a fleshed out opensource tool for weightlifting.

The main problem with any app I've tried is that after enough experience the bells and whistles of the app don't really matter and mostly what you care about is consistent tracking for progressive overload.

I think this is a good app for people who want to get started weightlifting I would say the two main things needed for wider adoption would be 1. A mobile app ( or pwa, I've made and used my own personal workout app for a while as a PWA and its been just as good as any native app I've tried) 2. A way to save specific workouts as routines and track those for long periods of time

LostMyLogin · 2 months ago
Hesitating to write this because I don't want to push back at all on OP but I'm not sure I agree that something like this is a good option for people wanting to get started in weightlifting. I'm not sure it's a good option for anyone really. I applaud OP for the effort but this is recommending some pretty awful workouts. For example if I select back and bi, it's giving me nine different exercises with complete disregard for the order they are in or what other exercises are in the workout.

Why are compound lifts in the middle of the workout and why am I doing three different types of chin ups? There are also no reps / sets calculated nor are there 1RM percentages for weight.

Bro splits are some of the lowest quality routines you can use and this somehow makes them worse. You could replace all of this, remove the bells and whistles, and create a bare bones PPL app that determines exercises based on equipment available and it would be light years better than this.

duxup · 2 months ago
Were those intended to be "do it in this order" or were they just options?

I got the feeling they were more options and you could reorder them if you wanted or shuffle or just do one or another.

To me a more casual / getting started is just about doing the thing.

RankingMember · 2 months ago
Agree. IMO a simple 5x5 is going to be the better option for someone just starting out. Stronglifts is one flavor with a great app that just works and tracks all the little stuff (progression, giving you a specific rest time) and, once you plateau, you can start digging in to other options.
mywittyname · 2 months ago
Community-made working plans would be a killer feature.

But I do agree with your assessment. Each exercise needs a categorization (compound, isolation), compliments (if an exercise is a push, then what are some pulls), companions (if you're working arms at the cable stack, might as well do a bunch of arm/shoulder/back cable exercises), and a est. time to perform (including warmup, setup). This will allow plans to be generated in a way that makes sense.

Though, I think community made exercise plans are a better solution than trying to devise algorithms to generate good plans. Though, an LLM integration might work well for beginners, send a prompt with a list of exercises and goals (i.e., beginner looking for a 3 day a week strength plan, build one using these 20 exercises).

gavmor · 2 months ago
Ideally, some way to export and share between different UIs.

https://json-schema.app/view/%23?url=https%3A%2F%2Fgist.gith...

surgomat · 2 months ago
Thanks a lot means a lot coming from a gym bro hehe

Btw I totally agree: once you’ve been training a while, the only thing that really matters is tracking your progress and showing up consistently (or "mental" side in my case, i do not train anymore for performances).

Good news : saving + tracking routines over time is in the roadmap.

That's why the architecture of the "workout session" is the part that is the most different from the old app.

I want users to create, reuse, share, analyse and evolve their own training blocks with minimal friction.

Would love to hear how you handled that in your own PWA sounds like we've walked similar paths :)

olliejennings · 2 months ago
Am not sure what your data source is, but l run the following:

- https://wrkout.xyz/ (exercise database api with images and videos) - https://github.com/wrkout/exercises.json (open source exercise dataset)

If they are of any interest / help

surgomat · 2 months ago
Hey actually came across wrkout.xyz a while back, really cool project!

For this, i rebuilt the entire dataset from scratch with a partner to avoid any licensing ambiguity (especially with videos), and to have full control over attributes, translations, etc.

But I absolutely love seeing other open projects in this space and I'd be happy to explore possible synergies if it can help both communities.

DMs open !

desireco42 · 2 months ago
This is how you do contribution. Thank you. Everyone has ideas about fitness, but this makes it super easy to start because you already did a collection for us.
Eric_WVGG · 2 months ago
Wow, this doesn't suck at all.

The thing that's missing for me is suggestions on how much to lift / how many reps. There's a fitness program called 100 Pushups that came up with a good solution for that…

- Repeat the exercise (in this case, a push-up) as many times as possible until failure. A person might achieve 8, for example.

- The app comes up with a schedule; every other day, the user is expected to do a set of 3, 4, 3, 3, 5 (with a 2-minute rest between each set)

- The app's schedule has an algorithm that ramps up the reps at a pace that the user can manage — and self-adjusts if the schedule is too easy or too hard…

- until the user can do 100 push-ups at the 6-week period.

If there's any interest in this, I'd be open to discussing a UI and contributing.

Eric_WVGG · 2 months ago
If you wanted to ditch the backend, you could hook this up to AT Protocol, have all the users’ data in a PDS. No need for servers — ever — and if this project fell to a similar fate of the old one, it could keep working forever.
surgomat · 2 months ago
I love that idea. Yeah i know this app : it is a great example of how simple, adaptive progression can really motivate people (specially beginners).

And yes I'd absolutely be interested in discussing a UI + flow for a self-adjusting progression system like that. Yeah. Let's talk about that, drop me a DM? I can think about some (ugly) alhorithm first

Eric_WVGG · 2 months ago
I don't think they do DMs here? but anyway I posted on the Github issues with some thoughts on UI and basic sketch of data needs
planetpluta · 2 months ago
Curious about the 100 pushups program app — do you have a particular one you like that you can share?

Edit: Followed the github issue and found the link!

adobrawy · 2 months ago
It looks promising.

I retrieve error response when fetching exercise:

0:{"a":"$@1","f":"","b":"eETmgndxtv4Ar0i8Wync1"} 1:{"serverError":"An unexpected error occurred."}

My request: curl 'https://workout.cool/' \ -H 'accept: text/x-component' \ -H 'accept-language: en-US,en;q=0.9,pl-PL;q=0.8,pl;q=0.7' \ -H 'cache-control: no-cache' \ -H 'content-type: text/plain;charset=UTF-8' \ -b 'Next-Locale=en; _fbp=fb.1.1750253718188.954698194752805529' \ -H 'next-action: 7f80b017f78704b00d2411aebde5ba8318b475de6d' \ -H 'next-router-state-tree: %5B%22%22%2C%7B%22children%22%3A%5B%5B%22locale%22%2C%22en%22%2C%22d%22%5D%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2C%22%2F%22%2C%22refresh%22%5D%7D%2Cnull%2Cnull%2Ctrue%5D%7D%5D' \ -H 'origin: https://workout.cool' \ -H 'pragma: no-cache' \ -H 'priority: u=1, i' \ -H 'referer: https://workout.cool/' \ -H 'sec-ch-ua: "Google Chrome";v="137", "Chromium";v="137", "Not/A)Brand";v="24"' \ -H 'sec-ch-ua-mobile: ?1' \ -H 'sec-ch-ua-platform: "Android"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: same-origin' \ -H 'user-agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36' \ --data-raw '[{"equipment":["PULLUP_BAR","BANDS","BODY_ONLY"],"muscles":["TRAPS","BACK","SHOULDERS","TRICEPS","FOREARMS","GLUTES","HAMSTRINGS","CALVES"],"limit":3}]'

surgomat · 2 months ago
Thanks a lot for reporting! The traffic from HN hit hard (which I didn’t expect tbh).

I’m working on stabilizing it and will have a fix in the next minutes / hour

Appreciate you testing it out! thanks again.

mandeepj · 2 months ago
HN Kiss of death or love :-). You are #1 on the front page now, so that was expected. Can I say the HN audience is very health-conscious? :-)

Selected a few workouts and got this error - Error loading exercises. I'll try again after a few hours. Congratulations on the launch!!

nerevarthelame · 2 months ago
I ran into a handful of technical issues, which are understandable at this early stage. But on a more fundamental level, the exercise recommendation doesn't seem like it demonstrates a good knowledge of fitness program design. So I really would not recommend anyone use it to design a fitness program, at least in the current state.

It might be better to focus not on generating routines from scratch for users, but rather logging existing workouts, and importing routines/templates other people have designed. (I know you expressed interested in working on the latter in the comments here.)

Some specific issues I encountered:

1. I said that I wanted a full-ish body workout, and it recommended 33 distinct exercises for a single session. That's wildly impractical.

2. The exercise selection seems to just pick 3 random lifts (based on available equipment) for each selected muscle group and ignores the fact that many lifts hit more than one muscle group at a time. It also disregards the widely accepted notion that certain muscle groups respond better to different training volumes.

3. The selection of specific exercises seems arbitrary, recommending some that are very far out of the mainstream and with poor resistance curves.

4. It recommended exercises with equipment I do not have (I'm a home gym person - no way to exclude machines)

5. It suggests strange branded equipment (e.g., "Dynaband Shoulder Press")

6. If you go back to select different equipment, it will continue to recommend exercises with that equipment.

7. Can't delete recommended exercises, nor even add new ones.

beezle · 2 months ago
Similar take. The UI and lift explanations are nice but the lift selections (when even available) are a bit dubious at best. In some cases, sub-optimal, in other cases out of left field.

My personal suggestion would be to populate the data base with all the standard primary/secondary lifts (bar, dumbell, machines) and let users build their own program. Maybe have an option to suggest alternatives for any given lift.

After that is done, then maybe work out routine creation, hopefully with some general input to the developer from actual trainers.

Also agree, keep the equipment simple/standard and avoid branded machines,etc.

surgomat · 2 months ago
Thanks for the honest feedback.

Yeap ! Once that foundations are stable: introduce routine creation tools, ideally shaped with input from "real" trainers and a free "marketplace" to pick any workout session / program, provided by the community.

I guess we are aligned, lol :) Thanks again !

surgomat · 2 months ago
Wow, Thanks a lot for taking the time to write this seriously. This kind of detailed feedback is incredibly valuable, especially at this early stage. Thanks !

So, yeah you're absolutely right: the exercise suggestion logic is very basic for now, and doesn't reflect proper programming principles (volume, movement patterns, recovery, compound/isolation balance, etc.). It’s more of a discovery tool than a real "smart" coach let's say. I probably need to make that clearer in the current UI.

To your specific points:

1. 33 exercises for a single session YES that's overkill, lol.

2. It currently just picks 3 per muscle group, with no upper cap or "contextual logic" let's say, and that'll change soon.

3. I'm already working to "categorize" the exercises by introducing metadata like compound/isolation, primary/secondary muscle groups, movement patterns, and tags for resistance "quality" let's say or "popularity".

4. I’m not sure I fully understood your expectation here. Do you mean you'd like to explicitly exclude certain machines or "types" of equipment, even if others are selected? (e.g. : "I have dumbbells and a pull-up bar, but please exclude all cable or machine-based exercises"). If so, that makes total sense. I'd love to clarify and improve that part of the UI. Thanks.

5. OK

6. Changing equipment doesn’t fully update the list : bug confirmed, I'll fix that. (For the moment yes you have to do it 2 time - render problem).

7. It's high on roadmap. You'll be able to fully edit your routine very soon.

Really appreciate the critique. No ego here I want this to be useful and respectful of good training principles. If you're ever up for helping shape that direction (even just high-level ideas), I'd love your input, what do you say?

Sander_Marechal · 2 months ago
It would be great if the equipment and muscle selection wasn't mandatory. For example, I have a pull-up bar but I have no idea what muscles I can train with it. Why not let me filter on beginner exercises instead?
surgomat · 2 months ago
Mh yeah i didn't expect that but it shows that the current flow assumes a bit too much knowledge up front, I"ve heard similar feedback from others.

I'm already planning to make the filters optional, and add things like "beginner-friendly", "popular exercises", "calisthetics", ...

Thanks for pointing it out

flkiwi · 2 months ago
This is the number one complaint I have with all of these solutions (and my tone here is friendly, not irritated): they assume you're already far along your fitness journey. Watching Apple's iOS updates talk about AI coaches to "help ensure you stay in your max results zone" or whatever ... my dude, that person doesn't need an AI coach. That person is already optimizing by fractions of a performance percentage point. People need, and benefit from, tools and coaching when they're starting from zero.
lifesaverluke · 2 months ago
then you should choose your pull-up bar as equipment, right?
bluGill · 2 months ago
A pull up bar is the first thing you should get since it can target muscles that are hard to do any other way. For most other muscles you can find some other way to strengthen them just using body weight exercises.

For most people a pull up bar plus body weight exercises will get them everything they want: enough fitness for good health. If you want to win competitions you need the right equipment (different competitions need different equipment).

Sander_Marechal · 2 months ago
In my specific case, yes. But you could also flip it around. Maybe select some muscles and not select any equipment. They you can see what kind of equipment you might want to buy.