←back to thread

28 points friggeri | 1 comments | | HN request time: 0.249s | source

Today 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

Show context
agcat ◴[] No.44523558[source]
Love it! How did you stay motivated?
replies(2): >>44524093 #>>44524227 #
1. friggeri ◴[] No.44524093[source]
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.