Most training plans are a PDF. They do not know you missed Tuesday or ran Thursday too hard.
I built a web app that does know. It is a product experiment: a coach that plans, watches and adjusts.
- Plan. The runner sets a goal race, a date and their current fitness. Claude builds a 16 to 20 week periodized plan: base, build, peak, taper. Paces come from VDOT zones.
- Sync. Strava connects through OAuth. A webhook sends each run to the app as soon as it uploads.
- Adapt. Every Monday a scheduled job compares planned and actual training and rewrites the coming week.
- Brief. Seven days out, the runner gets a Race Week Brief: the race-day forecast from Open-Meteo, mile-by-mile pacing, fueling and logistics.
- Check in. Email check-ins go out through Resend.
Stack: Next.js 16, Tailwind, Postgres with Prisma 7, NextAuth v5, Claude and Vercel cron.
Source on GitHub: github.com/abhilashme/marathon-training-agent