Skip to content
For the program runner

Your block, as a real graph.

Most apps store your block as a string — "Hypertrophy 1," "5/3/1 week 3," whatever you type. flexRep models it as Program → Mesocycle → Microcycle → Routine → exercises → per-set prescriptions. Every analytic reads from the graph. Block comparison knows what week belonged where. Stall detection knows when a deload happened. You see the inline target on every receipt row.

The pitch

Where flexRep meets you.

You run blocks. You don't need the app to design them. You need the app to know which week is week three of which mesocycle, what was prescribed, what you actually did, and what changed between this block and the last one.

Six-layer graph. No strings.

Program. Mesocycle. Microcycle. Routine. Routine exercise. Per-set prescription. Each one is a real entity with a stable identifier — and every analytic touches the graph, not a free-text field on a workout row.

Prescription stamps onto every set.

When you log, the target gets stamped in. The receipt shows the delta inline — "Bench 5 × 230 · target 5 × 225 · +5." Green when you exceed, red when you miss. The number tells the truth before you read it.

Block Comparison — two mesos, side by side.

Pick any two mesocycles, two date ranges, or last-vs-prior. See the deltas: top e1RM per exercise, total volume, average RPE, fractional muscle distribution. Two taps from Insights.

The graph, made literal

Hypertrophy 1 · Mesocycle 2 · Week 5 · deload.

Every layer of the program is a real entity, indented under the one above it. The deload week reads in italics. The prescribed set shows "target 5 × 225" inline; the logged set lands underneath as a +5 green delta. Two taps from Insights opens the same view for any prior block.

Program · Hypertrophy 1
Mesocycle · Block 2 of 3
Microcycle · Week 5 · deload
Routine · Upper A
Bench Press · target 5 × 225
Logged · 5 × 230 +5
Your highlight reel

Five features doing real work for you.

Out of the The Program Runner's thirty-six daily features, these are the ones that earn their seat at the rack.

01 / 05

Programs as a typed graph

Program → Mesocycle → Microcycle → Routine. Stamped into every set. Read by every analytic.

See it
02 / 05

Block Comparison

Two mesocycles, two date ranges, or last-vs-prior. Deltas on e1RM, volume, RPE, fractional muscle distribution.

See it
03 / 05

Deload-aware stall detection

When a microcycle has the deload flag set, stall detection knows. No false positives during a planned drop.

See it
04 / 05

Inline target deltas

Every receipt row shows the prescription and the delta you put up. The +5 lands against the plan, not in a vacuum.

See it
05 / 05

Routine adherence chart

Stamped prescriptions become a chart. See exactly where you hit, where you came up short, where you exceeded plan.

See it
Honest comparison

How it stacks up for someone running a real program

Boostcamp, Strong, and 5/3/1 Workout Log all approach periodization differently. flexRep's pitch is that it doesn't prescribe — it just remembers, structurally, what was prescribed.

Competitor
flexRep wins on
flexRep loses on
Boostcamp
Bring your own block · graph instead of curated path · honest receipts
Curated program library out of the box
Strong
Programs as a real graph · inline target delta · block comparison
Brand and install base
5/3/1 Workout Log
Works for any block (Sheiko, Conjugate, Texas Method) · not 5/3/1-locked
Single-program polish
JuggernautAI
You write the program · we don't · no algorithmic guessing
Auto-generated programs as a service
What we won't do for you

Refusals are also features.

  • We don't auto-write your program.
  • We don't convert your block to a free-text label and lose the structure.
  • We don't cry stall during a planned deload.
  • We don't hide the graph behind a paid tier.

See the full list of refusals →

Pin the prescription. Read the deltas.

All of this, on your device. In your data. No account required to start.