Web Editor

This tool allows you to quickly build your weightlifting programs, ensure you have proper weekly volume per muscle group, and balance it with the time you spend in a gym. You can build multi-week programs, plan your mesocycles, deload weeks, testing 1RM weeks, and see the weekly undulation of volume and intensity of each exercise on a graph.

Set the program name, create weeks and days, type the list of exercises for each day, putting each exercise on a new line, along with the number of sets and reps after slash (

/
) character, like this:

Squat / 3x3-5 Romanian Deadlift / 3x8

Autocomplete will help you with the exercise names. You can also create custom exercises if they're missing in the library.

On the right you'll see Weekly Stats, where you can see the number of sets per week per muscle group, whether you're in the recommended range (indicated by color), strength/hypertrophy split, and if you hover a mouse over the numbers - you'll see what exercises contribute to that number, and how much.

The exercise syntax supports RPEs , percentage of 1RM, rest timers, various progressive overload types, etc. Read more about the features in the docs!

When you're done, you can convert this program to Liftosaur program, and run what you planned in the gym, using the Liftosaur app!

To use this program:
  • Install Liftosaur app
  • Copy the link to this program by clicking on below
  • Import the link in the app, on the Choose Program screen.
Download on the App Store
Get it on Google Play

04:25
///***Muscle Group IDs***/
/// 01 => Chest
/// 02 => Triceps
/// 03 => Back & Rear Delts
/// 04 => Biceps
/// 05 => Calves
/// 06 => Quads
/// 07 => Hamstrings
/// 08 => Front & Side Delts
/// 09 => Abs
/// 10 => Glutes

/// Full tag is created by combining digits from:
/// Day (1-2 digits) & Muscle Group ID (2-digits) & Index (2 digits, 0-based)
/// to create 5-6 digit long unique tag.
///
/// Ex:
/// 3 Quads exercises on day 4 would have tags:
/// 40600, 40601, 40602
/// 4 => 4th day of week
/// 06 => Quads Muscle Group ID
/// 00, 01, 02 => Index of exercise for muscle group in that day

