IronPen

Custom Templates

Custom Templates

A complete guide to building training programs in IronPen. From a simple A/B split to complex periodized programs.

What is a custom template?

A custom template is your own training program that you create directly in the app. You define what exercises, how many sets, with what weight, and on what schedule you will train. IronPen then generates a complete training plan for the entire cycle from your template — with the correct weights, progression, and schedule.

The result is the same as with pre-built programs (Wendler, StrongLifts, etc.), but the content is entirely yours.

Custom templates are saved locally on your device. You can also share them via the Marketplace or export them as a JSON file.

Why create your own template?

  • Your program, your rules — no need to adapt to pre-built templates
  • Combine approaches — merge elements from different programs (e.g. Wendler percentages with a PPL split)
  • Specific needs — kettlebell programs, rehabilitation, sport-specific training
  • Sharing — create a program for your client or friend and send it to them
  • AI assistance — let AI design a program and import it with one click

How the editor works

The editor guides you through 6 steps. In each step you configure one part of the template. You can go back and edit previous steps at any time.

📝 Info 📅 Schedule 🏋️ Exercises ⚙️ Sets 📈 Progression 👁️ Preview

On the last screen you will see a preview of the generated workouts — exactly as they will appear in the app. If something doesn't look right, go back and fix it.

1 Basic Information

The first screen of the editor. Name your template and set the basic parameters.

Name (required)

A short, descriptive program name. It is displayed in the template list and on workout cards.

Good names: "My PPL 4x", "KB Strength 3x/week", "Offseason Hypertrophy"
Bad names: "New program", "Test", "asdf"

Description (optional)

A few sentences about the program — who it's for, what the goal is, how long a cycle lasts. It is shown in the template detail and on the Marketplace.

Icon

An emoji icon for quick visual identification. Choose from the list or search.

Tags

Program categories — they help with filtering on the Marketplace. You can select multiple tags at once.

TagWhen to use
BeginnerProgram suitable for complete beginners
IntermediateRequires basic training experience
AdvancedFor experienced athletes
StrengthFocused on maximal strength (low reps, high intensity)
HypertrophyFocused on muscle growth (moderate reps, higher volume)
EnduranceMuscular endurance (high reps)

2 Schedule Type

The most important decision — how the program will be structured. IronPen supports 5 schedule types. Each one suits a different training style.

TypeDescriptionExample
Same Every WeekYou repeat the same workouts every weekPPL, Upper/Lower, PHUL
Alternating A/BTwo (or three) workouts alternateStrongLifts 5×5, Starting Strength
Varying WeeksEach week in the cycle has different percentages/repsWendler 5/3/1, TB Operator
Heavy/Medium/Light3 days with varying intensityTexas Method, Madcow
LaddersSets with ascending reps (1,2,3...)Rite of Passage, DFW
Not sure? Start with "Same Every Week" — it's the simplest and covers most programs. You can change the schedule type later by editing the template.

A detailed description of each type can be found in the Schedule Types section below.

3 Schedule Configuration

Parameters common to all schedule types.

Days per week

How many times per week you will train. This determines how many days you need to define.

If you change the number of days after you have already added exercises, the extra days will be removed (along with their exercises). Set the number of days first.

Weeks per cycle

How many weeks one program cycle lasts. After the cycle ends, the program can repeat with heavier weights (if you have progression set up).

Examples: Wendler = 4 weeks (3 working + 1 deload). StrongLifts = 4 weeks. TB Operator = 6 weeks (wave 70→95%).

Max cycles

How many cycles to generate at most. When generating, you then choose how many cycles you want (1 up to max).

Training Max %

The percentage of 1RM used as the "Training Max" for calculating working weights. Typically 90% (Wendler standard). If your program works directly with percentages of 1RM (not TM), set this to 100%.

What is Training Max? Training Max (TM) = your 1RM × 90%. If your bench 1RM is 100 kg, your TM is 90 kg. When the template says "85% TM", you calculate 85% of 90 = 76.5 kg. The concept comes from Wendler 5/3/1 — coach Jim Wendler recommends not training with your full max, but with a more conservative value.

4 Adding Exercises

For each day (or A/B variant) you add exercises. Exercises are selected from IronPen's database of 163 exercises.

How to add an exercise

  1. Tap the tab for the day where you want to add the exercise (e.g. "Push" or "Day A")
  2. Tap the + Add Exercise button
  3. Search for the exercise by name or browse categories
  4. Tap the exercise to add it to the day

Exercise ordering

