Building Workout Templates

Build a reusable workout (e.g. "Push Day") that you can drop into any rotation program.

trainer guide/workouts/new
What this is for: Create the building block of every program — a single workout template you can reuse anywhere.

What is a workout template?

A WorkoutTemplate is a named, reusable workout — for example:

  • Push Day
  • Legs A
  • Conditioning Finisher
  • Mobility Flow

Once a template exists, you can drop it into multiple programs without rebuilding. Editing the template ripples to every program that uses it (changes apply to future sessions only — past sessions stay intact).

Step-by-step: Create a template

  1. Open New Workout to start a reusable template.
  2. Type a Workout Name your clients will recognize.
  3. Tap Add Exercises to open your exercise library.
  4. Tap the plus on an exercise to add it, then tap Done.
  5. Tap Done to go back to your workout.
  6. Tap Create Workout and it joins your template library.
  1. Open Workouts in the sidebar (/workouts). You see the Workout Template Library at the top.
  2. Click New Workout in the top right. You land at /workouts/new.
  3. Fill in:
  • Template name (e.g. "Upper A").
  • Description (optional but useful — clients see this in their app).
  • Type — Strength, Cardio, HIIT, Flexibility, Mixed, or Recovery.
  1. Add exercises from the picker: click the + on an exercise card, drag it onto the canvas, or focus a card and press Enter. Each one creates a row.
  2. For each row, fill in:
  • Sets, Reps (or duration), RPE target, Rest seconds, optional Notes.
  1. Drag rows up/down to reorder. The order is what the client sees.
  2. Click Create Workout (when editing an existing template the button reads Save Changes).

Drag-drop notes

  • Click-and-drag from the exercise picker. Hover over the canvas — the drop zone highlights.
  • On mobile, the + button on each exercise card adds it to the bottom of the canvas (since drag-drop is awkward on touch).
  • Within the canvas, drag the row handle (left side) to reorder.
  • Keyboard: focus a row, press Space, then arrow keys, then Space again to drop. (W3C ARIA pattern.)

Sections and supersets

Sections (e.g. Warmup, Main, Cooldown) are stored as WorkoutTemplateSection rows. They render as headers in the client's workout view.

Supersets are not yet a first-class feature — to fake one, group two exercises by setting their Rest to 0s and adding a note like "Superset with previous". A native superset UI is on the roadmap.

Edit and delete

  • Edit: in the library, click a card to open /workouts/[id]/edit. Same drag-drop UI.
  • Delete: hover a card → trash icon. If the template is referenced by any program, delete returns 409 Conflict. Remove it from those programs first.

Common pitfalls

Where to find this

  • Library: /workouts.
  • Create: /workouts/new.
  • Edit: /workouts/[id]/edit.
  • API: GET/POST/PATCH/DELETE /api/workout-templates.
Was this article helpful?