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.
{"exportedProgram":{"customExercises":{"zzmdtawq":{"name":"Standing leg curl","types":["pull","legs","lower"],"id":"zzmdtawq","isDeleted":false,"vtype":"custom_exercise","meta":{"synergistMuscles":["Gastrocnemius","Sartorius","Gluteus Maximus"],"targetMuscles":["Hamstrings"],"bodyParts":[],"sortedEquipment":[]}},"cfwbjdqz":{"name":"Suitcase Carry","types":["core","upper","lower"],"id":"cfwbjdqz","isDeleted":false,"vtype":"custom_exercise","meta":{"synergistMuscles":["Rectus Abdominis","Erector Spinae","Trapezius Upper Fibers","Wrist Flexors","Brachioradialis","Gluteus Medius","Deltoid Lateral"],"targetMuscles":["Obliques"],"bodyParts":[],"sortedEquipment":[]}},"sxriqjik":{"name":"Standing leg extension, cable","types":["push","legs","lower"],"id":"sxriqjik","isDeleted":false,"vtype":"custom_exercise","meta":{"synergistMuscles":["Tensor Fasciae Latae","Sartorius","Rectus Abdominis"],"targetMuscles":["Quadriceps"],"bodyParts":[],"sortedEquipment":[]}},"mipnldvv":{"name":"Farmer's Carry","types":["core","upper","lower"],"id":"mipnldvv","isDeleted":false,"vtype":"custom_exercise","meta":{"synergistMuscles":["Obliques","Gluteus Maximus","Gluteus Medius","Quadriceps","Gastrocnemius","Soleus","Deltoid Lateral","Trapezius Middle Fibers"],"targetMuscles":["Trapezius Upper Fibers","Wrist Flexors","Brachioradialis","Rectus Abdominis","Erector Spinae"],"bodyParts":[],"sortedEquipment":[]}},"lytdwypt":{"name":"Pallof Press","types":["core","upper"],"id":"lytdwypt","isDeleted":false,"vtype":"custom_exercise","meta":{"synergistMuscles":["Rectus Abdominis","Erector Spinae"],"targetMuscles":["Obliques"],"bodyParts":[],"sortedEquipment":[]}}},"program":{"deletedExercises":[],"planner":{"name":"My PPL","vtype":"planner","weeks":[{"name":"Week 1","days":[{"name":"Monday - Pull (Deadlift)","exerciseText":"// Conventional. Brace hard, push the floor away. Reset between reps — no touch-and-go.\nDeadlift / 1x5 / 280lb / progress: lp(10lb, 1, 0, 10%)\n// Standing cable crunch. Face away from the stack, rope behind your head. Crunch down by flexing your abs — don't pull with your arms.\nCable Crunch / 3x17 / 50lb / warmup: none / progress: dp(2.5lb, 15, 18)\n// Full ROM — chest to the bar, control the negative. Squeeze shoulder blades together at the bottom.\nLat Pulldown / 3x10 / 160lb / warmup: none / progress: dp(5lb, 8, 12)\n// Drive elbows back, squeeze at full contraction. Keep chest against the pad.\nSeated Row / 3x10 / 160lb / warmup: none / progress: dp(5lb, 8, 12)\n// Pull to the forehead, not the chin. Separate the rope at the top and hold for 1 second.\nFace Pull, Cable / 3x16 / 67.5lb / warmup: none / progress: dp(2.5lb, 15, 17)\n// Neutral grip, no swinging. Squeeze at the top, slow 2-second negative.\nHammer Curl / 4x11 / 30lb / warmup: none / progress: dp(5lb, 8, 12)\n// 80lb per hand. Walk tall, shoulders packed, brace against the forward pull.\nFarmer's Carry / 1x40 / 160lb / warmup: none / progress: custom() {~\n if (completedReps >= reps) {\n reps[1:*:*:*] += 4\n reps[2:*:*:*] += 4\n reps[3:*:*:*] += 4\n }\n~}"},{"name":"Tuesday - Push (Bench)","exerciseText":"// **Rack: hole 9. Safety bar.** Arch, retract scaps, feet planted. Touch chest, pause briefly, press. Last set is AMRAP.\nBench Press / 4x5, 1x5+ / 166.5lb / progress: lp(5lb, 1, 0, 10%)\n// **Safety bar.** Lighter volume work. Strict press — no leg drive. Brace core throughout.\nacc: Overhead Press / 3x10 / 95lb / warmup: none / progress: dp(5lb, 8, 12)\n// **Bench: second hole.** 30-45 degree incline. Touch upper chest, full lockout. Control the dumbbells on the way down.\nIncline Bench Press, Dumbbell / 3x12 / 45lb / warmup: none / progress: dp(5lb, 8, 12)\n// Overhead dumbbell. Keep upper arms vertical — only the forearms move.\nTriceps Extension / 3x9 / 50lb / warmup: none / progress: dp(5lb, 8, 12)\n// Elbows pinned to sides. Full extension at the bottom, squeeze the contraction at the top.\nTriceps Pushdown / 3x9 / 72.5lb / warmup: none / progress: dp(2.5lb, 8, 10)\n// Cable at chest height. Press straight out and hold 2 seconds — resist the pull, don't let your torso rotate.\nPallof Press / 3x14 / 20lb / warmup: none / progress: dp(2.5lb, 12, 14)\n// Single arm, cable at low position. Lead with the pinky, raise to shoulder height. Constant tension throughout.\nLateral Raise, Cable / 3x11 / 7.5lb / warmup: none / progress: dp(2.5lb, 10, 12)"},{"name":"Wednesday - Legs (Bilateral)","exerciseText":"// **Rack: hole 14. Safety bar.** High bar, hit depth. Brace before each rep. Keep the chest up and knees tracking over toes.\nSquat / 5x5 / 215lb / id: tags(100) / progress: custom(successes: 0, failures: 0, sqWeight: 215lb) {~\n if (completedReps >= reps) {\n state.successes += 1\n state.failures = 0\n if (state.successes >= 1) {\n state.sqWeight += 5lb\n weights = state.sqWeight\n state.successes = 0\n }\n } else {\n state.failures += 1\n state.successes = 0\n if (state.failures >= 3) {\n state.sqWeight = roundWeight(state.sqWeight - state.sqWeight * 10 / 100)\n weights = state.sqWeight\n state.failures = 0\n }\n }\n state[200].calfWeight = state.sqWeight\n~}\n// **Rack: hole 14. Safety bar.** Same barbell setup as squats — weight tracks automatically. Full ROM calf raise, pause at the top.\nStanding Calf Raise, Barbell / 3x10 / 215lb / warmup: none / id: tags(200) / progress: custom(calfWeight: 215lb) {~\n weights = state.calfWeight\n~}\n// **Safety bar.** Light weight, hinge pattern. Push hips back, slight knee bend. Don't round the lower back.\nGood Morning / 3x12 / 95lb / warmup: none / progress: dp(5lb, 8, 12)\n// Drive through the heels, squeeze glutes hard at lockout. Full hip extension at the top.\nHip Thrust / 3x10 / 140lb / warmup: none / id: tags(300) / progress: custom(htWeight: 140lb) {~\n if (completedReps >= reps) {\n if (reps[1] >= 12) {\n state.htWeight += 5lb\n weights = state.htWeight\n reps = 8\n } else {\n reps += 1\n }\n }\n state[400].rdlWeight = state.htWeight\n~}\n// Hinge at the hips, slight knee bend. Bar stays close to the legs. Feel the stretch in the hamstrings. Same loaded barbell as the hip thrust — weight tracks automatically.\nRomanian Deadlift, Barbell / 3x12 / 140lb / warmup: none / id: tags(400) / progress: custom(rdlWeight: 140lb) {~\n weights = state.rdlWeight\n~}\n// Slow and controlled on the hyperextension bench. Squeeze glutes at the top, hold for 1 second.\nBack Extension, Bodyweight / 3x14 / 0lb / warmup: none / progress: dp(5lb, 12, 15)\n// Standing cable crunch. Face away from the stack, rope behind your head. Crunch down by flexing your abs — don't pull with your arms.\nCable Crunch / 3x17 / 50lb / warmup: none"},{"name":"Thursday - Pull (Row)","exerciseText":"// Hinge to ~45 degrees, pull to the lower chest. Squeeze at the top. Last set is AMRAP.\nBent Over Row / 4x5, 1x5+ / 165lb / progress: lp(5lb, 1, 0, 10%)\n// Full ROM — chest to the bar, control the negative. Squeeze shoulder blades together at the bottom.\nLat Pulldown / 3x10 / 160lb / warmup: none\n// Drive elbows back, squeeze at full contraction. Keep chest against the pad.\nSeated Row / 3x10 / 160lb / warmup: none\n// Pull to the forehead, not the chin. Separate the rope at the top and hold for 1 second.\nFace Pull, Cable / 3x16 / 67.5lb / warmup: none\n// Cable at chest height. Press straight out and hold 2 seconds — resist the pull, don't let your torso rotate.\nPallof Press / 3x14 / 20lb / warmup: none\n// Supinate at the top, squeeze the bicep. Controlled negative, no swinging.\nBicep Curl / 4x10 / 30lb / warmup: none / progress: dp(5lb, 8, 12)\n// One dumbbell, one side. 1 rep = 1 step, reps per side. Stand tall, shoulders level — don't lean toward the weight.\nSuitcase Carry / 2x40 / 80lb / warmup: none / progress: custom() {~\n if (completedReps >= reps) {\n reps[1:*:*:*] += 4\n reps[2:*:*:*] += 4\n reps[3:*:*:*] += 4\n }\n~}"},{"name":"Friday - Push (OHP)","exerciseText":"// **Safety bar.** Strict press — no leg drive. Brace hard, press straight up, move head through at the top.\nOverhead Press / 5x5 / 110lb / progress: lp(5lb, 1, 0, 10%)\n// **Rack: hole 9. Safety bar.** Lighter volume bench. Same cues as Tuesday — arch, scaps, control.\nacc: Bench Press / 3x12 / 135lb / warmup: none / progress: dp(5lb, 8, 12)\n// Overhead dumbbell. Keep upper arms vertical — only the forearms move.\nTriceps Extension / 3x9 / 50lb / warmup: none\n// Standing cable crossover. Set cables high, step forward, slight lean. Squeeze chest at the bottom, control the return.\nCable Crossover / 3x13 / 20lb / warmup: none / progress: dp(2.5lb, 12, 14)\n// Elbows pinned to sides. Full extension at the bottom, squeeze the contraction at the top.\nTriceps Pushdown / 3x9 / 72.5lb / warmup: none\n// Single arm, cable at low position. Lead with the pinky, raise to shoulder height. Constant tension throughout.\nLateral Raise, Cable / 3x11 / 7.5lb / warmup: none\n// Standing cable crunch. Face away from the stack, rope behind your head. Crunch down by flexing your abs — don't pull with your arms.\nCable Crunch / 3x17 / 50lb / warmup: none"},{"name":"Saturday - Legs (Unilateral)","exerciseText":"// **Safety bar.** High bar. Rear foot elevated, front shin vertical. Control the descent, drive through the front heel.\nSplit Squat, Barbell / 5x5 / 80lb / progress: lp(5lb, 1, 0, 10%)\n// Single leg, full contraction. Slow 2-second negative on each rep.\nStanding leg curl / 3x13 / 65lb / warmup: none / progress: dp(2.5lb, 12, 14)\n// Single leg, full extension. Hold the top for 1 second, slow negative.\nStanding leg extension, cable / 3x13 / 32.5lb / warmup: none / progress: dp(2.5lb, 12, 14)\n// Cable at chest height. Press straight out and hold 2 seconds — resist the pull, don't let your torso rotate.\nPallof Press / 3x14 / 20lb / warmup: none\n// Hip machine. Reps are per leg. Drive the working leg across the midline against the pad. Controlled return.\nHip Adductor / 3x11 / 150lb / warmup: none / superset: A / progress: dp(5lb, 8, 12)\n// Hip machine. Reps are per leg. Drive the working leg out to the side against the pad. Controlled return.\nSide Hip Abductor, Leverage Machine / 3x11 / 150lb / warmup: none / superset: A / progress: dp(5lb, 8, 12)\n// One dumbbell, one side. 1 rep = 1 step, reps per side. Stand tall, shoulders level — don't lean toward the weight.\nSuitcase Carry / 2x40 / 80lb / warmup: none"}]},{"name":"Week 2","days":[{"name":"Monday - Pull (Deadlift)","exerciseText":"Deadlift / 1x5 / 280lb\nCable Crunch / 3x17 / 50lb\nLat Pulldown / 3x10 / 160lb\nSeated Row / 3x10 / 160lb\nFace Pull, Cable / 3x16 / 67.5lb\nHammer Curl / 4x11 / 30lb\nFarmer's Carry / 1x40 / 160lb"},{"name":"Tuesday - Push (Bench)","exerciseText":"Bench Press / 4x5, 1x5+ / 166.5lb\nacc: Overhead Press / 3x10 / 95lb\nIncline Bench Press, Dumbbell / 3x12 / 45lb\nTriceps Extension / 3x9 / 50lb\nTriceps Pushdown / 3x9 / 72.5lb\nPallof Press / 3x14 / 20lb\nLateral Raise, Cable / 3x11 / 7.5lb"},{"name":"Wednesday - Legs (Bilateral)","exerciseText":"Squat / 5x5 / 215lb\nStanding Calf Raise, Barbell / 3x10 / 215lb\nGood Morning / 3x12 / 95lb\nHip Thrust / 3x10 / 140lb\nRomanian Deadlift, Barbell / 3x12 / 140lb\nBack Extension, Bodyweight / 3x14 / 0lb\nCable Crunch / 3x17 / 50lb"},{"name":"Thursday - Pull (Row)","exerciseText":"Bent Over Row / 4x5, 1x5+ / 165lb\nLat Pulldown / 3x10 / 160lb\nSeated Row / 3x10 / 160lb\nFace Pull, Cable / 3x16 / 67.5lb\nPallof Press / 3x14 / 20lb\nBicep Curl / 4x10 / 30lb\nSuitcase Carry / 2x40 / 80lb"},{"name":"Friday - Push (OHP)","exerciseText":"Overhead Press / 5x5 / 110lb\nacc: Bench Press / 3x12 / 135lb\nTriceps Extension / 3x9 / 50lb\nCable Crossover / 3x13 / 20lb\nTriceps Pushdown / 3x9 / 72.5lb\nLateral Raise, Cable / 3x11 / 7.5lb\nCable Crunch / 3x17 / 50lb"},{"name":"Saturday - Legs (Unilateral)","exerciseText":"Split Squat, Barbell / 5x5 / 80lb\nStanding leg curl / 3x13 / 65lb\nStanding leg extension, cable / 3x13 / 32.5lb\nPallof Press / 3x14 / 20lb\nHip Adductor / 3x11 / 150lb / superset: A\nSide Hip Abductor, Leverage Machine / 3x11 / 150lb / superset: A\nSuitcase Carry / 2x40 / 80lb\n/// Deload week — same sets and reps as work weeks for form practice. Mains at ~60% working weight, accessories at ~70%. AMRAPs converted to fixed sets. Warmups auto-scale to the deload working weights."}]},{"name":"Week 3 - Deload","days":[{"name":"Monday - Pull (Deadlift)","exerciseText":"// Conventional. Brace hard, push the floor away. Reset between reps — no touch-and-go. **Light weight — focus on perfect bar path.**\nDeadlift / 1x5 / 170lb / progress: none\n// Standing cable crunch. Face away from the stack, rope behind your head. Crunch down by flexing your abs — don't pull with your arms.\nCable Crunch / 3x17 / 35lb / warmup: none / progress: none\n// Full ROM — chest to the bar, control the negative. Squeeze shoulder blades together at the bottom.\nLat Pulldown / 3x10 / 110lb / warmup: none / progress: none\n// Drive elbows back, squeeze at full contraction. Keep chest against the pad.\nSeated Row / 3x10 / 110lb / warmup: none / progress: none\n// Pull to the forehead, not the chin. Separate the rope at the top and hold for 1 second.\nFace Pull, Cable / 3x16 / 47.5lb / warmup: none / progress: none\n// Neutral grip, no swinging. Squeeze at the top, slow 2-second negative.\nHammer Curl / 4x11 / 20lb / warmup: none / progress: none\n// 50lb per hand. Walk tall, shoulders packed, brace against the forward pull.\nFarmer's Carry / 1x40 / 100lb / warmup: none / progress: none"},{"name":"Tuesday - Push (Bench)","exerciseText":"// **Rack: hole 9. Safety bar.** Arch, retract scaps, feet planted. Touch chest, pause briefly, press. **Light weight — clean reps, no AMRAP.**\nBench Press / 5x5 / 100lb / progress: none\n// **Safety bar.** Lighter volume work. Strict press — no leg drive. Brace core throughout.\nacc: Overhead Press / 3x10 / 60lb / warmup: none / progress: none\n// **Bench: second hole.** 30-45 degree incline. Touch upper chest, full lockout. Control the dumbbells on the way down.\nIncline Bench Press, Dumbbell / 3x12 / 30lb / warmup: none / progress: none\n// Overhead dumbbell. Keep upper arms vertical — only the forearms move.\nTriceps Extension / 3x9 / 35lb / warmup: none / progress: none\n// Elbows pinned to sides. Full extension at the bottom, squeeze the contraction at the top.\nTriceps Pushdown / 3x9 / 50lb / warmup: none / progress: none\n// Cable at chest height. Press straight out and hold 2 seconds — resist the pull, don't let your torso rotate.\nPallof Press / 3x14 / 15lb / warmup: none / progress: none\n// Single arm, cable at low position. Lead with the pinky, raise to shoulder height. Constant tension throughout.\nLateral Raise, Cable / 3x11 / 5lb / warmup: none / progress: none"},{"name":"Wednesday - Legs (Bilateral)","exerciseText":"// **Rack: hole 14. Safety bar.** High bar, hit depth. Brace before each rep. Keep the chest up and knees tracking over toes. **Light weight — own every rep.**\nSquat / 5x5 / 130lb / progress: none\n// **Rack: hole 14. Safety bar.** Full ROM calf raise, pause at the top.\nStanding Calf Raise, Barbell / 3x10 / 130lb / warmup: none / progress: none\n// **Safety bar.** Light weight, hinge pattern. Push hips back, slight knee bend. Don't round the lower back.\nGood Morning / 3x12 / 65lb / warmup: none / progress: none\n// Drive through the heels, squeeze glutes hard at lockout. Full hip extension at the top.\nHip Thrust / 3x10 / 95lb / warmup: none / progress: none\n// Hinge at the hips, slight knee bend. Bar stays close to the legs. Feel the stretch in the hamstrings. Same loaded barbell as the hip thrust.\nRomanian Deadlift, Barbell / 3x12 / 95lb / warmup: none / progress: none\n// Slow and controlled on the hyperextension bench. Squeeze glutes at the top, hold for 1 second.\nBack Extension, Bodyweight / 3x14 / 0lb / warmup: none / progress: none\n// Standing cable crunch. Face away from the stack, rope behind your head. Crunch down by flexing your abs — don't pull with your arms.\nCable Crunch / 3x17 / 35lb / warmup: none / progress: none"},{"name":"Thursday - Pull (Row)","exerciseText":"// Hinge to ~45 degrees, pull to the lower chest. Squeeze at the top. **Light weight — clean reps, no AMRAP.**\nBent Over Row / 5x5 / 100lb / progress: none\n// Full ROM — chest to the bar, control the negative. Squeeze shoulder blades together at the bottom.\nLat Pulldown / 3x10 / 110lb / warmup: none / progress: none\n// Drive elbows back, squeeze at full contraction. Keep chest against the pad.\nSeated Row / 3x10 / 110lb / warmup: none / progress: none\n// Pull to the forehead, not the chin. Separate the rope at the top and hold for 1 second.\nFace Pull, Cable / 3x16 / 47.5lb / warmup: none / progress: none\n// Cable at chest height. Press straight out and hold 2 seconds — resist the pull, don't let your torso rotate.\nPallof Press / 3x14 / 15lb / warmup: none / progress: none\n// Supinate at the top, squeeze the bicep. Controlled negative, no swinging.\nBicep Curl / 4x10 / 20lb / warmup: none / progress: none\n// One dumbbell, one side. 1 rep = 1 step, reps per side. Stand tall, shoulders level — don't lean toward the weight.\nSuitcase Carry / 2x40 / 60lb / warmup: none / progress: none"},{"name":"Friday - Push (OHP)","exerciseText":"// **Safety bar.** Strict press — no leg drive. Brace hard, press straight up, move head through at the top. **Light weight — perfect bar path.**\nOverhead Press / 5x5 / 65lb / progress: none\n// **Rack: hole 9. Safety bar.** Lighter volume bench. Same cues as Tuesday — arch, scaps, control.\nacc: Bench Press / 3x12 / 95lb / warmup: none / progress: none\n// Overhead dumbbell. Keep upper arms vertical — only the forearms move.\nTriceps Extension / 3x9 / 35lb / warmup: none / progress: none\n// Standing cable crossover. Set cables high, step forward, slight lean. Squeeze chest at the bottom, control the return.\nCable Crossover / 3x13 / 15lb / warmup: none / progress: none\n// Elbows pinned to sides. Full extension at the bottom, squeeze the contraction at the top.\nTriceps Pushdown / 3x9 / 50lb / warmup: none / progress: none\n// Single arm, cable at low position. Lead with the pinky, raise to shoulder height. Constant tension throughout.\nLateral Raise, Cable / 3x11 / 5lb / warmup: none / progress: none\n// Standing cable crunch. Face away from the stack, rope behind your head. Crunch down by flexing your abs — don't pull with your arms.\nCable Crunch / 3x17 / 35lb / warmup: none / progress: none"},{"name":"Saturday - Legs (Unilateral)","exerciseText":"// **Safety bar.** High bar. Rear foot elevated, front shin vertical. Control the descent, drive through the front heel.\nSplit Squat, Barbell / 5x5 / 50lb / progress: none\n// Single leg, full contraction. Slow 2-second negative on each rep.\nStanding leg curl / 3x13 / 45lb / warmup: none / progress: none\n// Single leg, full extension. Hold the top for 1 second, slow negative.\nStanding leg extension, cable / 3x13 / 22.5lb / warmup: none / progress: none\n// Cable at chest height. Press straight out and hold 2 seconds — resist the pull, don't let your torso rotate.\nPallof Press / 3x14 / 15lb / warmup: none / progress: none\n// Hip machine. Reps are per leg. Drive the working leg across the midline against the pad. Controlled return.\nHip Adductor / 3x11 / 105lb / warmup: none / superset: A / progress: none\n// Hip machine. Reps are per leg. Drive the working leg out to the side against the pad. Controlled return.\nSide Hip Abductor, Leverage Machine / 3x11 / 105lb / warmup: none / superset: A / progress: none\n// One dumbbell, one side. 1 rep = 1 step, reps per side. Stand tall, shoulders level — don't lean toward the weight.\nSuitcase Carry / 2x40 / 60lb / warmup: none / progress: none"}]}]},"exercises":[],"vtype":"program","days":[],"deletedDays":[],"url":"https://www.reddit.com/r/Fitness/comments/37ylk5/a_linear_progression_based_ppl_program_for/","isMultiweek":true,"name":"My PPL","weeks":[],"nextDay":10,"shortDescription":"Beginner Push/Pull/Legs split","clonedAt":1771632143011,"description":"PPL program for beginners balancing \"bro\" muscles, but also giving enough intensity in the main movements","tags":[],"deletedWeeks":[],"author":"/u/metallicadpa","id":"ccazunpo"},"version":"20260304084247","settings":{"timers":{"warmup":90,"workout":180,"reminder":900},"units":"lb"}},"shouldSyncProgram":false,"isMobile":false,"revisions":[]}