///*****PROGRAM LOGIC*****///
tLogic: Squat[1-3] / used: none / 10+x5 / 86.53% / warmup: 1x10 50%, 1x6 75%, 1x3 110% / update: custom() {~
/// Minimum reps for any set to be in the hypertrophy range (based on RP
/// guidelines of about 5-30 reps between 3-0 RIR for hypertrophy as of
/// early 2024)
var.MIN_HYP_REPS = 5

/// Automatic down sets variables
var.AUTO_DOWN_SET_MODE_DISABLED = 0 /// Don't create any down sets
var.AUTO_DOWN_SET_MODE_HYP = 1 /// Create when near bottom of hypertrophy rep range (defined as var.MIN_HYP_REPS+1)
var.AUTO_DOWN_SET_MODE_TARGET = 2 /// Create when at bottom of target rep range (i.e. state.targetMinReps)
var.AUTO_DOWN_SET_PERCENTAGE = 0.80 /// Percentage of last completed set working weight to use for down set

03:40
Pull Up, Bodyweight[1, 1-3] / ...tLogic: Squat / 100lb / id: tags(20300) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 5, targetMaxReps: 10, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating: 0, rateGroup: 0, ratingIndex: 0, numRatingExercises: 0, lastIncrement: 0lb, numSets: 1, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Seated Row, Cable[2, 1-3] / ...tLogic: Squat / warmup: 1x8 65% / 100lb / id: tags(20301) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 5, targetMaxReps: 10, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating: 0, rateGroup: 0, ratingIndex: 0, numRatingExercises: 0, lastIncrement: 0lb, numSets: 1, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Face Pull, Cable[3, 1-3] / ...tLogic: Squat / warmup: none / 10lb / id: tags(20302) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 10, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 503, ratingIndex: 0, numRatingExercises: 3, lastIncrement: 0lb, numSets: 1, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Hammer Curl, Cable[4, 1-3] / ...tLogic: Squat / warmup: none / 10lb / id: tags(20400) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 8, targetMaxReps: 12, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating: 0, rateGroup: 0, ratingIndex: 0, numRatingExercises: 0, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Bicep Curl, Cable[5, 1-3] / ...tLogic: Squat / warmup: none / 10lb / id: tags(20401) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 10, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 504, ratingIndex: 0, numRatingExercises: 2, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

04:25
Squat, Barbell[1, 1-3] / ...tLogic: Squat / 100lb / id: tags(30600) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 5, targetMaxReps: 10, startNumSets: 2, type: 1, deloadWeightRatio: 0.6, deloadRepsRatio: 1, deloadSetsRatio: 1, rating: 0, rateGroup: 0, ratingIndex: 0, numRatingExercises: 0, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Split Squat, Dumbbell[2, 1-3] / ...tLogic: Squat / warmup: none / 100lb / id: tags(30601) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 8, targetMaxReps: 12, startNumSets: 2, type: 1, deloadWeightRatio: 0.6, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 606, ratingIndex: 0, numRatingExercises: 1, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Standing Calf Raise, Leverage Machine[3, 1-3] / ...tLogic: Squat / warmup: 1x8 65% / 100lb / id: tags(30500) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 8, targetMaxReps: 12, startNumSets: 2, type: 1, deloadWeightRatio: 0.6, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 605, ratingIndex: 0, numRatingExercises: 2, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Lying Leg Curl, Leverage Machine[4, 1-3] / ...tLogic: Squat / warmup: 1x8 65% / 10lb / id: tags(30700) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 12, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.6, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 607, ratingIndex: 0, numRatingExercises: 1, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Hip Abductor, Leverage Machine[5, 1-3] / ...tLogic: Squat / warmup: none / 10lb / id: tags(31000) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 10, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 610, ratingIndex: 0, numRatingExercises: 1, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Hanging Leg Raise, Bodyweight[6, 1-3] / ...tLogic: Squat / warmup: none / 0lb / id: tags(30900) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 8, targetMaxReps: 12, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 109, ratingIndex: 0, numRatingExercises: 1, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

04:25
Incline Bench Press, Smith Machine[1, 1-3] / ...tLogic: Squat / 100lb / id: tags(40100) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 8, targetMaxReps: 12, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating: 0, rateGroup: 0, ratingIndex: 0, numRatingExercises: 0, lastIncrement: 0lb, numSets: 1, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Chest Fly, Leverage Machine[2, 1-3] / ...tLogic: Squat / warmup: 1x8 65% / 100lb / id: tags(40101) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 12, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 101, ratingIndex: 0, numRatingExercises: 2, lastIncrement: 0lb, numSets: 1, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Triceps Dip, Bodyweight[3, 1-3] / ...tLogic: Squat / warmup: none / 100lb / id: tags(40200) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 8, targetMaxReps: 12, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating: 0, rateGroup: 0, ratingIndex: 0, numRatingExercises: 0, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Triceps Extension, Dumbbell[4, 1-3] / ...tLogic: Squat / warmup: none / 10lb / id: tags(40201) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 12, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 102, ratingIndex: 0, numRatingExercises: 1, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Upright Row, Barbell[5, 1-3] / ...tLogic: Squat / warmup: none / 10lb / id: tags(40800) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 8, targetMaxReps: 12, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 0.5, deloadSetsRatio: 0.5, rating: 0, rateGroup: 0, ratingIndex: 0, numRatingExercises: 0, lastIncrement: 0lb, numSets: 1, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Lateral Raise, Dumbbell[6, 1-3] / ...tLogic: Squat / warmup: none / 10lb / id: tags(40801) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 12, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 0.5, deloadSetsRatio: 0.5, rating+: 0, rateGroup: 108, ratingIndex: 0, numRatingExercises: 1, lastIncrement: 0lb, numSets: 1, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

04:25
Seated Row, Leverage Machine[1, 1-3] / ...tLogic: Squat / 100lb / id: tags(50300) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 10, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating: 0, rateGroup: 0, ratingIndex: 0, numRatingExercises: 0, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Lat Pulldown, Cable[2, 1-3] / ...tLogic: Squat / warmup: 1x8 65% / 100lb / id: tags(50301) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 10, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 0.5, deloadSetsRatio: 0.5, rating: 0, rateGroup: 0, ratingIndex: 0, numRatingExercises: 0, lastIncrement: 0lb, numSets: 1, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Preacher Curl, EZ Bar[3, 1-3] / ...tLogic: Squat / warmup: none / 10lb / id: tags(50400) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 10, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.6, deloadRepsRatio: 0.5, deloadSetsRatio: 0.5, rating: 0, rateGroup: 0, ratingIndex: 0, numRatingExercises: 0, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Hammer Curl, Dumbbell[4, 1-3] / ...tLogic: Squat / warmup: none / 10lb / id: tags(50401) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 12, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.6, deloadRepsRatio: 0.5, deloadSetsRatio: 0.5, rating+: 0, rateGroup: 204, ratingIndex: 0, numRatingExercises: 2, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Reverse Fly, Leverage Machine[5, 1-3] / ...tLogic: Squat / warmup: none / 10lb / id: tags(50302) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 12, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 203, ratingIndex: 0, numRatingExercises: 3, lastIncrement: 0lb, numSets: 1, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Crunch, Leverage Machine[6, 1-3] / ...tLogic: Squat / warmup: none / 10lb / id: tags(50900) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 2, targetMinReps: 8, targetMaxReps: 12, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 309, ratingIndex: 0, numRatingExercises: 1, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

03:40
Romanian Deadlift, Barbell[1, 1-3] / ...tLogic: Squat / 100lb / id: tags(60700) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 5, targetMaxReps: 10, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 307, ratingIndex: 0, numRatingExercises: 1, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Hip Thrust, Barbell[2, 1-3] / ...tLogic: Squat / warmup: 1x8 65% / 100lb / id: tags(61000) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 8, targetMaxReps: 12, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 1, deloadSetsRatio: 1, rating+: 0, rateGroup: 310, ratingIndex: 0, numRatingExercises: 1, lastIncrement: 0lb, numSets: 2, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Calf Press on Leg Press, Leverage Machine[3, 1-3] / ...tLogic: Squat / warmup: 1x8 65% / 100lb / id: tags(60500) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 10, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 0.5, deloadSetsRatio: 0.5, rating: 0, rateGroup: 0, ratingIndex: 0, numRatingExercises: 0, lastIncrement: 0lb, numSets: 1, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Seated Calf Raise, Leverage Machine[4, 1-3] / ...tLogic: Squat / warmup: none / 100lb / id: tags(60501) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 12, targetMaxReps: 15, startNumSets: 1, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 0.5, deloadSetsRatio: 0.5, rating+: 0, rateGroup: 305, ratingIndex: 0, numRatingExercises: 2, lastIncrement: 0lb, numSets: 1, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Leg Extension, Leverage Machine[5, 1-3] / ...tLogic: Squat / warmup: 1x8 65% / 100lb / id: tags(60600) / update: custom() { ...tLogic: Squat } / progress: custom(increment: 5lb, progressType: 1, targetMinReps: 12, targetMaxReps: 15, startNumSets: 2, type: 1, deloadWeightRatio: 0.5, deloadRepsRatio: 0.5, deloadSetsRatio: 0.5, rating+: 0, rateGroup: 306, ratingIndex: 0, numRatingExercises: 2, lastIncrement: 0lb, numSets: 1, setsModifier: 0, mesoWeek: 1, targetRpe: 7, autoDownSetMode: 1) { ...tLogic: Squat }

Week Stats

Total Sets: 340
Strength Sets: 340, 100%
Hypertrophy Sets: 0, 0%
Upper Sets: 210 (210s), 4d
Lower Sets: 100 (100s), 2d
Core Sets: 30 (30s), 3d
Push Sets: 100 (100s), 2d
Pull Sets: 110 (110s), 3d
Legs Sets: 100 (100s), 2d
Shoulders: 115↓ (115s), 4d
Triceps: 45↓ (45s), 2d
Back: 75↓ (75s), 5d
Abs: 45↓ (45s), 4d
Glutes: 60↓ (60s), 2d
Hamstrings: 35↓ (35s), 2d
Quadriceps: 40↓ (40s), 2d
Chest: 80↓ (80s), 4d
Biceps: 80↓ (80s), 4d
Calves: 50↓ (50s), 2d
Forearms: 60↓ (60s), 3d