Show HN: Ten years of running every day, visualized
nodaysoff.runToday marks ten years, 3653 consecutive days, of running at least one mile every day under the USRSA rules [1]. To celebrate, I built an interactive dashboard that turns a decade of GPX files into charts you can explore.
Running has truly changed my life: I've made lifelong friends, explored beautiful places, and more importantly invested into my own health and fitness, which I'm starting to see the positive benefits as I get older.
The stack is pretty simple: a NextJS app, with a Postgres database to keep all my running data, and all the stats are pre-computed and cached in Redis, so I effectively only hit the database once a day when a new run is ingested. On the fronted, I toyed with the idea of using D3 or pre-existing data viz libraries, but ended up rolling my own using SVGs directly, it gave me more control on the visualizations.
I used the Strava bulk export to pre-populate the database, and I'm using their webhook API to do incremental updates. I have to tap into OpenWeatherMap and OpenCageDate to enrich the running data a little bit.
Happy to answer anything about the stack, data pipeline, or how I stayed motivated for 10 years!
[1] https://www.runeveryday.com Run Streak Association rules: ≥ 1 mile per day
This is so cool! At what point did you start thinking about this project? Like, were you quietly working on it a year ago after every run, just waiting for this moment?
And hey, great run in Japan! (Tokyo here!) I love the map visualization too.
I thought about it last week, was pretty quick to hack together!
I loved loved running in Japan, such a wonderful country
just wanted to say the site looks awesome! I love the minimal black+white/grayscale and the fonts are just lovely. vis looks great too, I enjoyed poking around nearly all of the unique runs to look at the map and paces.
Do you have the source/pipeline available? I love the design and would want to do something similar for my own runs.
Congrats on the decade! Did you ever focus on specific metrics or was it always just about the run?
Unfortunately I ended up winging the data processing, so it was mostly a pile of adhoc scripts. The incremental update pulling from the Strava API is a little cleaner, but would require significant work to open source.
The only thing I ever really cared about was keeping the streak going, everything else has come second. I dropped out of a trail running trip after a fall because I felt that even though I could continue, putting too much mileage on my knee would jeopardize the streak.
Love it! How did you stay motivated?
At first it was all about the challenge of doing one more day.
After about two years the streak became part of my identity, which might sound a little unhealthy. It’s easier to just head out and jog a mile or two than to let the number go back to zero.
This being said, it’s made for interesting conversations with medical professionals – I needed a cardiac ablation a couple of years ago and my electrocardiologist came to an “agreement” (as in she didn’t forcefully dissuade me from doing it) that I could jog a slow slow slow mile late in the evening the day after the procedure, as long as I kept my heart rate down and I made sure I was being mindful of my puncture sites.
just want to second this. and realy, antarctica?? how?? i mean, apart from the logistics etc , ... is it runnable? i can hardly picture it in such harshness!
[dead]