Domestique started as one long day of wiring the full path end to end: sign in to Garmin Connect, pull activities into a local cache, compute the telemetry that matters, and turn it into something that can drive a trainer.
By the end the skeleton was standing. On the analytics side: an activity list with intensity filters, a detail view with the route on a MapKit map, a power and heart-rate chart, a mean-max power curve, and a dashboard of 28-day load with a 180-day PMC chart. On the training side: a hybrid plan engine (calendar anchors plus an adaptive interior, Friel-style phases with auto-recovery weeks), a library of built-in workouts, and a runtime that pushes ERG targets to an FTMS trainer over BLE while it records the ride.
The piece I wanted most was the loop closing: ride a structured workout, have the app score how closely I matched the prescription, and feed that back into what it recommends tomorrow. Everything since has been filling in that frame.