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.
-
Your watch doesn't care what brand it is anymore
If you run Garmin, COROS, Suunto, Wahoo, Amazfit, or Huawei, you can now connect your Intervals.icu account once and your planned workouts show up on the watch. I'm not building six separate device integrations by hand, one connection covers all of them.
-
Deleting a paused plan no longer requires activating it first
If you had an old paused plan sitting in your dropdown and wanted it gone, your only path used to be switching to it, which made it your active plan, then going into settings to abandon it. So getting rid of a plan meant briefly hijacking your own training to do it.
-
Feedback you send now goes somewhere, and comes back
I'll be honest, for a while the answer to "what happens when I submit feedback" was "it goes into a void and I look at it eventually." You had no way to know if I'd seen it, ignored it, or fixed it three weeks ago without telling you. That's over. Open the feedback screen and you'll see every report you've sent with a…
-
Your "today" workout is now actually today
If you're on the West Coast, or really anywhere that isn't wherever my server happens to think it is, your plan used to flip to tomorrow's workout around 7 or 8pm your time. So you'd open the app after dinner, see Tuesday's run staring back at you on a Monday, and reasonably wonder if you'd lost a day somewhere. That's…
-
Denying clipboard access no longer breaks the share button behind the scenes
Some browsers ask before letting a site copy anything to your clipboard, and some people say no. That's a completely normal thing to do. It was also, until now, enough to crash the share-link feature and throw an error into my logs like something had actually gone wrong.