Running training plans
Pheidi
Personalized running plans for 5K to marathon that reschedule when life happens. Built on polarized training and real sports science. Free.
What it is
Most training plans are a PDF that assumes nothing goes wrong for sixteen weeks. Pheidi assumes something will. Miss a run, tweak a calf, take a vacation, and the plan reshuffles around it.
Under the hood it's polarized training: mostly easy miles, a little hard work, not much in between. Workouts export to your calendar and your Garmin.
How it fits
Pheidi started in 2019 as an Angular toy, then sat untouched for five years. In March 2026 I restarted it with a spec and a team of agents. It's past 700 commits since then. Plans that bend when you get hurt or go on vacation, which is exactly what I needed. It's one part of the stack, where my projects run each other.
What Pheidi does for the others
- Pheidi → Merge & Tell First real customer. A Pheidi PR where three cards disagreed about one channel rebuilt Merge & Tell's PR page. Read the story →
- Pheidi → Screenery The worked example in Screenery's own CI-setup tests. Read the story →
- Pheidi → NightForge sync-docs, the skill that keeps docs honest, was born in Pheidi and ported into NightForge. Read the story →
What the others do for Pheidi
- Merge & Tell → Pheidi Drafts the posts for every Pheidi merge, for @pheiditraining on X, Bluesky, and Mastodon. Read the story →
- Screenery → Pheidi Hosts Pheidi's docs screenshots, Play Store shots, and listing video. A test fails the build if the pictures and the pages drift apart. Read the story →
- NightForge → Pheidi Runs Pheidi's weekly docs sweep, nightly error sweep, and CodeRabbit re-reviews. Read the story →
A look around
Live screenshots. CI takes them on every merge and Screenery serves the newest. Nobody exports a PNG by hand.
Recent updates
Written by Merge & Tell from the pull requests that shipped them.
-
The homepage shows up about 1.1 seconds sooner on your phone
The biggest thing on the homepage now appears about 1.1 seconds sooner on mobile. Before, a 180 KB analytics script was fighting the font and the main image for bandwidth, which hurts most on a slow connection.
-
Intervals.icu sync now sees your whole plan, not just the next two weeks
If your plan starts more than 14 days out, your workouts now show up on your Intervals.icu calendar as soon as you connect. No more staring at an empty week and wondering if something broke.
-
Done now means done today, and you can take it back
Tomorrow's workout no longer has a "Done" button. You can log a run once its day arrives, which saves you from checking off a run you haven't run yet.
-
The Feedback button now works more than once
Close the Feedback panel with the X, Escape, or a click outside it, and the button opens it again. Before, it went dead after the first close and only a page reload brought it back.
-
Phase labels on the training chart now sit under the weeks they belong to
Base, Build, Peak and Taper each get one label, placed directly under the weeks where that phase actually runs. Peak no longer floats under the wrong stretch of the line.