Example

Run viewer

Your watch recorded the run. You want to see it, not upload it.

01 · Your runThis morning’s run, from your watch: the route on a map, a split for every kilometre, and the totals.

02 · Follow itHover the charts and a dot runs along the route.Point at the route, and the charts follow.

03 · Just a fileIt all comes from the .gpx file the watch wrote: thousands of points, each a place, a time and a heartbeat.

04 · Still yoursThe app’s only network is the map’s tile server.It asks for map squares; your runs are never uploaded.

Runs

Morning run

Tuesday, October 27, 2026 at 7:12 AM · 2026-10-27-morning-run.gpx

Distance
6.42km
Moving time
33:01
Avg pace
5:09/km
Elevation gain
38m
Avg heart rate
148bpm
2.40 km · 12:402.46 km · 12:582.51 km · 13:132.57 km · 13:312.63 km · 13:502.68 km · 14:052.74 km · 14:242.79 km · 14:392.85 km · 14:582.91 km · 15:172.96 km · 15:333.02 km · 15:523.08 km · 16:113.13 km · 16:273.19 km · 16:463.25 km · 17:053.30 km · 17:213.36 km · 17:393.42 km · 17:583.47 km · 18:143.53 km · 18:333.58 km · 18:483.64 km · 19:083.70 km · 19:273.75 km · 19:433.81 km · 20:023.87 km · 20:223.92 km · 20:383.98 km · 20:574.04 km · 21:164.09 km · 21:314.15 km · 21:494.21 km · 22:064.26 km · 22:214.32 km · 22:394.37 km · 22:544.43 km · 23:124.49 km · 23:304.54 km · 23:454.60 km · 24:03© OpenStreetMap contributors
KmPaceElev
15:21+4
25:14+0
35:10−22
45:18+10
55:02+8
64:55+9
0.424:46−4
~/Runs/2026-10-27-morning-run.gpx
<trk><name>Morning run</name><trkseg>  <trkpt lat="52.5142" lon="13.3771">    <ele>34.2</ele><time>2026-10-27T06:12:04Z</time>    <extensions><gpxtpx:hr>121</gpxtpx:hr></extensions>  </trkpt>  <trkpt lat="52.5144" lon="13.3770">    <ele>34.6</ele><time>2026-10-27T06:12:07Z</time>    <extensions><gpxtpx:hr>124</gpxtpx:hr></extensions>  </trkpt>  <trkpt lat="52.5146" lon="13.3769">    <ele>35.0</ele><time>2026-10-27T06:12:10Z</time>    <extensions><gpxtpx:hr>127</gpxtpx:hr></extensions>  </trkpt>  …
runs.papp network
  • tile.openstreetmap.org:443map tiles
  • everything elseblocked

Try it.

Put the app in a folder with your files, and double-click it.

Your files. Your runs as .gpx files, the export from Garmin Connect, Strava, Apple Health and most watches. Heart rate and elevation show when the file has them.

It asks for one thing. <meta name="papp-net" content="tile.openstreetmap.org:443">

See the code for yourself

Or ask your AI for your own version. That’s the point.

More examples