Skip to content
Ashikaga1974Public

About

Local-first Strava analytics for cyclists — training load, fitness, power estimation, PRs, weather, routes & bike maintenance. No Strava API required.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

WattLoom Cycling

🇩🇪 Deutsche README

Local-first Strava analytics for cyclists.

Analyze your complete Strava history locally – without Strava API access, without cloud upload. Just download the ZIP export, import it, done.

Demo

⭐ Features 📊 Training analytics · 🚴 Bike management · 🌦 Weather & performance · 🏆 PRs & best efforts · 🗺 Routes & heatmap · 🔒 100% local

Stack Stack Platform License Buy Me a Coffee


Why WattLoom Cycling?

No API. Import your Strava ZIP export.

No cloud. Your activities stay on your own machine.

No subscription. Fully open source (AGPL-3.0) – no license key, ever.

One dashboard. Training, performance, weather, and bike maintenance in one place.

Comparison with existing solutions

WattLoom Cycling Strava GoldenCheetah Intervals.icu
Local data ✅ ❌ ✅ ❌
Strava API required ❌ — optional optional
Cloud account required ❌ ✅ ❌ ✅
Web UI ✅ ✅ ❌ (desktop app) ✅
Open source ✅ ❌ ✅ ❌

Feature sets of the other tools change over time – check their current documentation. What WattLoom brings out of the box: bike maintenance (wear, parts stock, cost per km) and weather analysis for every ride, both free.


Screenshots

Dashboard
Dashboard
Activity list
Activity list
Activity detail with speed-colored map
Activity detail with speed-colored map
Form & fitness (PMC)
Form & fitness (PMC)
Custom segment with all efforts
Custom segment with all efforts
Weather & performance
Weather & performance
Bikes & component wear
Bikes & component wear

Features

Area What it does
Dashboard Latest ride, training form (TSB/CTL/ATL), training goals, wear warnings, new personal records, KPIs, distance and volume charts
Activities Rides and workouts with filters; detail view with map, elevation/speed/HR profiles, weather, photos, estimated power
Training load Form curve (CTL/ATL/TSB, hrTSS), HR zones, 80/20 training distribution, fitness fingerprint score
Performance Best efforts per distance (5–70 km), pace trend, aerobic efficiency, HR curve, cadence
Routes Heatmap of all tracks, find similar rides by real track overlap, custom segments with all your efforts compared
Weather Speed vs. temperature and wind, weather timeline over all years (free via Open-Meteo)
Bikes Wear tracking per component, maintenance queue, parts inventory, maintenance cost per 100 km, bike comparison
Overviews "What changed?" comparison of the last 30/90/365 days, year progress and forecast, year comparison, calendar, weekday vs. weekend, calories, "Wrapped" year in review
Import Strava ZIP export plus single FIT/TCX/GPX files (e.g. straight from your watch)
Other Optional beta-blocker HR correction, UI in German/English, 5 themes

How each value is calculated – and which values are estimates – is documented in CALCULATIONS.md.


Getting started

Docker (recommended)

Requires Docker Desktop (Windows/macOS) or Docker Engine with the Compose plugin (Linux).

docker compose up --build

Open http://localhost:8000. Your data lives in the local wattloom-data/ folder and survives container restarts. Put your Strava export ZIP in wattloom-data/download/.

By default the port is bound to 127.0.0.1 only, so WattLoom is reachable from this computer alone. To use it from other devices in your LAN, start it with WATTLOOM_BIND=0.0.0.0 docker compose up --build.

Windows (desktop build)

Download WattLoom-windows.zip from the Releases, extract it anywhere and start WattLoom.exe – the browser opens automatically on http://localhost:8000.

  • Your data lives in %APPDATA%\WattLoom\data, not in the program folder – it survives updates.
  • Put your Strava export ZIP in the download\ folder next to WattLoom.exe.
  • Automatic import: FIT/TCX/GPX files placed in the sync\ folder next to WattLoom.exe (e.g. by your watch's companion app) are imported while WattLoom is running.

Updating from v1.1.1 or older: these versions stored data\ next to the .exe. Before starting the new version for the first time, either extract it over the old folder or copy the old data\ folder next to the new WattLoom.exe. On first start it is moved to %APPDATA%\WattLoom\data once (the old folder is kept as data.migrated-<date>).

From source (Linux/macOS)

Python ≥ 3.11 and Node.js ≥ 20 – see DEVELOPMENT.md.

Import your data

  1. Strava → Settings → My Account → Download your data → download the ZIP.
  2. Put the ZIP in the download/ folder (see above for Docker/Windows).
  3. On first start, the setup wizard guides you through the import. Later imports and single FIT/TCX/GPX files are available on the Import page.

Testing without Strava data: Want to try out WattLoom without an export? Switch to a realistic sample dataset under Settings → Demo mode. Your own data stays untouched and is back as soon as you switch it off.


Security note

WattLoom Cycling is a single-user application for local use: no authentication, no user management. That's a deliberate design choice, as long as you follow this rule:

  • Never expose it to the open internet – don't forward port 8000 (or 5173) publicly.
  • For remote access, use a VPN (e.g. WireGuard, Tailscale) into your own LAN.
  • Inside your own trusted LAN, it's fine to make it reachable for your own devices.

Documentation

Document For
Calculations How power, training load, scores and records are computed
Development Running from source, tests, builds, releases
Architecture Project structure, database schema, tech stack
API reference Built in: http://localhost:8000/docs while the backend runs
Contributing Bug reports, feature requests, pull requests
Changelog Release history

Support

WattLoom Cycling is free and open source, developed and maintained in my spare time. If it's useful to you, a contribution is welcome — but never required. No feature will ever be paywalled.

Buy Me a Coffee


License

AGPL-3.0 – genuinely open source. Redistribution and modification are permitted; if you make a modified version available to others (including as a hosted service), you must also make the source of your changes available under AGPL-3.0. See LICENSE. Copyright (c) 2026 Ashikaga1974.

About

Local-first Strava analytics for cyclists — training load, fitness, power estimation, PRs, weather, routes & bike maintenance. No Strava API required.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages