[HN Gopher] Show HN: Minimal, self-hosted exercise tracker
       ___________________________________________________________________
        
       Show HN: Minimal, self-hosted exercise tracker
        
       After decades of tracking my exercise programs in progressively
       more complex spreadsheets I eventually burned out on metrics and
       complicated periodization programs to the point where I had almost
       stopped exercising.  I am now at a place where I simply want the
       minimal amount of structure and tracking to make sure I can
       maintain my fitness, so I boiled the entire concept down to what I
       felt was its essence: enough information and structure to remind
       you of what is needed today, and how it went on the same exercises
       last week.  To reduce friction, the interface is kept as simple as
       possible. Simple to the point where all setup is done by editing
       the html source file and there is only one freeform "weight"
       textbox per exercise to manipulate. Data is autosaved as it is
       entered. It never nags or judges you except by showing the last
       date you entered data in for that day-of-the-week's exercises. The
       only quality-of-life feature is a super-simple rest period timer in
       the footer.  It has no external dependencies and only uses browser
       local storage. There is no possibility of monetizing it.  I was on
       the fence about sharing since it is such a small and simple
       project, but decided I would share here in case anyone is looking
       to make a fresh start in the new year and finds the philosophy
       appealing.
        
       Author : DrPhish
       Score  : 113 points
       Date   : 2024-12-27 22:45 UTC (1 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | Avfrosta wrote:
       | There's something beautiful about creating software in the
       | absolute simplest possible way there is, html.
       | 
       | Good job, will definitely try it. But I know myself, will end up
       | looking for something just a _little_ more advanced. And before I
       | know it I end up staring at graphs trying to figure out what my
       | hours /day solving JS bugs has to do with my weight...
        
         | jarebear6expepj wrote:
         | Well, certainly some HTML ... but mostly vanilla javascript.
         | Which in its own right is also beautiful.
        
         | remram wrote:
         | It does have JavaScript, it's not just HTML.
        
       | knighthack wrote:
       | Love it! I have my own minimal system for tracking my fitness,
       | which I came to after that typical track of forgetting YAGNI
       | implementing all sorts of features...that never got used, because
       | of how complicated it got.
       | 
       | Simple systems are the best; go only for complicated systems if
       | you're a professional and _need_ complicated tracking features.
       | (And if that's needed, you might be better off hiring a manager
       | to do the tracking anyway.)
        
       | triyambakam wrote:
       | The demo link is to the raw HTML rather than rendered. I am on
       | mobile so maybe that's why? I'm not sure what headers are being
       | sent. A demo or screenshot would be great.
        
         | gazook89 wrote:
         | You need to take that file and drop it in githack.com or just
         | open the link in GitHub and change "github" to "githack".
         | 
         | Like this:
         | https://raw.githack.com/bmtwl/exerciseminimilism/13d4ee27deb...
        
       | xnx wrote:
       | I love the idea of this type of app, but feel like local storage
       | is too fragile to be the system of record. Any way to backup to
       | disk or cloud storage?
        
         | DrPhish wrote:
         | I actually implemented an export/restore function at one point
         | and ended up taking it out.
         | 
         | I waffled heavily on that feature but in the end only losing
         | the last recorded weight for each exercise didn't feel like
         | enough of a loss to warrant the cluttering up of the interface
         | or reliance on external services.
        
           | yjftsjthsd-h wrote:
           | As you kinda note in the readme, that does mean that you
           | can't migrate between browsers/machines, though since it can
           | only save a week of data that's less impactful. Not my style,
           | but the design decisions do work together.
        
         | yoavm wrote:
         | This made me think - is there a simple way to sync localStorage
         | with my Firefox profile? If not, it doesn't sound like a
         | WebExtension too difficult to create.
        
           | yoavm wrote:
           | In case someone is interested, I started working on it here:
           | https://github.com/bjesus/notsolocalstorage/
        
         | Klaster_1 wrote:
         | My application [0] I used daily for 13 years stores the data in
         | localStorage and I had several unpleasant data loss incidents -
         | mostly me cleaning storage of the wrong browser tab.
         | Thankfully, a simple JSON dump/import feature enables a good
         | enough degree of reliability. Thanks to it, I didn't lose any
         | data in 5 years, but now I have a questionable habit where I
         | defensively export data before every major edit or deployment.
         | 
         | Simple localStorage replication has been an interest of mine
         | for many years and I explore available solutions multiple times
         | a year, but none of these ticks all the boxes - no server to
         | maintain; free; optional for users; bring your own storage; the
         | app stays a web page; cross-browser. I wish browsers had a file
         | system API that allowed the app to read/write to specified
         | directory or a file in background, which users may sync with
         | their tool of choice, like Google Drive.
         | 
         | [0] https://github.com/Klaster1/timer-5
        
           | mlok wrote:
           | Add your browser data directory to your backup folders list,
           | and restore that folder in case of a localStorage loss, that
           | should do it.
        
             | Klaster_1 wrote:
             | If that works for you - I am glad, however, this approach
             | won't work across different browsers and OSes.
        
           | xnx wrote:
           | Exactly! The number of subscription saas apps that could be
           | replaced by open source if there was a bring your own storage
           | API would be astounding. This might be exactly why browser
           | makers will not add it.
        
           | dugmartin wrote:
           | It's Chrome only but the file system access api lets you do
           | this:
           | 
           | https://developer.chrome.com/docs/capabilities/web-
           | apis/file...
        
       | inezk wrote:
       | Very cool! I like the simplicity of it. Right now I'm working on
       | something similar for myself (and some of my family), but maybe
       | other people find it potentially interesting too? Essentially I'm
       | building a webapp that each time I use it will arrange random
       | ~5-7 lower back exercises from a list of ~25 for a total of 10
       | minutes session. Then it will guide me (only time and name of
       | exercise) through the workout session (counting down the exercise
       | time, and pause/break time). The problem I'm solving is to not
       | have to think too much about what exercise I should/want to do
       | next, make it a little bit more fun/interesting (due to
       | randomness aspect) and free my hands from operating a timer to
       | time myself (also less likely to drift to social media or youtube
       | videos). Thoguhts?
        
         | DrPhish wrote:
         | I had a spreadsheet set up much like that in the past: it would
         | bubble up the exercises I'd done the longest ago for a
         | particular muscle group so I'd always get variety. It worked
         | pretty good, but I found myself often avoiding unpleasant
         | exercises when given choices and eventually the whole
         | arrangement fell apart due to too many moving pieces. I also
         | didn't see the kind of extra benefit that I thought I'd gain
         | from performing so many variations. I also used to set up fully
         | scheduled on/off timers for specific exercises in an app, but
         | found that any interruption would throw the whole thing off,
         | annoying me to no end. However, your last point was also my
         | biggest enemy. If I get distracted online for long enough to
         | cool down to the point that I'm worried about injury, the whole
         | session tends to just blow straight out. That's the main driver
         | I had for putting the simple timer in the footer: keep my
         | device on one screen from beginning to end!
        
         | mmahemoff wrote:
         | I've also been toying with a timer based app that incorporates
         | some randomness, which I feel is usually missing or poorly
         | handled in fitness apps. Some random exercises and variable-
         | range durations should improve motivation and give your body a
         | better workout.
         | 
         | To quote Arnie: "You have to shock the muscle, and you have to
         | trick the muscle. The body will adapt to anything you do, so
         | you have to keep it guessing. That's how you grow."
        
         | tajd wrote:
         | I actually built something similar last week
         | 
         | https://bestefforttools.com/workouts
         | 
         | I wanted something to create realistic yet slightly randomised
         | warm ups and finishers - similar to CrossFit wods but more
         | structured.
         | 
         | Behind the scenes I use a formula that estimates a total work
         | capacity.
         | 
         | Feedback welcome!
        
         | oulipo wrote:
         | I guess this should be easy to build on val.town or
         | https://bolt.new/
        
       | binarydreamer wrote:
       | Congrats. How did you decide the amount of exercises and when do
       | you log it? How much do your exercise file grow?
       | 
       | I can't count how many times I have thought about something like
       | this and have decided to build one for myself which includes my
       | liquid, meals, workout, and fun cardio habits. I will be using
       | indexDB for when I'm offline and just a small database.
        
         | DrPhish wrote:
         | Thanks! I tried to use a multi-sport cross section of exercises
         | and recovery routines to show some of the things you could do
         | with it, but all the exercises are ones that are related to
         | sports I do to keep it grounded in reality.
         | 
         | I was thinking it would be fun to do git branches with some
         | more well-known and popular routines for different goals to
         | give people a nice range of potential starting points.
         | 
         | As far as how long I let it grow: I used to keep years and
         | years of data, but this app will not be my place for that going
         | forward. This will be for a maintenance/marginal gains habit,
         | and Golden Cheetah will be for running/cycling performance
         | management where peaking actually matters.
         | 
         | Good luck with your own app! I love the idea of an offline
         | capable local db.
        
       | robdar wrote:
       | https://www.amazon.com/Five-Star-Notebook-Amethyst-840029CF1...?
        
         | DrPhish wrote:
         | Haha, I unironically considered this as well, but prefer the
         | "always today, only today" clean automatic view and lack of a
         | physical artifact to lose/forget. I travel for work often
         | enough that being able to get to it on my phone consistently is
         | also an advantage.
        
       | faangguyindia wrote:
       | As someone who exercised for the long time but never made much
       | progress (even under IFBB pro coaches in bayarea)
       | 
       | When i started taking growth hormone (10IUs a day), I got bulked
       | and cut in a few months
       | 
       | I suggest not to follow influencers, most of them are not really
       | natural and even if they are, they are probably genetic luck draw
       | (which most like you'll not be)
       | 
       | My uncle is one such genetic freak, he barely works out still
       | he's more buff than you average gym guy without even setting foot
       | anywhere in the gym.
        
       | djokester wrote:
       | https://www.strong.app/
       | 
       | For folks looking for something more robust to track their
       | workouts.
        
         | shakabrah wrote:
         | I was a strong user for years but I would now suggest
         | https://www.hevyapp.com/. It has everything strong does but
         | also a web app where you can create your programs on.
         | 
         | Most importantly for this crowd, you get a rest api to your
         | data if you spring for the cheap premium plan. Csv export is
         | free though I'm pretty sure
        
           | oulipo wrote:
           | Quite like hevy app too
        
       | reynaldi wrote:
       | Thanks for making it, I love the idea of more and more apps being
       | built using web technologies. I currently use Caliber app (IOS),
       | and it's robust enough for me, while not too overwhelming and
       | limiting as Strong and Hevy.
       | 
       | Since Minimal is a static website maybe it can be a PWA?
        
       | moon82 wrote:
       | Thanks for sharing, interesting...
        
       | foxhunt wrote:
       | I loved how you minimized functionality in your project! It's
       | inspiring.
       | 
       | Over the holidays, I built a simple habit tracker that lets you
       | track any event's start and end time.
       | 
       | In the process, I upgraded my personal homepage to Next.js 15,
       | added Payload CMS and NextUI, and experimented with React Server
       | Components and Actions.
       | 
       | Check it out: https://mojica.de/tracker
       | 
       | You can create new event types by entering activities in the top
       | text field. Events are automatically started for new types.
       | 
       | There are a few minor bugs to fix in the new year:
       | - Event cards don't display correctly on iOS.            - Using
       | no email during registration doesn't work (someone registered
       | without an email, and the field is unique).
        
       | bityard wrote:
       | I like simple, but this looks almost _too_ simple. You say you
       | got burned out on metrics, but where you see clutter and
       | distraction, I see data for identifying patterns. I track my
       | measurements and like to see how much weight I'm lifting and how
       | far I'm running over time. IME, it's easy to get stuck on a
       | plateau and not really notice it when life gets busy and "get the
       | workout over with" starts to become the only goal.
       | 
       | Right now, I'm following established programs and tracking what I
       | do in a Google spreadsheet. I certainly don't love relying on
       | Google but I need to be able to edit and view my workouts from
       | both my computer at home (for planning) and on my phone at the
       | gym (for entering data).
        
       | cj wrote:
       | Nice work. Any recommendations for folks looking for an app that
       | suggests workouts and routines based on prior workout history?
       | (E.g. identifying muscle groups not being hit by historical
       | routines)
       | 
       | I've just been keeping a running workout log in Apple Notes for
       | the past couple of months.
       | 
       | I've had a lot of success just copy/pasting my workout log into
       | ChatGPT and it's surprisingly good at making recommendations, but
       | I'm scared that by using an app I'll loose access to the raw data
       | unless it's somehow exportable.
        
         | tannedNerd wrote:
         | Fitbod was pretty good about this. You can tell it what gym
         | equipment you have and it will design workouts around that and
         | the muscle groups that aren't tired from the last session.
        
         | KMnO4 wrote:
         | Here's what I did:
         | 
         | - I wrote down my goals, equipment, and past workout history.
         | 
         | - Then I asked ChatGPT to generate a P/P/L workouts around
         | that, in 8 separate chat instances
         | 
         | - I then wrote another prompt for a fitness expert adjudicator
         | and asked it to compare two of the workouts, determine their
         | strengths and weaknesses (based on above goals), and develop a
         | third workout based on the strengths of the two provided
         | 
         | - I ran this in "tournament style" for all 8 workouts with
         | three brackets. This ended up converging into an optimal
         | workout
         | 
         | I actually took this final workout to my personal trainer and
         | he said it was perfect for my goals and wouldn't change
         | anything. I've been running it for 3 months now and I am quite
         | happy.
        
           | dleary wrote:
           | If it's not too privacy-invading, would you mind sharing the
           | chatgpt transcripts for these prompts?
        
           | cj wrote:
           | This is something I would happily pay for. And a great use of
           | LLM.
           | 
           | If someone were to turn this into a business, offer the
           | workout advice for free and then charge extra by layering in
           | nutrition and meal plans on top. Then sell to personal
           | trainers for use with their clients.
        
       ___________________________________________________________________
       (page generated 2024-12-28 23:01 UTC)