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

What the others do for Pheidi

A look around

Live screenshots. CI takes them on every merge and Screenery serves the newest. Nobody exports a PNG by hand.

Today's run with pace, heart rate, and effort targets, plus this week's days.
Today's run, this week, and the season on one screen.
A month calendar with each training day's workout icon and distance.
The month view. Icons show the workout type at a glance.
A table of every week in the plan with its distance, long run, and phase.
The whole block, week by week.
A low readiness score next to a suggestion to take today's run easy.
Feeling rough? It suggests backing off. It never rewrites the plan behind your back.
The injury form with a body-part picker and a pain slider.
Report where it hurts and how much. The plan adjusts.
The vacation form with start and end dates and a training-load slider.
Pick your vacation dates and how much running you'll keep.
The export panel offering the next workout or the whole block as Garmin .fit files.
Send the next workout, or the whole block, to a Garmin.

Recent updates

Written by Merge & Tell from the pull requests that shipped them.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.