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.
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.
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.
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.
| Tag | When to use |
|---|---|
| Beginner | Program suitable for complete beginners |
| Intermediate | Requires basic training experience |
| Advanced | For experienced athletes |
| Strength | Focused on maximal strength (low reps, high intensity) |
| Hypertrophy | Focused on muscle growth (moderate reps, higher volume) |
| Endurance | Muscular 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.
| Type | Description | Example |
|---|---|---|
| Same Every Week | You repeat the same workouts every week | PPL, Upper/Lower, PHUL |
| Alternating A/B | Two (or three) workouts alternate | StrongLifts 5×5, Starting Strength |
| Varying Weeks | Each week in the cycle has different percentages/reps | Wendler 5/3/1, TB Operator |
| Heavy/Medium/Light | 3 days with varying intensity | Texas Method, Madcow |
| Ladders | Sets with ascending reps (1,2,3...) | Rite of Passage, DFW |
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.
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).
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%.
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
- Tap the tab for the day where you want to add the exercise (e.g. "Push" or "Day A")
- Tap the + Add Exercise button
- Search for the exercise by name or browse categories
- 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.
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:
| Format | Meaning | Example |
|---|---|---|
5 | Exactly 5 repetitions | Bench Press 5×5 |
5+ | At least 5, do as many as possible (AMRAP) | Wendler top set |
8-12 | Range — choose based on how you feel | Hypertrophy assistance |
1+1 | One rep on each side (unilateral) | Turkish Get-Up |
max | Maximum 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
| Type | When to use |
|---|---|
| MAIN | Main working sets (default) |
| WARMUP | Warm-up sets with lighter weight |
| FSL | First 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.
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.
| Source | Description | Example |
|---|---|---|
| % of Training Max | Percentage of TM (= 1RM × TM%). Most common for periodized programs. | 85% TM = with 1RM 100 kg and TM 90%: 76.5 kg |
| % of 1RM | Percentage directly from 1RM (without TM conversion). For programs without the TM concept. | 80% 1RM = 80 kg |
| Fixed weight | A specific weight in kg. Does not change with 1RM. | Face pulls 20 kg |
| Bodyweight | Exercises using your own body weight. | Pull-ups, push-ups, dips |
| From user input | Weight entered by the user when generating. Ideal for kettlebells, where the weight depends on available KBs. | KB swing with "your KB weight" |
| % of top set | Percentage of the heaviest set (ramp sets). | Madcow: 5 sets with ascending % of top set |
| Derived | Automatically 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.
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
| Type | When evaluated | Example programs |
|---|---|---|
| None | Weights don't change automatically | One-off programs, deload |
| Per workout | After each workout | StrongLifts (+2.5 kg after 5×5), Starting Strength |
| Per cycle | After completing the entire cycle | Wendler (+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.
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
| Action | Description |
|---|---|
| INCREMENT_WEIGHT | Add fixed weight (per workout progression) |
| INCREMENT_TM | Increase Training Max (per cycle progression) |
| NO_CHANGE | Keep the same |
Action on failure
| Action | Description |
|---|---|
| REPEAT_WEIGHT | Repeat the same weight next time |
| DELOAD_PERCENT | Reduce weight by X% (typically after repeated failure) |
| NO_CHANGE | Keep 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 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.
In the workout, supersets are displayed connected by a bracket and alternate automatically.
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)
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.
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.
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).
| Type | Description | Example |
|---|---|---|
| None | Weights don't change within the cycle | Wendler (same % throughout the cycle, only increases between cycles) |
| Every week | +X kg every week | PHUL (+2.5% per week) |
| Every N weeks | +X kg every 2 (or 3) weeks | KB & Barbell DUP (+2.5 kg every 2 weeks) |
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)
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.
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
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)
| Exercise | Sets | Reps | Weight |
|---|---|---|---|
| Bench Press | 4 | 5 | 85% TM |
| Overhead Press | 3 | 8 | 70% TM |
| Incline DB Press | 3 | 10 | Fixed 30 kg |
| Tricep Pushdowns | 3 | 12 | Fixed 25 kg |
| Lateral Raises | 3 | 15 | Fixed 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)
| Exercise | Sets | Reps | Weight | Type |
|---|---|---|---|---|
| OHP | 1 | 5 | 40% TM | WARMUP |
| OHP | 1 | 5 | 50% TM | WARMUP |
| OHP | 1 | 5 | 65% TM | MAIN |
| OHP | 1 | 5 | 75% TM | MAIN |
| OHP | 1 | 5+ | 85% TM | MAIN, AMRAP |
| OHP | 5 | 10 | 50% TM | FSL (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
| Exercise | Sets×Reps | Weight |
|---|---|---|
| Back Squat | 3×5 | 80% 1RM |
| Bench Press | 3×5 | 80% 1RM |
| Barbell Rows | 3×5 | 80% 1RM |
Workout B
| Exercise | Sets×Reps | Weight |
|---|---|---|
| Back Squat | 3×5 | 80% 1RM |
| Overhead Press | 3×5 | 80% 1RM |
| Deadlift | 1×5 | 85% 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.
- In "My Templates", tap the ⋮ (kebab menu) on the template
- Select Export JSON
- 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
- On the templates screen, tap 📁 Import from file
- Select a .json file
- Review the template preview
- Tap Import
From clipboard
- Copy the JSON text to your clipboard (Ctrl+C / long press → Copy)
- In IronPen, tap 📋 Import from clipboard
- 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:
- 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."
- Ask for JSON format: "Generate it as an IronPen JSON template."
- Copy the resulting JSON
- In IronPen: 📋 Import from clipboard
Marketplace
The Marketplace is a place where you can download templates from other users and share your own.
Downloading
- Open the Marketplace from the templates screen
- Browse or filter (by type, days, tags)
- Tap a template for details and reviews
- 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.