Skip to content
Logging

When the bar is heavy,
the app gets simpler.

Mid-workout, you are not at your sharpest. Your blood is in your muscles. Your central nervous system is taxed. Your patience is thin and your fingers are slick with chalk. This is not a moral failing — it's physiology, and it's the reason most workout apps fall apart at the rack.

flexRep is designed around the version of you that's mid-set, not the version of you reading this on a couch. Every surface optimizes for the same thing: fewer decisions, fewer taps, no questions. The app gets quieter as the bar gets heavier — and louder only when it has something worth saying.

9:41
REST 02:00 · 1 SETS · 1,125 lbs
SESSION · BENCH DAY
Barbell Bench Press
Elapsed
42:18
WEIGHT · lbs
185
PR TERRITORY
REPS
8
REPS
S1 225 × 5 RPE 7.5 42m
First one down.

Three taps to log a set. Two of them optional.

The premise

Cognitive load is a real cost. We pay it for you.

The standard workout-app pattern asks you to make ten micro-decisions for every set: which exercise, which set type, which weight unit, did you mean warmup, do you want to track RPE, do you want the timer to start, are you sure? Each one is small. Together they're the reason you stop logging by lift number five.

WHAT OTHER APPS ASSUME

"The user will read the screen carefully and pick the right option from a menu."

You don't, and they shouldn't. You're four sets into a 90-minute squat day. You are not reading anything carefully.

WHAT FLEXREP ASSUMES

"The user is mid-set, tired, distracted, and one slip away from logging the wrong thing. The app should make the right thing the easy thing."

Pre-fill everything we can. Make every action confirm itself. Make every mistake easy to fix. Then get out of the way.

The five principles

Quiet under load.

Each principle exists because we watched ourselves drop the phone, mis-tap the +45, accidentally log a deload as a working set, or forget which set we were on. The fixes aren't features — they're stances baked into the surface.

01

Pre-fill aggressively. Decide rarely.

Open the app at the gym and the next-most-likely set is already on screen — same weight, same reps, same RPE as the last time you did this exercise. The "logged" state is one tap away from "showed up." Decisions are friction; we remove them.

02

Big numbers. Obvious buttons. No icons that need translating.

Weight and reps are the heroes of the screen, set at a size you can read across the rack. Plate buttons say "+45," not a glyph you have to parse. Nothing on the primary surface requires you to remember what an icon means.

03

Sticky everything.

Your last exercise is selected. Your last weight is loaded. Your last rep count is filled. Your last RPE carries over. The app assumes you're still doing what you were doing twenty minutes ago — because you almost always are.

04

Confirm every action visually.

Tap a plate and the weight visibly settles to the new value. Tap Log and the receipt slides in from below. The rest timer starts on its own. Nothing is silent. Nothing is "wait, did that work?"

05

Reversible by default.

Tapped the wrong plate? Tap a smaller one to fix it. Logged a set you didn't do? Swipe-left to delete. Need to edit a set from four lifts ago? Tap it; it opens. The cost of a mistake is one gesture, not a dialog with three buttons.

The loop, walked

One set, from rack to receipt.

Six rows. Note how many of them involve you doing anything at all.

Step
What you do
What the app does
A.
You walk up to the bar.
Last set already on screen. Same weight, same reps, same RPE.
B.
You finish the set.
You haven't touched the phone yet.
C.
You tap Log.
Receipt slides in. Volume counter rolls upward. Rest timer starts.
D.
You rest.
Lock-screen Live Activity shows the rest countdown. You don't have to unlock anything.
E.
You change weight for the next set.
Tap +25 or –10. Heavy plates settle slower; you can feel the difference under your thumb.
F.
You do the next set.
Same loop. Three taps total, two of them optional.

Total finger presses across one logged set: 1. The Log button. Everything else either happens automatically or is the same as it was last time.

Single-gesture operations

Every common action is one motion.

No menus to navigate. No three-tap chains. If you find yourself reaching across the screen with both thumbs, we got something wrong.

