← All posts

GPX support, social previews, and a real landing page

featureSEO

One of those days where a bunch of threads came together at once. Three separate features shipped, and the app is starting to feel like a real product.

GPX import and export

If you've ever used a cycling computer or a GPS watch, you've dealt with GPX files. They're the lingua franca of outdoor activity data — XML files with waypoints, tracks, and metadata.

You can now upload a GPX file from your Garmin, Wahoo, or Strava export and we'll parse the track, calculate stats (distance, elevation gain, duration), and create the record. Export works the other direction — download any route or activity as a GPX file to load onto your device. It's not the fanciest parser in the world, but it handles the common cases and means you can actually get real data into the platform without typing it all by hand.

Social previews

When someone shares a link to an event or route, it should look good in group chats and social feeds. We added Open Graph tag injection so shared links show up as rich cards with the event title, sport, and date. It's the kind of thing that's invisible when it works, but makes a huge difference for organic sharing. A rich card is way more clickable than a bare URL.

A proper front door

Up until now, the root URL just dropped you on the map. Fine for returning users, terrible for anyone discovering the site. We built a real landing page with a hero, feature highlights, a quick "how it works" flow, and the AT Protocol messaging — own your data, no walled gardens, all that. The map moved to its own route.

Performance

We also did a round of performance cleanup and removed a custom gzip middleware in favor of letting Cloudflare handle compression at the edge. Fewer moving parts, better caching, less code to maintain. Sometimes the best code is the code you delete.