Route tool
Drop a GPX. Build the file.
Publishing a route is three files that point at each other. This tool writes the middle one - a route at a time, onto the file you already publish - and tells you the single line to add to the last.
The file you are building
Start from the routes.json you already publish and this
adds to it, keeping every route already in it. Or start an empty one
and build it up a route at a time.
Drop your routes.json
or click to choose it
Nothing in it yet. Drop a GPX below, describe it, and add it here.
- You supply it your-route.gpx The road itself.
- This tool writes it routes.json The listing: distance, climbing, the shape of the card.
- One line added manifest.json Your repository, plus one line pointing at the listing.
Host all three over HTTPS, anywhere. If your repository is already in the registry, that is the whole job - no pull request, and riders see the route next time they open your repo. Your GPX is never uploaded: it is read in this tab. Two optional lookups do send coordinates out, elevation and the place name, and each happens only when you ask for it.
1 Your GPX file
Drop a .gpx file here
or click to choose one
This route has no elevation data. The app would simulate it as flat, which is almost certainly not what you want: the trainer would apply no resistance changes at all.
This sends the route coordinates to Open-Meteo. It is off until you tick it. If you would rather not, add elevation with your own tools and come back.
2 Check it against what you rode
These are the numbers the app will show. If the distance or climbing disagrees with your head unit by more than a little, the file is probably not the one you meant.
Estimated time is per rider. These values are only for the preview - each person sees the estimate for their own FTP and weight.
Gradient histogram (what the time estimate is built from)
3 Describe it
Attribution
Route geometry usually comes from a licensed database, and the licence asks for credit. The app shows this on the route card for as long as the route is installed, so fill it in even when the licence is permissive.
4 Paste it into your repository
The route entry
Add to the file puts this route in the
routes.json above and clears the form for the next one;
a route whose id is already in there replaces it rather than
appearing twice. Copy and Download hand you this one entry on its own
if you would rather paste it yourself.
Your manifest
Paste your existing manifest.json below and this adds
the routeBundles pointer for you, leaving your workouts
and everything else untouched. Leave it empty to get a fresh manifest
instead. Note the schemaVersion stays at 2 on purpose:
bumping it would make every already-installed app reject your whole
repository.
Then
- Upload the GPX to the URL you gave above.
- Upload the route bundle and the manifest.
-
If your repository is already in the registry, you are done - no
pull request, and riders see the route the next time they open your
repo. Add
"content": ["workouts", "routes"]to your registry entry so the Routes button appears on your card. -
If it is not listed yet, open a pull request adding it to
website/registry.json. See the contributor docs.