Case study / Personal data

FIT Webview

A browser-based explorer that turns Garmin activity files into usable maps and analytics without discarding the underlying record.

CompleteGarmin FITLeafletPlotly
FIT Webview detailed biometric human anatomy, heart rate zones, elevation profile, and GPS track illustration

The problem

Activity summaries hide the interesting data.

Fitness platforms show a curated subset of what a device recorded. That is convenient until the question depends on an omitted message, a developer field, recorded heart-rate-zone configuration, or an activity type the platform interprets poorly—especially sailing.

Product approach

Useful overview, complete escape hatch.

The default experience starts with recent activities and maps. A selected activity puts route context first, then exposes synchronized charts, recorded zones, key metrics, and finally a searchable explorer containing every decoded message and field.

Data decisions

Unavailable stays unavailable.

  • The parser retains every message produced by the current Garmin FIT SDK.
  • Developer fields and unnamed private numeric IDs survive the conversion.
  • Recorded heart-rate-zone durations and boundaries are shown exactly when the device provides them.
  • Missing GPS or zone records receive explicit empty states rather than estimates.
  • Cache schema versioning invalidates incomplete historical decodes after parser upgrades.

Experience

Explore from fleet scale to one raw field.

An all-activity density map shows long-term movement. Search and accessible filters narrow by sport, date, or year. Individual routes use speed gradients, start/finish markers, and optional context layers, while the data explorer makes proprietary detail inspectable instead of invisible.

Current state

A complete local analysis surface.

The decoder migration, activity cache, density map, activity view, exact zone display, raw explorer, responsive UI, and test coverage are complete. It runs as a static web application over a generated JSON cache.