Skip to main content

6 posts tagged with "strava"

View All Tags

Maintenance, Stability & Permissions Fix (v1.1.1 release)

· 2 min read

Fixed

  • Chrome Web Store compliance: Removed unused storage and tabs permissions flagged by the store (Purple Potassium violation). All link opening, sync, and storage features continue to work — IndexedDB and chrome.tabs.create don't require these permissions.
  • Map Explorer side panel: Fixed blank space appearing to the right of the detail panel when it was maximized before closing and then reopened. The expanded state is now correctly cleared on close.
  • Activity import: Fixed an issue closing the activity import modal.
  • Activities page: Fixed source filters not behaving correctly.

Changed

  • Side panel layout: In the activity detail panel, the header (title, date, status, source, and actions menu) now sits above the map, the date displays inline next to the title, and the actions menu is grouped with the status row.
  • Architecture refactor: Extracted large inline Angular templates/styles into separate ts/html/scss files and split oversized components into presentational child components.
  • Sync engine: Rebuilt sync architecture with accurate per-run counters and cleaner orchestration.
  • Storage: Normalized the database dependency injection path across all repositories.
  • Chrome messaging: Moved extension runtime message parsing and batch persistence out of the App component.
  • Logging: Replaced noisy debug logs with a small, environment-gated logger.
  • Backup & Restore: Added validation of record shapes before writing.

Under the Hood

  • Added unit, integration, property-based stress, and end-to-end tests.
  • Centralized shared distance/duration/speed/elevation/date formatting into tested utilities.
  • Improved folder architecture and strengthened backup/restore validation.
  • Fixed Angular build and strict template diagnostics.

Import Local Activity Files in TrailRoam for Strava (v1.1.0 release)

· 2 min read

New Features

Import Local Activity Files (GPX, FIT, TCX)

Import activities directly from GPX, FIT, and TCX files — no need to upload to Strava first. Imported activities behave identically to Strava-synced ones: they appear in Activities, Map Explorer, Heatmap, filters, search, statistics, and are exportable.

Drag and drop files onto the Activities page or click the Import Activity button. A two-column modal shows a live map preview, parsed stats, and automatically suggests name and sport type based on file contents. All processing is local in your browser.

Activity Source & Status Visualization

New Source and Status columns on the Activities page distinguish Strava-synced activities from imported ones, and completed from planned. A dedicated source filter row with live count chips lets you instantly filter by All, Strava, Imported (Done), or Imported (Planned).

Source & Status in Map Explorer

The Map Explorer sidebar now includes source filter chips, compact Completed/Planned badges on activity rows, and both status and source labels in the detail panel. Planned activities gracefully show for unavailable statistics.

Edit Activity Dialog

The rename dialog is now an Edit Activity dialog — update name, sport type, and completed/planned status in one place. Available from the Activities page 3-dot menu, the Map Explorer activity card pencil icon, and the detail panel 3-dot menu.

Improvements

  • Redesigned activity card in Map Explorer with clean white layout, elevation profile chart, and action buttons
  • Map scale moved to bottom-right; smooth panel transition animations
  • Settings page shows IndexedDB schema version for migration awareness
  • Source filter chips collapsible with smooth expand/collapse animation

Performance improvements in TrailRoam for Strava (v1.0.3 release)

· One min read

What's New

  • New date range picker — a redesigned date filter with quick presets (Today, Yesterday, Last 7 days, Last 30 days, This month, This year, All time), a side-by-side dual calendar, and month/year drill-down for faster navigation
  • Satellite & aerial basemap layers — two new map layers in the switcher: Satellite (Esri) and Aerial (VersaTiles)
  • Faster map loading — route data is now loaded in two tiers. The map shows routes faster, full geometry loads only when needed (detail panel, GPX export)
  • Smother map interactions — clicking routes and switching filters feels more responsive
  • Post-install welcome page — onboarding guide opens automatically after installation
  • Release popup — shows what's new after an update, with a clear & re-sync option for better performance