Action
Gesture
Log this set
Tap the Log button. That's the whole gesture.
Repeat the last set
Swipe-right on the most recent receipt row.
Delete a set
Swipe-left on the receipt row.
Edit a set
Tap the receipt row to expand it; weight and reps become editable inline.
Undo the last log
The undo banner appears for several seconds after every log. One tap reverses it.
Add a warmup
Tap Log with a noticeably lighter weight; warmups are auto-tagged. Or tap the warmup chip to force-flag.
Drop set
Tap +Drop on a receipt row; the next logged set inherits the drop-set tag.
Direct text input
Long-press on the weight number; a numeric keypad floats up. Tap-out to dismiss.
Switch exercise
Tap the exercise name at the top; the picker opens with your most-used exercises first.
Start rest manually
Tap the rest pill in the status bar. It can also be paused, reset, or extended in 30-second bumps.
The customization layer

Quiet by default. Loud where you want it loud.

The default surface is opinionated, because defaults are the surface most users will ever see. Underneath, every visible element, every behavior, and every voice can be tuned to your training style — without ever cluttering the primary screen.

The visible surface

  • Plate set — pick which buttons appear (+5, +10, +25, +45) and customize for your bar, your dumbbells, your gym's plate inventory
  • Quick-rep buttons — set the rep increments that actually fit your programming
  • Units per exercise — train deadlifts in kg and bench in lbs if that's the way your brain works
  • RPE on/off — log effort if you care; hide the field if you don't
  • RIR vs RPE display — pick whichever framing is native to your head

The defaults

  • Default rest interval — global default, plus per-exercise overrides for the lifts that need longer
  • Stickiness — what carries over from your last set in this exercise: weight, reps, RPE, all of them, or none
  • Pre-fill source — last set in this session, last set ever, or your stored target
  • Auto-progress — bump the suggested weight after a successful set (optional, off by default)
  • Warmup behavior — auto-detected from light early sets, or manually flagged with a tap

The voice

  • Quiet mode — suppresses bot quips while preserving the rest-timer status bar
  • Live Activity privacy — redact exercise names from the Lock Screen if you train in public
  • Notification cadence — every rest complete, or only after long rests, or never
  • Haptic intensity — the weight-aware haptic curve scales globally; turn it down if you train one-handed
  • Dynamic Island content — compact view shows the rest countdown by default; you choose what gets the spotlight
When you slip

Every mistake is one gesture away from fixed.

Mid-workout misfires are not bugs — they are the working condition. We treat reversibility as a primary feature, not as an afterthought.

Wrong plate tapped

FIX Tap a counter-plate. +45 then immediately –45 returns you to where you were. The weight scrubs visually; the haptic acknowledges.

Logged a set you didn't do

FIX Undo banner. Or swipe-left on the receipt row. Both work for a few minutes after the fact; nothing about the session reflows.

Wrong exercise selected

FIX Tap the exercise name to switch. Sets already logged stay attached to the original exercise; new sets attach to the new one.

Phone dies mid-workout

FIX Open the app on power-back. Your workout is intact: pause state, rest timer end-time, all sets — saved at every event, never at every five seconds.

Forgot to end a workout

FIX The app notices and auto-ends it for you with an annotated flag. Analytics know to handle annotated sessions distinctly. You don't have to remember.

Tap-and-hold misfire

FIX Long-press behaviors are explicit and never destructive. The worst thing that happens is the numeric keypad appears; tap-out to dismiss.

What we deliberately left out

Subtraction is a feature.

Every workout app's primary screen accumulates noise over time — buttons sneak in, 'social' widgets get bolted on, a settings shortcut earns a spot for no good reason. We keep an explicit 'do not add' list.

  • Long-form text input on the primary surface
  • Confirmation dialogs for non-destructive actions
  • Icons that require translation
  • Decisions that have a defensible default
  • Settings hidden behind progressive disclosure (settings are where settings should be: Settings)
  • Animations that take longer than the haptic feedback they accompany

Show up. Tap. Lift.

That's the brief. Every screen, every setting, every animation, every haptic — graded against the question: would this still work on set 47?

Quiet under load.