The order of exercises determines the order in which they appear in the workout. Drag an exercise by the ≡ icon on the left to change the order.

Order exercises from most demanding to least demanding. Place the main compound lifts (squat, bench, deadlift) at the beginning, and isolation and assistance work at the end.

Exercise type: Main vs. Assistance

Each exercise has a type — Main (MAIN) or Assistance (ASSISTANCE). The type affects how automatic progression works:

  • Main: Key exercises that your program is built around. Progression typically applies to these exercises.
  • Assistance: Supplementary exercises. They can have different (or no) progression.

Unilateral (single-side exercises)

Enable for exercises performed on one side at a time (single-arm rows, Bulgarian split squats, TGU). Reps are then entered as "8+8" (left + right) and tonnage is counted double.

EMOM

Enable for exercises in EMOM mode (Every Minute On the Minute). You set the interval in seconds — after completing a set, a countdown to the next interval begins.

5 Setting Up Sets

After tapping an exercise in the list, the set editor opens. Here you define how many sets, how many reps, and with what weight.

Reps (repetitions)

Entered as text. Supported formats:

FormatMeaningExample
5Exactly 5 repetitionsBench Press 5×5
5+At least 5, do as many as possible (AMRAP)Wendler top set
8-12Range — choose based on how you feelHypertrophy assistance
1+1One rep on each side (unilateral)Turkish Get-Up
maxMaximum count (AMRAP)Pull-ups to max

AMRAP (As Many Reps As Possible)

Enable for sets where you want to do as many reps as possible. Typically the last set of an exercise. After completion, the app shows a dialog to enter the actual rep count.

Set type

TypeWhen to use
MAINMain working sets (default)
WARMUPWarm-up sets with lighter weight
FSLFirst Set Last — back-off sets with the weight from the first working set (Wendler)

Copies

How many times to repeat this set with the same parameters. Instead of manually adding 5 identical sets, set up one set with copies = 5.

Example: StrongLifts 5×5 = 1 set with reps "5" and copies = 5. Result: 5 identical sets of 5 reps.

Quick templates

Buttons above the set list for quickly setting up popular schemes:

  • 5×5 — 5 sets of 5 reps (StrongLifts, ICF)
  • 3×10 — 3 sets of 10 (typical hypertrophy)
  • 5/3/1 — 3 sets with ascending percentages (Wendler)

6 Weight Sources

The most important setting — where the weight for a set comes from. IronPen supports 7 weight sources.

SourceDescriptionExample
% of Training MaxPercentage of TM (= 1RM × TM%). Most common for periodized programs.85% TM = with 1RM 100 kg and TM 90%: 76.5 kg
% of 1RMPercentage directly from 1RM (without TM conversion). For programs without the TM concept.80% 1RM = 80 kg
Fixed weightA specific weight in kg. Does not change with 1RM.Face pulls 20 kg
BodyweightExercises using your own body weight.Pull-ups, push-ups, dips
From user inputWeight entered by the user when generating. Ideal for kettlebells, where the weight depends on available KBs.KB swing with "your KB weight"
% of top setPercentage of the heaviest set (ramp sets).Madcow: 5 sets with ascending % of top set
DerivedAutomatically derived from another day (HLM). Medium = 85% of Heavy.HLM derived days

Linked Exercise

For the "% of TM" and "% of 1RM" sources, you must specify which exercise the 1RM is taken from. Typically it's the same exercise — bench press sets use the bench press 1RM. But it can be a different exercise — e.g. front squat sets calculated from the back squat 1RM.

When using "% of TM" or "% of 1RM", an input field for entering the 1RM is automatically created when generating the program. You don't need to create it manually.

User input: WEIGHT_INPUT vs WEIGHT_CHOICES

For "From user input" there are two types:

  • Free input (WEIGHT_INPUT) — the user enters any number. Suitable for 1RM.
  • Predefined values (WEIGHT_CHOICES) — the user selects from a list. Suitable for kettlebell weights (8, 12, 16, 20, 24, 32 kg).

7 Progression Rules

Progression = how weights change over time. Without progression, you'll keep lifting the same weight. With progression, the app automatically increases weights after a successful cycle/workout.

Progression type

TypeWhen evaluatedExample programs
NoneWeights don't change automaticallyOne-off programs, deload
Per workoutAfter each workoutStrongLifts (+2.5 kg after 5×5), Starting Strength
Per cycleAfter completing the entire cycleWendler (+2.5 kg to TM), TB Operator

Simple vs. advanced mode

