Open Routes - Free GPX Routes for your next adventure

Surface Segments, Admin Tools, and a Leaner Import Story

This week was about polish and sustainability. We shipped a new surface-type visualization, tightened up the activity detail UI, and experimented with bulk import before deciding to keep OpenRoutes focused on single-activity uploads.

Road Surface Visualization

Activities now show a surface bar under the elevation chart. It pulls surface tags from OpenStreetMap, groups them into human-friendly categories, and syncs hover state between the map, chart, and surface bar.

To keep the app fast and reliable, surface data is now computed offline and cached. There’s a new status field on activities so the UI can gracefully show “pending” or “unavailable” without blocking page loads.

Admin + Quality-of-Life Updates

Bulk Import Experiment (Rolled Back)

We built a bulk import flow with a Strava guide, zip upload preview, and a Huey-based worker for background processing. It worked, but it added more operational weight than we want right now.

That entire flow has been removed to keep OpenRoutes lean. The project stays focused on a clean, fast single-upload workflow.

Under the Hood