Skip to content
Exercise library

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.

Bench PressBB BenchFlat BenchBenchpressflat barbell pressBBBPPress, BenchBench (BB, flat)
Bench Press
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.

FUZZY MATCH — REAL EXAMPLES
  • benchprses Bench Press
  • db row 1arm Dumbbell Row (one-arm)
  • rdl Romanian Deadlift
  • ohp Overhead Press
  • lat pull Lat Pulldown
  • split sqt Bulgarian Split Squat
  • curl spider Spider Curl
  • kas Kas Glute Bridge
Find what you mean

Filters across six honest facets.

No taxonomy theater. Every filter exists because lifters actually reach for it — and every one of them is also a column in the export.

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.

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."

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.