Kinetiqo — Self-Hosted Strava Fitness Data Warehouse

Synchronize your complete Strava activity history into high-performance PostgreSQL, MySQL, or Firebird databases. Analyze power curves, VO₂max trends, CTL/ATL fitness indices, generate printable posters, and manage sync via Web UI or Click CLI.

docker — quick start
docker run -d -p 4444:4444 --env-file .env lhotakj/kinetiqo:latest

Everything you need for complete fitness telemetry

Designed for cyclists, runners, and multisport athletes who demand complete data sovereignty and zero vendor lock-in.

Activity Sync & Data Grid

Fast incremental sync vs full audit reconciliation, SSE progress bars, and DataTables 2.x searchable grid with bulk actions and state persistence.

Explore Activity Grid →

Power Skills & FTP Estimation

Spider charts tracking your best average power over durations from 5s to 1 hour, paired with automated 95% 20-min FTP tracking.

Explore Analytics →

Fitness, Freshness & VO₂max

Banister impulse-response model for CTL (Fitness), ATL (Fatigue), and TSB (Form), plus Townsend MAP and Coggan FTP-based VO₂max estimates.

Explore VO₂max & Fitness →

WYSIWYG Poster

Build high-res activity posters with draggable layouts, custom photos (PNG, JPG, WEBP, HEIC) or canvas maps, and export to PNG to showcase your efforts.

Explore Poster Builder →

MEGA Stats

Create eye-catching infographics with 365-day calendar heatmaps, custom background photos, tint and opacity controls, font picker, responsive column width, and PNG/PDF export.

Explore MEGA Stats →

Strava Auto-Description Engine

Inject live stats into Strava activity descriptions using 150+ dynamic placeholders across 6 activity buckets with goal tracking & milestone triggers (🎉).

Explore Strava Templates →

Interactive Canvas Maps

Multi-provider Leaflet map with Canvas renderer for thousands of GPS points. Includes 16 basemaps across 7 providers, fullscreen mode, styling persistence, and PNG export.

Explore Maps & 16 Basemaps →

Multi-DB Zero-ORM Warehouse

Direct parameterized SQL queries on PostgreSQL, MySQL / MariaDB, or Firebird without ORM overhead. Seamless data portable schema migrations.

Explore Databases →
Command-Line Power

Full Control via Click CLI

Prefer the terminal? Kinetiqo includes a robust Click Command-Line Interface (python src/kinetiqo.py) for triggering fast incremental syncs, full Strava audits, database overrides, and headless operations.

View CLI Documentation →
Terminal — kinetiqo cli
# Incremental sync
python src/kinetiqo.py sync --fast-sync

# Full audit reconciliation
python src/kinetiqo.py sync --full-sync

# Run web app with custom DB
python src/kinetiqo.py web --database-type postgresql
Data Grid & Incremental Sync

Searchable Activity Grid with Live SSE Sync Progress

Track every ride, run, and workout in a responsive DataTables 2.x interface with server-sent events showing real-time sync status.

  • Fast Sync vs Full Audit: Incremental fetch for quick updates or full reconciliation.
  • Column Control & State Persistence: Reorder, hide, and save your preferred grid layout.
  • Export Options: Export filtered activity tables to CSV or high-res PNG for analysis.
Explore Activity Grid →
Activity Grid Interface
Power & Fitness Analytics

Banister Impulse-Response Fitness Model & Power Duration Spider

Scientific modeling of training load over time paired with best average power curves from 5 seconds to 1 hour.

  • CTL / ATL / TSB Curves: Chronic Training Load (Fitness), Acute Load (Fatigue), and Stress Balance (Form).
  • FTP & VO₂max Trends: Track 95% 20-min power and Townsend 5-min MAP MAP estimates.
  • Radar Skill Profiles: Spider charts visualizing sprint, surge, VO₂max, and endurance power.
Explore Fitness Analytics →
Fitness & Freshness Analytics Chart
Interactive Canvas Mapping

Multi-Provider Canvas Maps for Complex Multi-Stage Routes

Render thousands of GPS track points seamlessly with Leaflet HTML5 Canvas integration and server-side tile caching.

  • 16 Basemaps across 7 Providers: OpenStreetMap, Mapy.cz, Thunderforest, MapTiler, Geoapify, CARTO, and Esri.
  • Local OSM Tile Proxy: Built-in Python proxy server (`/tiles/osm/...`) for policy-compliant tile caching.
  • Custom Polyline Styling: Real-time route color, stroke weight, opacity, and map tone adjustments.
Explore Interactive Maps →
Interactive Leaflet Map View
WYSIWYG Poster Builder

Printable Activity Posters & High-Res PNG Export

Design custom posters with elevation profiles, self-hosted typography, photo or interactive Leaflet canvas map backgrounds, and Playwright high-res PNG export.

  • Aspect Ratios: 4:3, 16:9 landscape, and 1:1 square ratio.
  • Draggable Elements: Position titles, stats, profiles, and badges with persistent coordinates.
  • Headless PNG Rendering: Pixel-perfect Playwright export up to 2048px width.
Explore Poster Generator →
WYSIWYG Poster Builder Preview

Ready to build your own fitness data warehouse?

Launch Kinetiqo locally in less than 2 minutes using Docker, Python CLI, or bare-metal SQL.