←back to thread

28 points friggeri | 1 comments | | HN request time: 0s | 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
yamatokaneko ◴[] No.44527744[source]
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.

replies(1): >>44528647 #
1. friggeri ◴[] No.44528647[source]
I thought about it last week, was pretty quick to hack together!

I loved loved running in Japan, such a wonderful country