A running coach that writes tomorrow's workout to your watch — and rewrites it when your body says no.Bežecký tréner, ktorý zapíše zajtrajší tréning do tvojich hodiniek — a prepíše ho, keď telo povie nie.
A full-stack AI marathon coach I designed and built end to end. It follows the proven Hanson method, computes exact paces in code, lets an LLM handle the judgment calls, and pushes each session straight to Garmin — adapting daily to your recovery.Full-stack AI maratónsky tréner, ktorý som navrhol a postavil od začiatku do konca. Drží sa overenej Hansonovej metódy, počíta presné tempá v kóde, úsudok necháva na LLM a každý tréning zapíše priamo do Garminu — denne sa prispôsobuje tvojej regenerácii.
8 kmVOĽNÝ
8 km
A great training plan that ignores your recovery is a fast way to get injured.Skvelý tréningový plán, ktorý ignoruje tvoju regeneráciu, je rýchla cesta k zraneniu.
The Hanson method builds real marathon fitness — but a static PDF plan can't know you slept badly, your HRV crashed, or you're carrying too much load. Following it blindly on a bad day breaks you; skipping it kills the progression. It needs to adapt, every single morning.Hansonova metóda buduje reálnu maratónsku kondíciu — ale statický PDF plán nevie, že si zle spal, že ti spadlo HRV alebo že nesieš priveľkú záťaž. Slepé dodržiavanie v zlý deň ťa zlomí; vynechanie zabije progresiu. Musí sa prispôsobiť — každé jedno ráno.
Four steps, run fresh every morning.Štyri kroky, nanovo každé ráno.
Read the bodyPrečítaj telo
Pull last night's HRV, Body Battery, resting HR and training load from Garmin Connect.Stiahni včerajšie HRV, Body Battery, kľudový tep a tréningovú záťaž z Garmin Connect.
Compute the planVypočítaj plán
A deterministic core sets exact paces and weekly structure from your goal time — pure Hanson math, no guessing.Deterministické jadro nastaví presné tempá a týždňovú štruktúru z tvojho cieľového času — čistá Hansonova matematika, žiadne hádanie.
Decide the adaptationRozhodni adaptáciu
Gemini weighs today's strain against the plan and decides: proceed, ease off, or move the hard session.Gemini zváži dnešnú záťaž oproti plánu a rozhodne: pokračuj, uber, alebo presuň tvrdý tréning.
Write it to the watchZapíš do hodiniek
The final workout — steps, paces, targets — is pushed to Garmin so it's waiting on your wrist. In Slovak, in km.Finálny tréning — kroky, tempá, ciele — sa pošle do Garminu a čaká na zápästí. Po slovensky, v kilometroch.
A real full-stack app — front to back.Reálna full-stack aplikácia — spredu dozadu.
8-screen web appWebapka s 8 obrazovkami
Onboarding, plan overview, daily session, calendar, progress, settings — a full product surface, not a script.Onboarding, prehľad plánu, denný tréning, kalendár, progres, nastavenia — plnohodnotný produkt, nie skript.
~2,435-line API~2 435-riadkové API
FastAPI service that runs the pace engine, calls the LLM, talks to Garmin and encrypts every credential at rest.FastAPI služba, ktorá poháňa pace engine, volá LLM, komunikuje s Garminom a šifruje každý údaj.
Deterministic core + LLM judgmentDeterministické jadro + úsudok LLM
Anything that must be exact — paces, distances, weekly volume — is plain Python, verifiable and repeatable. The LLM only handles what genuinely needs judgment: how to adapt when your recovery is off. You never get a hallucinated pace.Všetko, čo musí byť presné — tempá, vzdialenosti, týždňový objem — je čistý Python, overiteľný a opakovateľný. LLM rieši len to, čo naozaj vyžaduje úsudok: ako adaptovať, keď regenerácia zaostáva. Nikdy nedostaneš vymyslené tempo.
The same principle as everything I build: code for what must be correct, the model for what needs a decision. Reliability by design, not by hope.Rovnaký princíp ako všetko, čo staviam: kód na to, čo musí byť správne, model na to, čo potrebuje rozhodnutie. Spoľahlivosť z návrhu, nie z nádeje.
Real signals from a real device.Reálne signály z reálneho zariadenia.
HRV
Overnight heart-rate variability — the earliest sign of accumulated fatigue.Nočná variabilita tepu — najskorší signál nazbieranej únavy.
Body Battery
Garmin's charge estimate — how much you actually have to spend today.Garmin odhad „nabitia" — koľko dnes reálne máš na míňanie.
Acute : chronicAkútne : chronické
The injury-risk ratio — recent load vs. what your body is used to.Pomer rizika zranenia — nedávna záťaž vs. to, na čo je telo zvyknuté.
Resting HR & sleepKľudový tep a spánok
Trend lines that flag when something's off before you feel it.Trendy, ktoré upozornia skôr, než to sám pocítiš.
Target raceCieľové preteky
Your marathon date and goal time anchor every pace the engine computes.Dátum maratónu a cieľový čas ukotvujú každé tempo, ktoré engine počíta.
Completed runsOdbehnuté tréningy
What you actually ran feeds back into the next day's decision.To, čo si naozaj odbehol, sa vracia do rozhodnutia na ďalší deň.
This is what it actually looks like.Takto to v skutočnosti vyzerá.
Sleep, HRV, Body Battery and a readiness score — read from Garmin each morning. Low readiness triggers a plan adjustment.Spánok, HRV, Body Battery a skóre pripravenosti — každé ráno z Garminu. Nízka pripravenosť spustí úpravu plánu.
Exact paces computed from your goal time — warm-up and tempo steps in km, straight from the deterministic engine.Presné tempá vypočítané z cieľového času — rozcvička a tempo v km, priamo z deterministického jadra.
Every session is scored against the method — an HR-zone split and an honest verdict, saved back for the next decision.Každý beh vyhodnotený voči metóde — rozloženie HR zón a úprimný verdikt, uložený pre ďalšie rozhodnutie.
Built in the open, from first commit to deploy.Postavené transparentne, od prvého commitu po nasadenie.
The whole thing is public under MIT — architecture, the deterministic engine, the Garmin integration, the commit history. Nothing to take on faith.Celé je verejné pod MIT — architektúra, deterministický engine, Garmin integrácia, história commitov. Nič, čo by si musel brať na slovo.