Import the messy history
Strava rides, Karoo summaries, TrainingPeaks iCal, Garmin sleep/HRV, and Withings scale + sleep mat readings.
Velogorgeous UI reads your rides, sleep, and HRV, then sketches a week that respects work, weather, and the fact that you still want Saturday lunch.
Connect the apps you already use. Velogorgeous UI estimates fitness and fatigue in plain language, then plans cycling — with optional lifting — around your actual recovery.
Strava rides, Karoo summaries, TrainingPeaks iCal, Garmin sleep/HRV, and Withings scale + sleep mat readings.
PMC charts (CTL/ATL/TSB + daily load), readiness, sleep stages, weight/body-comp trends, and a Withings-vs-Garmin deep-sleep comparison.
A deterministic or AI-drafted week with per-sport tiles, and a coach chat that reads your real numbers. Dark and light themes, installable as an app.
Each box is its own Rust service. You can rebuild just ingest, or just the planner, without touching the rest.
Garmin sleep score and HRV do not need to make you a physiologist. If they are down and your form is already negative, Velogorgeous UI will not prescribe VO2 on a Tuesday.
Upload a CSV with date,sleep_score,sleep_hours,hrv_ms,rhr,body_battery,stress. Export from Garmin Connect or type a week by hand.
The Sunday ride is the season. Intervals only happen when last night looks like you slept.
The stack runs behind Traefik on your machine. Analysis can use Ollama on a Quadro P400 (2 GB) with a 1B-class model, or any larger NVIDIA GPU. No cloud coach account.
Postgres, Redis, and the UI all live in Docker Compose. One script starts them.
No GPU? The built-in coach still writes a week. With a GPU, Ollama drafts in your tone.
HttpOnly sessions, CSRF, origin checks, Argon2id, encrypted OAuth tokens, tight CSP.