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.
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.
Dumbbell
Machine · Cable
Bodyweight · Calisthenic
Olympic · Power
Accessory · Carry
Conditioning · Cardio
Stretch · Mobility
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.
Hundreds of exercises. Thousands of ways to spell each one.
Search and import don't care about your spelling. They care about your intent.
- Bench Press97% CANONICAL
- Incline Bench Press71% VARIANT
- Dumbbell Bench Press63% VARIANT
- Used yesterday — 5 × 225 @ RPE 7.5
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
Equipment
Movement pattern
Skill level
Mechanic
Posture
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.
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.
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.
- 01
Tap "Add custom"
From the picker, when nothing in the library quite matches what your gym actually has.
- 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.
- 03
Tag it with attributes
Muscle group, equipment, movement pattern. These power filtering, analytics, and substitutions. Skip what doesn't apply.
- 04
Use it forever
It syncs to your other devices via iCloud. It survives seed updates. It exports alongside everything else.
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.
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.
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.
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."
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.