Skip to content
Exercise library · specimen 001 of 873

Bench Press.
Just bench press.

It took an embarrassing amount of work to make sure that Bench Press, BB Bench, flat barbell press, and the inevitable benchprses all map to a single, canonical lift. We did it because the alternative — a library that fragments your bench into eight competing entries — is the reason most lifting-app analytics quietly lie to their users.

CATALOG ID · BNCH-BB-FLT-001 Bench Press push · horizontal · barbell · flat bench
“BB Bench” abbreviation “flat barbell press” variant “Benchpress” typo “BBBP” shorthand “Press, Bench” inverted “benchprses” typo “Bench (BB, flat)” variant “Flat Bench” variant
PLATE · 001 Eight ways lifters have typed the same lift. One canonical row, one PR history, one trend. The normalizer absorbs the typos so your analytics don’t fracture.
The catalog · 8 sections

873 entries. Curated, tagged, kept tidy.

Each card stands for a section of the catalog. Not every lifter wants to walk the whole thing — most won’t. But the breadth is there, in the back, for the day you decide to learn the Zercher squat or finally figure out what a Pendlay row actually is.

CAT. 01 / 08 PUSH · PULL · SQUAT · HINGE

Compound · Barbell

64 entries
CAT. 02 / 08 PRESS · ROW · CURL · FLY

Dumbbell

92 entries
CAT. 03 / 08 ISOLATION · CONSTRAINT

Machine · Cable

118 entries
CAT. 04 / 08 GRAVITY · LEVERAGE

Bodyweight · Calisthenic

41 entries
CAT. 05 / 08 CLEAN · JERK · SNATCH

Olympic · Power

22 entries
CAT. 06 / 08 FARMERS · YOKE · SLED

Accessory · Carry

36 entries
CAT. 07 / 08 EQUIPMENT-FIRST

Conditioning · Cardio

28 entries
CAT. 08 / 08 PRE · INTRA · POST

Stretch · Mobility

31 entries

Most lifters live inside the first two cards for the entire first year. The catalog doesn’t push the rest at you — but it’s there when you’re ready.

The typo problem

Hundreds of exercises. Thousands of ways to spell each one.

Search and import don't care about your spelling. They care about your intent.

Find what you mean

Six honest facets on every exercise.

No taxonomy theater. Today the picker filters live by the first three — muscle group, equipment, and movement pattern. Skill level, mechanic, and posture are catalogued on every exercise (and in the export) with filtering on the way.

Muscle group

ChestLatsQuadsGlutesRear deltsTriceps +more

Equipment

BarbellDumbbellMachineCableBodyweightBand +more

Movement pattern

PushPullSquatHingeCarryLunge +more

Skill level

BeginnerIntermediateAdvanced +more

Mechanic

CompoundIsolation +more

Posture

StandingSeatedLyingHanging +more
One family. Many lifts.

Variants stay distinct. Analytics still group.

"Incline DB Bench" is its own row in the library — its own PRs, its own e1RM trend. But when you ask the analytics for "chest volume," all seven bench variants roll up correctly. Family is metadata, not hierarchy.

EXERCISE ANGLE EQUIPMENT ROLLS UP TO
Barbell Bench Press
Flat
Barbell
bench-press
Incline Barbell Bench Press
Incline
Barbell
bench-press
Decline Barbell Bench Press
Decline
Barbell
bench-press
Dumbbell Bench Press
Flat
Dumbbell
bench-press
Incline Dumbbell Bench Press
Incline
Dumbbell
bench-press
Machine Chest Press
Flat
Machine
bench-press
Smith Machine Bench Press
Flat
Smith
bench-press
Same exercise, different contexts

A cable row at your gym is not the cable row at mine.

The exercise definition is shared. The context is yours. flexRep keeps machine instances, cable heights, grips, and tempos at the per-performance layer — without bloating the library.

Per-gym machine instances

The hack squat at your home gym and the hack squat at the commercial gym are not the same lift. Same exercise definition, different machine instance — tracked as separate context so progressive overload isn't fictional when you travel.

Per-instance modifiers

Cable height. Grip width. Foot placement. Pulley ratio. The metadata lives on the performance, not the definition, so you can record exactly which version of cable row you did today — without polluting the library with thirty cable-row entries.

Tempo and grip carry-through

Log a 3-1-1-0 tempo or a snatch-grip variant once; the next time you select the same exercise, the variant carries forward as a suggestion — never as a force.

Add your own

For the machine your gym invented.

Some gyms have equipment that has never been in a database — the one labelled MULTI-HIP that no other gym owns, or the kettlebell-on-a-cable rig in the corner. flexRep lets you add it, name it, and forget the rest.

  1. 01

    Tap "Add custom"

    From the picker, when nothing in the library quite matches what your gym actually has.

  2. 02

    Name it once

    Use whatever your gym calls it. Or whatever you call it. The normalizer will handle the rest of your life's typos.

  3. 03

    Tag it with attributes

    Muscle group, equipment, movement pattern. These power filtering, analytics, and substitutions. Skip what doesn't apply.

  4. 04

    Use it forever

    It syncs to your other devices via iCloud. It survives seed updates. It exports alongside everything else.

The picker is smart so you don't have to be

Four behaviors that compound over time.

Every choice the picker makes is reversible, but the defaults are calibrated to where you already trained yesterday — not to the alphabetical accident of a 1990s gym membership form.

Most-used floats up.

The exercises you actually do appear at the top of the picker — sorted by recent frequency, broken by recency on ties. Your three favorite lifts are one tap away on every open.

EXAMPLE
Bench PressSquatDeadlift
Top of the picker, every open

Stickiness across sessions.

Started bench day yesterday? The picker remembers. The next session at the same time of week opens with bench pre-selected, ready to log.

EXAMPLE
Wed 6am → BenchThu 6am → Squat
Time-of-week pattern

Substitution suggestions.

Squat rack taken? Tap "Find a substitute" — flexRep suggests exercises that share the movement pattern, equipment style, and skill level, weighted by what you've done before.

EXAMPLE
Squat → Hack SquatSquat → GobletSquat → Leg Press
Same pattern · loadable today

Last-session prefill.

Selecting any exercise pre-loads the weights and reps you did the last time, in this gym, on this exercise. "Last time: 225×5 @ RPE 8 · Iron & Oak · 6 days ago."

EXAMPLE
225 × 5 · RPE 8 · 6 days ago
Per-gym, per-exercise memory
In the export

Library data travels with you.

Every set carries its canonical exercise name, its variant attributes, its machine instance (if any), and its family rollup. Your custom exercises export with full metadata. If you ever leave flexRep, you’ll leave with a clean library — not a tangle of “Bench Press 2”, “BBP”, and “Pressss (Bench)”.

Find the exercise. Log the set.

The picker should take a fraction of a second. We treat that fraction as sacred.