
Why I built it
I'm training for Queenstown, and next year I'll be in the ballot for Sydney and the drawing for New York. When I went looking for the New York course, I wanted three things: a clear map, the elevation and a GPX file. I couldn't find them together.
Race sites show the map, running apps show someone's watch data, and the elevation figures never agree. So I built one place that has all of it, for every big marathon, and measured every course the same way so the numbers mean the same thing from one race to the next.
The measurement
Every course line is resampled every 25 m, and each height comes from the best bare-earth terrain model for that country: lidar in the Netherlands, New Zealand and the US, and Sonny's model across Europe. Bridges and tunnels, which terrain models read wrongly, are found from OpenStreetMap and straightened. Each figure carries its source and the date it was checked.
What's on it
- The course. A map, the elevation profile and a 3D fly-through. Drag along the profile and the marker follows you around the map.
- Getting in. Ballots, qualifying times, fees and dates.
- Race day. Start times, cut-offs and the morning's schedule.
- Weather. Thirty years of race mornings, from ERA5 reanalysis.
- Explore and compare. Every course on a globe, and any two side by side on the same scale.
- Take it with you. A GPX file, a printable course sheet and an embed for your own site.


Try it
Every course comes with an embed that a running club, race or blog can put on its own page. This is the real thing: Queenstown, the one I'm training for.
How it's built
A Python pipeline does the measuring: it fetches each course line, samples it against the country's terrain model, corrects bridges and tunnels, and pulls thirty years of race-day weather. Astro turns that into a static site with MapLibre maps, hosted on Cloudflare. A small Worker rebuilds it weekly, so a race that's been run drops its countdown without anyone touching it.
- Pipeline
- Python
- Site
- Astro, static
- Maps
- MapLibre · OpenFreeMap
- Terrain
- National lidar · European DTM
- Weather
- ERA5 reanalysis
- Hosting
- Cloudflare Pages · Workers