WattLoom Cycling

Local-first Strava analytics for cyclists

Analyze your complete Strava history on your own machine – no API access, no cloud upload, no subscription. Download the ZIP export, import it, done.

Backend: FastAPI + SQLite Frontend: React 19 Platform License: AGPL-3.0
WattLoom Cycling demo showing dashboard, activities, maps and analytics

Why WattLoom Cycling?

Built for one person, running entirely on their own machine.

No API

Import your Strava ZIP export directly – no developer account, no rate limits, no paid API tier.

No cloud

Your activities stay on your own machine. Nothing is ever uploaded anywhere.

No subscription

Fully open source under AGPL-3.0 – no license key, ever.

One dashboard

Training, performance, weather, and bike maintenance in a single place.

What it does

A focused feature set for serious cyclists, not a generic fitness suite.

📊 Training analytics

Form curve (CTL/ATL/TSB), HR curve, aerobic efficiency, cadence, fitness fingerprint score.

🚴 Bike management

Wear tracking per component, purchase/stock inventory, maintenance cost per bike.

🌦 Weather & performance

Temperature, wind and rain correlation via Open-Meteo – free, no paid tier required.

🏆 PRs & best efforts

Best-effort segments per distance (5–70 km), automatic PR detection after every import.

🗺 Routes & heatmap

Interactive track heatmap, route comparison by real point-by-point track matching.

🔒 100% local

SQLite database on disk, single process, no accounts, no telemetry.

See it in action

WattLoom Cycling dashboard screenshot
Dashboard – hero banner, training form, KPIs and recent activities
WattLoom Cycling dashboard screenshot, dark theme
Dashboard variant – distance chart, training volume, bike progress

How it compares

WattLoom Cycling Strava GoldenCheetah Intervals.icu
Local data✅❌✅❌
Strava API required❌—optionaloptional
Cloud account required❌✅❌✅
Web UI✅✅❌ (desktop app)✅
Bike maintenance✅LimitedLimited (manual only)not found
Weather analysis✅ (free)Limitednot found✅ (paid tier only)

Quick start

One process, one port, no external services required.

# clone the repo and copy your Strava export into the data folder git clone https://github.com/Ashikaga1974/WattLoom.git cd WattLoom mkdir -p wattloom-data/download # copy your Strava ZIP export into wattloom-data/download/ # build & run via Docker docker compose up --build # open the app open http://localhost:8000

Manual (Python + Node) install and systemd autostart: see the full README.

⚠️ Security note: WattLoom Cycling deliberately has no authentication (single-user design for local use). Only run it locally or on your own LAN/VPN – never expose it to the open internet.