Simple mode is enough for most programs. You set:

  • Weight increment on success (e.g. +2.5 kg)
  • What to do on failure (repeat / deload)
  • How many failures before deload (typically 3)
  • Deload percentage (typically 10%)

Advanced mode allows you to define multiple rules for different exercises. Enable it via the "Advanced rules" toggle.

Example of advanced rules for KB & Barbell DUP:
1. Bench + OHP: per cycle, +2.5 kg to TM
2. Hip Thrust: per cycle, +5 kg to TM
3. TGU: per cycle, +4 kg (KB jump)

Action on success

ActionDescription
INCREMENT_WEIGHTAdd fixed weight (per workout progression)
INCREMENT_TMIncrease Training Max (per cycle progression)
NO_CHANGEKeep the same

Action on failure

ActionDescription
REPEAT_WEIGHTRepeat the same weight next time
DELOAD_PERCENTReduce weight by X% (typically after repeated failure)
NO_CHANGEKeep the same

8 Preview & Save

The last step — you see exactly what workouts will be generated. The preview uses fictional 1RM values (100 kg bench, 140 kg squat, etc.).

What to check

  • Number of workouts — does it match the number of days × weeks × cycles?
  • Exercises in each day — are they in the correct order?
  • Weights — do they make sense? 85% TM of 100 kg bench = 76.5 kg (rounded to 77.5)?
  • Number of sets — did copies expand correctly?
  • AMRAP sets — are they marked with a "+" after the reps?
If you see an error (red banner), read the error message and go back to the relevant step to fix it. The most common error: an exercise without sets or a missing linked exercise for % of TM.

If everything looks good, tap Save Template. The template will be saved and will appear in the "My Templates" section on the templates screen.

Supersets

A superset = two exercises performed without rest between them. In the editor, you link an exercise with the previous one via the "Superset with previous" toggle.

Example: Bench Press + Ring Rows as a superset. Perform a set of bench, immediately followed by a set of ring rows, then rest. Repeat.

In the workout, supersets are displayed connected by a bracket and alternate automatically.

Supersets save time and increase intensity. Combine opposing movements: push + pull (bench + rows), anterior + posterior chain (squat + RDL).

Deload Week

Deload = a lighter week for recovery. In the schedule configuration, enable "Deload week" and set:

  • Which week — typically the last one in the cycle (week 4 for Wendler, week 7 for DUP)
  • Deload % — weight multiplier (60% = weights will be 60% of normal)
  • Reduce sets — optionally remove sets (e.g. -1 set for assistance)
The deload is applied automatically on the specified week in the cycle. All weights are multiplied by the deload percentage. The workout label displays "(Deload)".

Wave Progression

Wave progression gradually introduces a new, heavier weight into sets. Instead of jumping from 16 kg to 20 kg all at once, you progressively replace sets — from the center outward.

Example: TGU wave from 16 to 20 kg (5 sets, 6 weeks):
Week 1: 16, 16, 16, 16, 16
Week 2: 16, 16, 20, 16, 16
Week 3: 16, 16, 20, 20, 16
Week 4: 16, 20, 20, 20, 16
Week 5: 16, 20, 20, 20, 20
Week 6: 20, 20, 20, 20, 20

Enable wave in the settings of a specific exercise — the "Wave progression" toggle. Set the starting weight, target weight, spread type (from center, from left, from right), and the number of transition weeks.

Wave progression is ideal for kettlebell exercises, where the jump between weights is large (4-8 kg). For barbell exercises, a linear increment is typically used.

Intra-cycle Progression

In addition to progression between cycles (per cycle), you can also set up progression within a cycle — weights increase every week (or every 2 weeks).

TypeDescriptionExample
NoneWeights don't change within the cycleWendler (same % throughout the cycle, only increases between cycles)
Every week+X kg every weekPHUL (+2.5% per week)
Every N weeks+X kg every 2 (or 3) weeksKB & Barbell DUP (+2.5 kg every 2 weeks)
Intra-cycle progression is added on top of weights calculated from % TM/1RM. If your bench is 80% TM = 72 kg and intra-cycle is +2.5 kg/week, in week 3 the weight will be 72 + 5 = 77 kg.

Same Every Week (WEEKLY_FIXED)

The simplest type. You define N days and they repeat identically every week. Suitable for most split programs.

When to use

  • Push/Pull/Legs (3 or 6 days)
  • Upper/Lower (4 days)
  • Full Body (3 days)
  • PHUL, PHAT (4-5 days)
  • Any program where workouts don't change from week to week

Configuration

You define the name of each day and add exercises. When generating, the days repeat: Week 1 = Week 2 = Week 3...