For Existing Users

To get the full performance benefit, go to Settings → Clear and re-sync after updating. This re-imports your data with the new storage format.

Fix release for TrailRoam for Strava (v1.0.2 release)

· One min read

Issue: syncing all activities every time

All activities should be synced only once, and subsequent syncs should only fetch new activities. The app tracks the last synced activity ID and uses it to fetch only new activities from Strava.

technical note: Strava's SPA injects the content script twice due to Webpack module federation, causing a duplicate sync that re-fetches all activities. Added a sessionStorage guard to stop the second injection. Pagination stops early when hitting a known synced activity ID, and only genuinely new activities are sent to the app.

Updates to TrailRoam for Strava (v1.0.1 release)

· 2 min read

Activity Panel & Route Emphasis

New features:

  • Collapsible Activity Panel (Map Explorer)

    A new left-side panel on the Map Explorer that slides in from the right edge. Includes search, a "Visible on map" toggle that filters to only activities in the current viewport, sort by newest/longest/A-Z, and a scrollable activity list. Hover highlights the route on the map; click selects it, zooms to fit, and opens the detail popup in the bottom-right corner. Panel state stays open/closed during the session. Time based and activities filtering is connected to main map filters.

  • Dynamic Route Emphasis

    Searching or filtering now changes how routes appear: matching routes stay at full opacity, non-matching routes fade to ~15-20%. Clicking a route makes it thicker (7px) and renders it above all others. The side panel tracks selection — selected rows show a green accent bar, bold title, and auto-scroll into view.

  • GPX Download from Side Panel

    A persistent green "Download GPX" button at the bottom of the Activity Panel exports all filtered activities as a single zip file. Disabled when no activities are visible.

Improvements:

  • Automatic Filter Change Banner

    A green info banner appears the first few times the map auto-selects a filter for you. Dismiss it — it stops showing after the 4th time, permanently.

  • Filter Dropdowns Close on Selection

    Activity type and date range dropdowns now close immediately when you pick an option — no extra click needed.

Fixes:

  • Truncated Long Names

    Activity names that are too long now show an ellipsis in the detail panel. Hover for the full name.

  • Loading State Fix

    The loading spinner now shows correctly when redirecting from an empty state during the very first sync.

  • OpenFreeMap Fallback

    If the default map style URL is unavailable, the app falls back gracefully instead of showing a blank map.

Introducing TrailRoam for Strava v1.0.0

· 2 min read

Browse all your Strava activities on a single interactive map..

Features

  • Sync with Strava — Import activities and GPS routes directly from your logged-in Strava session
  • Map Explorer — View all your Strava GPS routes on one single map. Switch between OpenFreeMap and OpenTopoMap base layers
  • Heatmap — Toggle a route-density heatmap to visualize your most frequent roads and trails
  • Map Controls — Zoom, scale bar, fit-to-screen, and route clustering at low zoom levels
  • Opacity Slider — Adjust route line opacity on the map
  • Activities List — Browse imported activities with search, sport type filter, date range filter, and name search. Sort by date, name, type, distance, speed, time, or route status
  • Activity Detail Panel — Click any activity to open a side panel with an interactive mini-map, speed-colored route, elevation profile, metrics, and GPX download
  • Bulk Actions — Multi-select activities for bulk GPX export (as zip) or deletion
  • GPX Export — Export GPX files, export individual or bulk routes
  • Backup & Restore — Export and import all your local data as JSON
  • Settings Dashboard — Settings page with grouped action cards, sync history, and privacy information
  • App Menu — Quick access to release notes, bug reporting, documentation, and the About dialog

Technical

  • Chrome Extension Manifest V3
  • Angular standalone components
  • MapLibre GL JS with OpenFreeMap (no API key required)
  • IndexedDB / Dexie.js for local storage
  • All data stored locally — no backend, no cloud sync