Show HN: Workout.cool – Open-source fitness coaching platform
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
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.
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 !
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.
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 !
Sorry for that
It appears to be hosted on Vercel...
I'm just not sure if there are people who would want to work on such a thing, though. I built a few pieces, but kind of got stalled out.
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
Traffic spiked and my backend rate limits kicked in too hard.
Thanks so much for trying it out
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
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.
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).
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.
Beginners should be focusing on form and simple compound lifts. Throwing them into things like heavy accessory lifts with no regard for exercise choice or format is a quick way to get hurt. Again, I want to applaud OP for doing this. The fitness industry is in a terrible place and tools like this have a great place. I just think it needs a ton of work to make it useful. Maybe if I find some time, I'll try and contribute but in it's current state I would never recommend something like this to anyone.
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 :)
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.
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.
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
- 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
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 !
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}]'
I’m working on stabilizing it and will have a fix in the next minutes / hour
Appreciate you testing it out! thanks again.
Selected a few workouts and got this error - Error loading exercises. I'll try again after a few hours. Congratulations on the launch!!
The issue should be fixed RN !
Definitely feeling the HN kiss of traffic right now lol, Ii’m scaling things up and fixing the bottlenecks
Really appreciate you trying it out.
And yes seems like the HN crowd is more health-conscious than I thought. Loooove it !
Thanks again for the kind words and support!
This seems to mean the app is currently only meant for those who want to seriously study their anatomy. Would it be possible to ease a novice into things more gently somehow? Perhaps with recommended muscle groups?
The current onboarding assumes a bit too much knowledge up front (didn't expect that).
Bcs yeah, most beginners don’t think in terms of "rear delts" or "lats" they just want to "get stronger", feel better i guess
I'll be adding:
Optional muscle selection (or skipping it entirely)
Beginner-friendly presets like "Full Body", "Upper Body", etc.
OR suggested muscle groups with labels like "Chest + Triceps (Push)" / back-biceps... etc.
The goal is definitely not to make you study anatomy before you can get started lol and your feedback helps to build a smoother, more welcoming flow
Thanks again for that ! And welcome to the fitness journey! Hope to see you soon
I'm already planning to make the filters optional, and add things like "beginner-friendly", "popular exercises", "calisthetics", ...
Thanks for pointing it out
Personally, as someone that exercises but not for aesthetics, I think of strength training in terms of movements not muscles worked. So I'm thinking "press, pull, squat, hinge" not "chest, lats, glutes". Thinking of function and then doing fundamental compound movements just makes more sense to me, although I do sometimes need to hone in on a muscle for functional reasons -- like targeting the glute medius for opening up my kicks in my Muay Thai training.
Neither is more correct, they're just different approaches.
As someone who doesn't know much about working out or what exercises to do this sounds like a good app. I need help, but picking based on muscles is off. My thought and goals are not by muscle group, but losing weight or getting more toned.
Conversely, someone who knows what muscle groups they want to target, probably already has some sense of the exercises to target and thus less likely to need the app.
Also - for most people who had accidents they'd probably rather click on "Dislocated Kneecap" and then have the software suggest exercises to help with that condition - vs needing to bring that knowledge to the app.
If you want any help or to collab on future iterations please shoot me an email.
https://compute.rorwashere.com/
cheers@rorwashere.com
I added a link to my home screen to make it feel like an app and I'll give it a go for a week to see how it goes.
Adding it to your home screen is exactly the right move ahah i've done the same
Would love to hear your thoughts after a week of usage feel free to drop feedback anytime, i will add a button in the topbar called "Feedback" by the end of the week.
Thanks !
I’d love to see your ideas make it into Workout.cool!!
Let me know if you need help porting the PRs îll support and merge contributions quickly.
One note: if you're using the same video set as workout.lol, the one that loaded for me (male_dumbbell_hammer_curl_front_ani.mp4) could be compressed from 3.3mb to <300kb with little quality loss.
I’m only embedding YouTube videos now, all with permission or public use from the original author.
If you’re into 3D or want to help create open assets, I’d love to chat!
Bcs a lot of beginners don’t know what to do with certain equipment, but they do know what they want to train.
That said, I’ll maybe make both paths easier and let users toggle between them!
PR ares welcome
Mine had some good features, like the ability to share your protocol with other people
The idea of sharing your protocol (or full workout templates) is something I'm definitly building into Workout.cool as well. Users will be able to create routines, save them, and share them publicly (or privately) super useful for friends, coaches, or even just "community inspiration"?.
If you ever feel like revisiting your old project or contributing some ideas/features, I'd love to hear more!
my idea was to actually have a centralized backend and distribute the app. I need to take a look at the source code for that project...
I choose to keep a server backend for a few key reasons:
- Centralized updates to the exercise database (videos, translations, attributes) without shipping a new frontend each time. (The goal is to have 5 to 10 new exercices per week)
- The ability to offer shared features like community workouts, saved routines, and (eventually) syncing across devices, etC...
Room to grow into more advanced features like progression tracking, public/privates APIs (strava, garmin, ...), and integrations all of which are much harder to manage purely client-side in my humble opinion.
But you do need to have an active Apple Developer account (which is $99/year) to set it up and maintain it.
Are there really no open licensed workout-movement animations out there? That sounds like a fun beginner animation project honestly.
I wanted to make sure everything is legally safe and not just scraped or reused without rights.
Producing proper 3D exercise videos is actually VERY expensive we’re talking €10–20 per animation, or thousands of euros per month if you go through a good/high quality API provider. That’s why it's such a tough space for open-source tools to compete in.
Long-term, I'd love to help build a community-driven, open-licensed library of movement animations but until then, this partnership was the best balance between cost, legality, and quality.
Thanks for raising it
Yes, sharing workouts is on the roadmap. Users will be able to create routines, save them, and share them with others (even with public links) as the previous workout-lol project.
As for API integrations (Strava, Garmin, HealthKit, etc.) definitely something I’m open to.
Curious to know : what kind of data would you want to sync or pull in? Workouts? Step counts? Heart rate zones?
Think of it similar to the Strong app, but aimed at trainers/PTs.
https://www.medbridge.com/care/home-exercise-program
One feature request I'd add to the pipeline is to filter exercises available by Gym. Planet Fitness is ironically super unfriendly to beginners and limited in what they offer. People could add the exercises available at their gym and grow the database. Conversely, this could help beginner home gymmers plan what machines / weights to buy to maximize their routine.
Bcs It's true that most beginners tend to think in terms of "full body" or "upper body" rather than doing a structured split let's say. They don’t usually say "I want to train my posterior deltoids and lats" lol
I love the idea of filtering exercises by gym type or gym but can be hard to handle for "private" gyms and will also need some kind of moderation... Could work for large branded gyms though.
has muscle selection is so much more help full than 80+% apps on app store right now
With that said, the website works just fine on my phone.
Fitness really is a solved problem. The fitness apps and influencers will try to convince you that you need a whole database of “creative” and new exercises to see progress, making it seem like there’s “secrets” to getting the body you want fast.
There are no secrets. The truth is, you just have to do the same dozen or so “boring” exercises that everyone already knows. But you have to do them consistently, and you have to increase their difficulty over time. And then make sure you eat right.
A lot of coaching should just be on getting the numbers right and correcting your form. But once you learn how to get that right, you can pretty much be on your own, and fitness apps become little more than a place for you to track progress, if you even care about tracking progress. Progress will happen whether you track it or not, you can just go by feel.
https://imgur.com/a/Z71iT65
One thing that would be super nice, make the back button and forward button work. Its really tempting to want to hit the back button when you select equipment, click next, and realized you missed one.
I'm looking forward to Meta adding this feature to their Ray Ban smartglasses so the glasses automagically count my calories each time it sees food on my plate or going into my mouth. A feature they possibly should make optional, but for me who has prescription Metas it would be a big time saver (try to eat 1500 to 2000 calories a day and burn 250 to 500 in exercise). I think the knowledge of how many calories you consume done automagically would prompt 1/4 of people thinking and or on Ozempic to not do it.
A pan-fried chicken with a little oil in the pan to avoid sticking/make better thermal contact will add calories but not 3-4x more. You're likely using about 1 tbsp of oil which is around 100 kcal. 100g of chicken has around 160 kcal. Even assuming all the oil ends up on the chicken (it isn't) that's ~2x the calories at most.
Perspective wise, though, it'll by the white rice or mashed potatos that are more problematic in terms of calories. Both have a load of calories and can't be eyeballed by camera. It's all about the weight for those. And if you threw in butter/oil, even harder to know what the actual calories are.
I can just hit a search engine and say "number of calories in X" and get a precise answer with 2 seconds of calculator math.
If I have to take a picture, send it to ai, but then amend it with "This is air fried chicken, it weighs x, it's a breast cut. I didn't add salt."
Why do all that when a single search will give me the answer I want without the picture upload or context?
Overall I am a bit obsessed but not that obsessed to the point it needs to be exact on-point precise.. just give me an idea of where my calorie count stands for anytime of the day. Just be way better if it was done auto-magically and Im betting this will be a good future use that gets people excited for smart glasses one of many upcoming innovations with them.
For the sell process, like with any open-source project whether it's an NPM package or anything else, there are no absolute guarantees... that's just the nature of open ecosystems...
But I've built Workout.cool with transparency in mind, no hidden business model, and self-hostable.
Just what I can tell you is this :
I've been passionate about fitness my whole life let's say. I started sports at 3 years old, and I've been into strength training for over 15 years.
I didn't build this to make money. I built it because I genuinely care and because I see more and more people missing out on the benefits of training, often overwhelmed by complexity, closed ecosystems, or paywalled apps, including people close to me, like my sister.
Hope that my reply counts for something...
sent 15 emails over 9 months to the new owner, offering to help or even take over the repo but i had no replies.
Issues and PRs were ignored(you juste have to see the issues section of the report). Rebuilding from scratch was the only way to fix the licensing & continue the project i guess
And what specifically were the licensing issues? workout.lol is MIT from what I can see.
The licensing issue I referred to was about the videos: many of them came from paid/licensed sources
No comments yet
I wanted to move to a more "new", (robust?) and maintainable stack with TypeScript and a SQL-based backend (PostgreSQL)
Copyleft licenses like the GPL come with extra guarantees that do not violate the core guarantees of open source software. Instead, they make them stronger. The 'restrictions' GPL imposes essentially boil down to this: "if you use (parts of) GPL software, you must give your users the same freedoms the GPL guarantees." GPLv3 and AGPL closed up loopholes that allowed people to bypass those clauses.
[1] https://opensource.org/osd
But in this case the original project used the MIT license, so the only requirement is that it the form includes attribution to the original project.
For example as a heavy FB Market place user I see a lot of stuff like:
[picture of an iPhone 12]
- iphone 14 - new battery - delivers to [enter your state here] - comes with [enter accessories it comes with]
Like they were too lazy to even fill in the brackets or ensure some level of accuracy. What's the point?