Alternating A/B (ALTERNATING)

Two (or three) workout types alternate. You train 3x per week, but each workout is different — A, B, A, B, A, B...

When to use

  • StrongLifts 5×5 (A: Squat+Bench+Row, B: Squat+OHP+Deadlift)
  • Starting Strength
  • Any program where workout types alternate regardless of the day of the week

Configuration

  • Number of variants: How many workout types (2 = A/B, 3 = A/B/C)
  • Pattern: The order in which they alternate. Default is A, B, A, B... But you can set e.g. B, C, A (like KB & Barbell DUP — heavy day before the longest rest)
Difference from WEEKLY_FIXED: with WEEKLY_FIXED, Monday is always "Push day". With ALTERNATING, workouts rotate — if the last workout was A, the next will be B, regardless of the day of the week.

Varying Weeks (WEEKLY_VARYING)

Each week in the cycle has a different structure — different percentages, different reps, or different exercises. Ideal for periodized programs.

When to use

  • Wendler 5/3/1 (Week 1: 3×5, Week 2: 3×3, Week 3: 5/3/1, Week 4: Deload)
  • TB Operator (6 weeks: 70%, 80%, 90%, 75%, 85%, 95%)
  • Any program with blocks/phases within a cycle

Configuration

The editor shows two levels of tabs — top for weeks (Week 1, Week 2...) and bottom for days within a week. Each week × day combination has its own exercise list with its own sets and percentages.

Copying structure

Don't want to define each day from scratch? Use "Copy structure from week X" — the exercises and sets are copied, and you just adjust the percentages.

Deload week: enable the "Deload" toggle on the last week. The deload multiplier is automatically applied to all weights.

Heavy/Medium/Light (HLM)

Three days per week with different intensity. You fully define the heavy day, and the medium and light days are automatically derived (or you can define them manually).

When to use

  • Texas Method (Volume → Recovery → Intensity)
  • Any DUP program (Daily Undulating Periodization)
  • Programs where you train the same exercises with varying intensity/volume

Derived vs. custom days

Derived day = the app automatically takes exercises from the heavy day and adjusts:

  • Intensity (%): Weight will be X% of the heavy day (e.g. 85% for medium)
  • Volume (%): Number of sets will be X% of the heavy day (e.g. 75% = 4 sets instead of 5)

Custom day = you define a completely different workout (different exercises, different sets).

Intensity order

Set the order in which the days alternate. Popular options:

  • H, L, M — heavy day at the start of the week (Texas Method, ROP)
  • H, M, L — descending
  • M, L, H — heavy day at the end (before the weekend = longer recovery)

Ladders (LADDER_PROGRESSION)

A ladder system: sets with ascending rep counts. A ladder of 1,2,3 = first set 1 rep, second set 2 reps, third set 3 reps. You repeat the ladder multiple times.

When to use

  • Rite of Passage (Clean & Press + Pull-ups)
  • DFW (Double Kettlebell Front Squat + Press)
  • Any kettlebell program with a ladder structure

Configuration

  • Exercises: Add exercises and for each one choose "Uses ladders" or "Fixed sets"
  • Mirror ladders: An exercise copies ladders from another exercise (Pull-ups mirror C&P)
  • Progression per week: A table where for each week you set the max rung and ladder count
Example ROP week 3: Max rung = 5, Ladder count = 5.
Result: 5× (1, 2, 3, 4, 5) = 25 sets, 75 total reps.
Heavy day: full range. Medium: max rung - 1 = 4. Light: max rung - 2 = 3.

Example: Push/Pull/Legs

A classic 6-day split. We'll show how to create it step by step.

1. Basic info

Name: "PPL Hypertrophy", Icon: 💪, Tags: intermediate, hypertrophy, 6-days

2. Schedule type

Same Every Week, 6 days per week, 4 weeks per cycle, TM 90%.

3. Days

Push 1, Pull 1, Legs 1, Push 2, Pull 2, Legs 2.

4. Push 1 (strength)

ExerciseSetsRepsWeight
Bench Press4585% TM
Overhead Press3870% TM
Incline DB Press310Fixed 30 kg
Tricep Pushdowns312Fixed 25 kg
Lateral Raises315Fixed 8 kg

5. Progression

Per cycle, +2.5 kg to TM for Bench and OHP. Others without automatic progression (add manually).

Example: Wendler 5/3/1

A periodized program with changing percentages per week. We'll show it as WEEKLY_VARYING.

Configuration

Type: Varying Weeks, 4 days/week, 4 weeks/cycle, TM 90%.

