Animated route videos & posters
for any GPX activity
Upload a GPX file or import from Strava, customize the look, and export a 9:16 video for Stories & Reels or a high-resolution poster image. Everything runs locally — your activity data never leaves your device.
Upload a GPX file
Works with files from Garmin Connect, Komoot, AllTrails, Wikiloc, Wahoo, Suunto, and more.
Features
Animated route videos
9:16 MP4 or GIF, ready for Stories and Reels. Live stats, elevation profile, follow-the-dot camera, optional 3D terrain.
High-res route posters
Square, 4:5, 9:16 or 16:9 PNGs. Multiple borders, light and dark backgrounds, customisable stats grid.
Strava integration
Connect read-only and pick from your recent activities. Or just drop a GPX file from Garmin, Komoot, AllTrails, Wahoo, Suunto.
Privacy-first
No uploads, no accounts, no analytics. The whole app — including video encoding — runs in your browser.
Frequently asked questions
›Is GPX Art really free?
Yes. There is no signup, no payment, no premium tier. The app runs entirely in your browser, which means hosting it costs almost nothing.
›Is this an alternative to Strava's paid share video?
It produces the same kind of asset — an animated route video on a map with stats — without the Strava subscription. Strava integration is optional; you can also just upload a GPX file.
›What file formats can I export?
Animated videos: MP4 (1080×1920) and GIF (540×960). Static posters: PNG at 1080 px wide in your chosen aspect ratio.
›Where do my files go?
Nowhere. Your GPX file is parsed in your browser, the map is rendered locally with WebGL, and video encoding uses ffmpeg.wasm — all client-side. No server ever sees your activity.
›Which apps export GPX files I can use?
Garmin Connect, Strava, Komoot, AllTrails, Wikiloc, Wahoo, Suunto, Polar Flow, Apple Health (via export), and most other tracking apps.
›Why is the Strava button orange?
Strava's API terms require apps using their data to display the official Connect with Strava button. The rest of GPX Art is independent of Strava.