Stronk.app
Key Features
Tech Stack
Key Features
Tech Stack
I hope more people consider instead of putting their app on gated walled app stores or in app purchases that we have 100% free web apps instead.
kudos!
Honestly I've never created a donation button before, haha - I've just added a donation link (via wise) to the README and to the settings page in the app.
Again, appreciate the support!
Check out liftosaur as well - comes with a DSL and ability to write programs (pun intended).
https://en.wikipedia.org/wiki/Dance_notation
You could even keep the notes to represent intensity, and extend it with notations for appliances like dumbbells.
Not sure it's above board to scrape the site for workouts though - plus I wouldn't want to take away from their ad revenue.
I started building this app out initially to see how far I could get in a short space of time. It's still quite bare but it shouldn't be difficult to flesh out from here.
For me, it's more about the fun of making a working thing and then sharing that with others. If people contribute that would make my year, but it's rewarding enough to know that people are using it.
I'd like to expand on the exercise details page, but not looking to profit so licensing resources is off the table. Cloud sync is an interesting one because I'm trying to keep this free. I was hoping to offer users the choice of sync solutions (Google Drive, for instance).
I totally agree about data ownership. It also has the benefit of not needing me to pay for storage hosting, a win-win.
I actually just integrated SQLite into the client and will add the ability to sync with Turso (free serverless SQLite) via a user supplied API key.
Might also extend support for self hosted, D1, S3? and so on. Obviously the community can add support for other storage systems as needed
I think this is great, especially because it's OSS.
But if you want to really outshine Strong and Heavy, I'd look into "auto progression" of exercises. Too often, people just... log the same thing for years. Some RIR / RPE / linear progression would keep people motivated.
[1] joyapp.com
I was thinking of adding in workout templates and maybe even figure out progressive overload or routines like 5-3-1.
Someone earlier made a reference to another app that lets you write/share scripts that can be used to design custom programs - which is very interesting. Being web based, custom programs could be written in JavaScript and `eval`'d in a sandbox - allowing for a similar experience.
I'm going to be adding in workout templates and maybe even auto-workouts (like auto progressive overload or routines like 5-3-1).
Another commenter mentioned an app that lets people write scripts to program custom routines. That sounds super interesting and a great way to share routines. I'm thinking of writing an engine for custom routines then use that to program some default ones.
I'm someone who would happily spend a lot of money on an app, if it added value in some way. To date I haven't found a reason to use a more sophisticated solution.
One thing that would stop me from using your app (feature request incoming): ability to have custom excericse types. E.g. today I did dumbbell incline press and alternated between neutral and pronated grip. Gotta find a way to log that. Also support for super sets.
There are a lot of "features" built in to Apple Notes by virtue of being free form / unstructured. (And now with LLMs, the appeal of logging things in a structured way is less necessary than in the past)
As an aside, the coolest benefit I've gotten from gym logging apps is charts. It's interesting to see my session volume, 1RM and heaviest lifts go up over time. It helps me plan my progressive overload schedule and notice when I'm plateauing/have to up the calories.
Plus it's super rewarding looking at the chart from 4 years ago and seeing how far I've come.
But you're completely right about notes on finding ways to ergonomically record variation.
How much help and contributions are you looking for?
If you have any ideas, drop them in the issues
CI/CD is all set up so anything merged to `main` get published straight away, happy to include PRs - doesn't have to be perfect, can always fix it up after.
A few low hanging fruit pieces would be a "details" page for exercises (e.g. "/exercises/Bench Press").
I've also gotta set up the "measure" page for tracking bodyweight - but I am working on adding sqlite to the client so this sort of stuff (like charts) is easier to do.
Already scrapped 3 prototypes as I wasn't happy with the ux.
First version was purely with indexeddb storage too, and was definitely the easiest. (Simple persistence logic, only few entities)
I ultimately gave up on that approach because I don't want to do Data entry on my phone.
So I started with a split template (server) /imported (indexeddb)... But in practice, that's still annoying. I want to be able to access the data across devices, so a third version was born... And now I need proper syncing, which is obviously a significant challenge as it's easy to screw up/hard to make sure it works as intended.
Biggest reason for my current slump is however that every attempt I made to date with the most important UX - the mid workout tracking - feels annoying to use in practice...
Not sure where I'm going with this, I'm still trying out various ways so don't have any real suggestions right now
Other then maybe: the workout template you tease in the workout tab is actually easily implemented if you do it like FitNotes - add a button to the workout exercises for done, and then just provide a bottom to clone a previous exercise (with the bools false)
The first was much like this one with browser storage. There was a bug in Chrome that wiped out the persisted storage of all websites which nuked all of my records
https://www.bbc.com/news/technology-50809216
I tried rewriting it in React but spent so much time worried about component renewing cycles, hooks, state that just ended up distracting me away from time on the UI and UX. It was fast (like it matters), but ugly.
As for data sync, I've just added SQLite on the client and going through the painful process of normalizing the records.
My idea is, users will be able to supply a Turso API key and the app can sync against that, keeping a local copy of the data - eventually consistent.
I'll probably do something dumb like keep a timestamp of the last change and push/pull data periodically.
It only works because it's 1 person using the app and no one trains with two phones
Was experiencing a few unexpected glitches on iPhone (iOS 18.7.2/Safari) - new workout, once I filled the screen with reps or exercises, I was unable to scroll to add more - history, I hoped I might be able to edit (because I could only add two exercises), but no such luck. - history, three dots don’t open anything/broken link? - exercises, dunno. List is fine, but I did spend some time trying to see if the list items were also links (what is a “banded good morning” anyway?).
It's happening for me on Chrome on Android as well. I'll fix it in the morning (it's midnight here).
Also, merry Christmas / happy holidays
I published a workout tracker app called Swole Tracker [1], currently only available on iOS.
It started off as an Apple Note and then turned into an Angular web app that I hosted at my house before finally moving to Expo/React Native once some friends showed interest. I have plans to open-source it eventually.
[1] swoletracker.com
Not affiliated with Hacker News or Y Combinator. We simply enrich the public API with analytics.