Week 1 (3×5) — Day 1 (OHP)

ExerciseSetsRepsWeightType
OHP1540% TMWARMUP
OHP1550% TMWARMUP
OHP1565% TMMAIN
OHP1575% TMMAIN
OHP15+85% TMMAIN, AMRAP
OHP51050% TMFSL (BBB)

Weeks 2 and 3 have different percentages (70/80/90% and 75/85/95% respectively). Week 4 is a deload.

Progression

Per cycle: OHP and Bench +2.5 kg to TM, Squat and Deadlift +5 kg to TM.

Example: A/B for Beginners

A simple full-body program with two alternating workouts, 3x per week.

Configuration

Type: Alternating A/B, 3 days/week, 4 weeks/cycle, TM 100% (working directly with 1RM).

Workout A

ExerciseSets×RepsWeight
Back Squat3×580% 1RM
Bench Press3×580% 1RM
Barbell Rows3×580% 1RM

Workout B

ExerciseSets×RepsWeight
Back Squat3×580% 1RM
Overhead Press3×580% 1RM
Deadlift1×585% 1RM

Progression

Per workout: +2.5 kg for upper body (Bench, OHP, Rows), +5 kg for lower body (Squat, Deadlift). Deload after 3 failures (-10%).

Export Template

You can export a custom template as a JSON file and share it with anyone.

  1. In "My Templates", tap the ⋮ (kebab menu) on the template
  2. Select Export JSON
  3. Choose where to save the file, or Share via WhatsApp, email, Telegram...

Import Template

You can import a template from a file or from the clipboard.

From file

  1. On the templates screen, tap 📁 Import from file
  2. Select a .json file
  3. Review the template preview
  4. Tap Import

From clipboard

  1. Copy the JSON text to your clipboard (Ctrl+C / long press → Copy)
  2. In IronPen, tap 📋 Import from clipboard
  3. Review the preview and import

AI Template Generation

You can ask an AI (ChatGPT, Claude, Gemini...) to design a training program in JSON format for IronPen. Here's how:

  1. Tell the AI what you want: "Create a 4-day upper/lower program for an intermediate lifter, focused on hypertrophy, with bench, squat, deadlift, and OHP as the main lifts."
  2. Ask for JSON format: "Generate it as an IronPen JSON template."
  3. Copy the resulting JSON
  4. In IronPen: 📋 Import from clipboard
The AI may not know the exact IronPen template format. If the result can't be imported, send the AI an example of a valid template (export one of yours) and ask it to match the same format.

Marketplace

The Marketplace is a place where you can download templates from other users and share your own.

Downloading

  1. Open the Marketplace from the templates screen
  2. Browse or filter (by type, days, tags)
  3. Tap a template for details and reviews
  4. Tap Download — the template will be saved to "My Templates"

Publishing (Premium)

Premium users can upload their own templates to the Marketplace. Other users can then download and rate them.

Tips & Tricks

Start simple

You don't have to use all features at once. Start with the "Same Every Week" type and 3 exercises per day. You can add more complex elements later.

Copy and modify

Download a template from the Marketplace and modify it to suit you. It's faster than building from scratch.

Test via preview

Preview is your best friend. Before saving a template, go through the generated workouts and verify that the weights make sense.

Progression is key

A program without progression is just a list of exercises. Set up at least simple progression — +2.5 kg per cycle for upper body, +5 kg for lower body.

Naming convention for 1RM inputs

When using "% of TM", an input named after the exercise is automatically created. If you link multiple sets to the same exercise, they share one input.

Adjustments during a workout

If you feel better or worse during a workout, tap the set weight and adjust it. The app will ask whether you want to change the remaining sets or even future workouts.

FAQ

Can I edit a template after saving?

Yes. In "My Templates", tap ⋮ → Edit. Editing does not affect already generated workouts — those are a snapshot. Changes will take effect the next time you generate.

What happens when I delete a template?

The template disappears from the list. Already generated workouts remain — they are independent of the template. But you won't be able to generate new workouts from this template.

Can I have an unlimited number of templates?

Yes, custom templates are not limited even in the free version.

Why are the weights in the preview different from after generating?

The preview uses fictional 1RM values (100 kg bench, etc.). After generating, weights are calculated from your actual maxes.

Can I combine multiple templates?

Yes. When generating, if workouts overlap with existing ones, you can choose "Merge" — exercises will be added to the existing workout.

How do I share a template with a friend?

Two ways: export as JSON and send the file, or publish on the Marketplace and tell them the name.