StrideAtlas: A Running Dashboard for Myself
Why I built StrideAtlas, a personal running dashboard, and what it shows that Strava doesn't.

I built a small thing for myself this winter. It is called StrideAtlas and it is a single-page dashboard that turns my running data into something I can actually read.
Why
Strava is great as a feed but not great as a coach. It is excellent at telling you what your friends did this morning. It is less excellent at telling you whether you are getting fitter, where your honest personal records are, how your aerobic base is trending, or how today's tempo on a familiar loop compares to the same loop three weeks ago. Most of those answers are in the data, just not in a place you can look at without scrolling for ten minutes.
I wanted a single page that answered the question I actually have when I lace up: "am I getting fitter, and how?".
What it does
StrideAtlas shows nine panels that together describe a season of training:
- A monthly calendar of activities
- Pace trends per workout type, with easy days separated from intervals and races
- Aerobic efficiency, computed from heart-rate zone distribution
- Personal records per route and per workout type
- A scatter of distance against pace
- Same-route duels, where I can see how repeated runs on the same loop stack up
- A week comparator, this week against the previous weeks
- A season arc, the long view of how training progresses over months
- A clean activity feed, but used as a glanceable run card rather than a stream
There is no social layer, no comments, no cheers. Just the signal.

How it works
The app is a Next.js site that lives entirely in the browser. There are two ways to feed it data. The first is to connect a Strava account through OAuth, which fetches activities directly from the Strava API and keeps them local to the session. The second is to drop your own
.fit, .gpx, or .tcx files into a folder and run a one-line ingest script, which is what I do for races and trips where I want the richest possible data. There is no backend database for activity data; everything is computed on the device.
Routes are auto-clustered by start point and distance, so that runs on the same loop end up grouped without any manual labelling. Heart-rate zones are computed from a configurable HRmax, and runs without HR are shown as is rather than zeroed out, so the aerobic charts stay honest.
Try it
If you run with a Strava account, you can connect it directly at stride.letizia.tech. If you would rather poke around without signing in, the demo page ships with a sample dataset and shows the full dashboard.
A bit more on the running side of my life lives at /hobbies/running.
Read next

My PhD in Deep Learning for Communications: 5 Years in Review
A look back at my PhD journey, from Udine to Klagenfurt to Princeton and NeurIPS, and the moments that shaped it.

Hello World: Why This Site Exists
A small archive of who I am, what I've worked on, and what I'm thinking about. The first post explains the plan.