Skip to main content

8 posts tagged with "strava"

View All Tags

Strava Heatmap, Per-Stage Trail Coloring & Elevation Gradient (v1.3.0 release)

· One min read

This update adds Strava heatmap integration, per-stage trail coloring, an elevation-profile gradient view, richer activity metadata, resync, and several logbook UX improvements.

New Features

  • Strava heatmap — New heatmap layer on the map, with auth handling and a DNR rule scoped to image loads so it doesn't break the heatmap page.
  • Per-stage trail coloring — Trails on the Map Explorer are colored per stage.
  • Elevation-profile gradient coloring — The elevation profile now reflects gradient.
  • Extended activity metadata — More activity detail pulled from Strava.
  • Resync Strava activity — Resync action for activities.

Improvements

  • Sticky logbook actions bar; filter row no longer covered by the selected-actions toolbar.
  • Added and updated tooltips in the logbook.
  • Updated trail activity secondary menu.
  • GPX export/import — export and import activities as GPX (richer in data).

Fixes

  • GPX import activities as planned.

Trails Expansion, Logbook Tabs & Map Explorer Upgrades (v1.2.0 release)

· 2 min read

🥾 Trails

This update brings a major trails feature expansion.

  • Trails in Logbook — Trails now appear directly in the activity table.
  • Trails in Map Explorer — Browse, sort, and interact with trails from the map sidebar.
  • Redesigned Trail Details Panel — Enhanced elevation profile, base map layer controls.
  • Trail creation flow — Redesigned creation modal with removal options.
  • GPX Export — Export any trail as a GPX file.
  • Trail → Activity navigation — Open a trail's activities in the Logbook.
  • Speed column — Speed information added for trails in the Logbook.

🗂️ Logbook — Tabbed Views

The former Activities page is now called Logbook, bringing a tabbed view system that organizes your data into dedicated panels.

  • Activities tab — Browse and filter your synced Strava activities.
  • Trails tab — View and manage trails extracted from your activities.
  • Clear all active filters with a single button.
  • Redesigned table layout and UI styling across all Logbook views.

🗺️ Map Explorer

New capabilities for the map:

  • Search — Search for locations directly within the map panel.
  • Save Places — Save any location on the map from the context menu or the Map Explorer panel.
  • Trails view — Browse and interact with trails from the map sidebar, including sorting options.
  • Left panel closing behaviour and empty-state counts improved.

💾 General Polish & Fixes

  • Activity detail panel UI refinements and fixes.
  • SCSS cleanup — extracted common definitions, variables, and mixins.
  • Fixed "fly to" behaviour for saved places across different contexts.
  • Speeded up map fly-to animation for trails and activities.
  • Guarded cluster layer rendering against missing point_count data.
  • Resolved build warnings and failing tests.
  • Multiple UI polishing passes across the entire app.

🔧 Technical

  • Removed unused storage and tabs extension permissions.
  • Refactored shared SCSS definitions for maintainability.

Fixed

  • Sort activities by distance, speed, and time.

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