Skip to Content
TrainingExercise Programs

Exercise Programs

The exercise programs library is where you build strength and resistance programs as templates, then assign them to clients. Each program is a multi-week structure of workout days, and each workout day is a list of exercises with set/rep/load configurations.

The library

Coach → Exercises opens the library. It has:

  • Two tabs — your templates vs. assigned client programs
  • Search
  • Difficulty filter — beginner / intermediate / advanced
  • Sharing filter — your programs vs. shared from teammates
  • Client filter — filter assigned programs to a single client
  • List / grid view toggle

First-time seeding

The first time you open the library, the app seeds a starter set of templates so you have something to start from. You’ll see a “Setting up your starter program library…” loader during this one-time setup.

Per-program actions

From any program row or card:

  • Assign — open the assignment modal to give the program to one or more clients
  • Edit — open the program builder
  • Duplicate — copy the program as a new template (with a confirmation step)
  • Share / Unshare — make the program visible to other coaches in your workspace
  • Delete — destructive, with confirmation

Building a program

The program builder is a stepped flow:

  1. Basics — name, description, difficulty, goal
  2. Structure — define phases and weeks. Each program can have multiple phases.
  3. Schedule — lay out workout days within each week
  4. Review — final check before saving

For each workout day, you add exercises and configure sets — number of sets, target reps, target load, rest time. The builder supports dragging to reorder both exercises within a day and days within a week.

Phases

Programs can be organized into phases — for example, a 12-week program might have an accumulation phase, an intensification phase, and a deload phase. Each phase has its own configuration card and timeline view.

Volume landmarks

The builder has a volume landmarks section for setting per-muscle-group volume targets (MEV, MAV, MRV-style). The builder uses these to give you visibility into per-muscle-group volume as you add exercises.

When adding an exercise to a workout day, the search modal opens. You can filter by:

  • Muscle group (target muscles, secondary muscles)
  • Equipment (barbell, dumbbell, cable, etc.)
  • Body part

Each result shows an exercise image and a details view (description, instructions, muscle pairings). Custom exercises (see below) appear in this search alongside the built-in library.

Substitutions

Each programmed exercise can be substituted — useful when a client doesn’t have the equipment, or you want to vary the stimulus. The substitution modal shows alternatives based on muscle group and equipment.

Custom exercises

Coach → Exercises → Custom is a separate library for exercises you create yourself. The page is two-pane: a list on the left, a preview on the right.

  • Create — opens a form for name, instructions, target muscles, equipment, demonstration media
  • Edit — only enabled if you have permission to modify (custom exercises shared from another coach may be read-only)
  • Delete — destructive, with confirmation

Custom exercises become available everywhere the built-in library is — exercise search, program builder, substitutions.

Assigning a program

The assignment modal opens from any program in the library. From there:

  1. Pick one or more clients
  2. Set the program’s start date for each client
  3. Confirm

Assignment creates a client program — the active copy that tracks the client’s actual logged work. The template you assigned remains unchanged. Editing the template later doesn’t propagate to existing assignments.

Logging vs. periodization

When a client logs a workout, the system records actual sets, reps, load, and (if the program has periodization enabled) RIR — Reps In Reserve. The PT Mode session also captures this data; see PT Mode.

The intra-workout progression button on a logged exercise lets you (or the client) auto-calculate the next set’s target load based on the previous set’s performance — a small affordance for runtime adjustments.