Skip to content
Logging

When the bar is heavy,
the app gets simpler.

Mid-workout, you’re tired. Your CNS is taxed, your fingers are chalked, your patience is thin. This isn’t a complaint — it’s the working state. And it’s the reason most workout apps fall apart at the rack.

flexRep is built for the version of you mid-set, not the one reading this on a couch. Every surface optimizes for the same thing: fewer decisions, fewer taps, no questions.

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.

01/ 05
Chapter one

The premise.

Two assumptions, one number, one design discipline. Why the logger has to be quiet under load.

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.

Quiet under load

All this power, dead simple when the bar is heavy.

The analytics and methodology underneath flexRep are deep — but you should never feel that depth at the rack. Mid-set you are tired, distracted, and your blood is busy elsewhere. The app is designed for that version of you, not the version reading this on a couch.

02/ 05
Chapter two

The principles.

Five stances baked into the surface, and three calibrated lenses to wear on top of them.

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 set is already on screen — same weight, same reps, same RPE as last time. "Logged" is one tap from "showed up." Decisions are friction.

02

Big numbers. Obvious buttons.

Weight and reps are the heroes, set large enough to read across the rack. Plate buttons say "+45," not a glyph to decode. Nothing on the primary surface needs a manual.

03

Sticky everything.

Your last exercise is selected. Your last weight is loaded. Your last reps and RPE carry over. The app assumes you’re doing what you were doing twenty minutes ago — because you almost always are.

04

Confirm every action.

Tap a plate and the weight settles. Tap Log and the receipt slides in. 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. Logged a set you didn’t do? Swipe-left. Need to edit a set from four lifts ago? Tap it. The cost of a mistake is one gesture, not a dialog.

Two logger surfaces + a density lens

Same data. Two surfaces. A lens that turns the detail up or down.

Quick Log is the welcoming default. The Classic logger is the full surface — sets, RPE, tempo, supersets, routine targets. On top of Classic, a density lens decides how much shows at once, from a clean working view all the way to every field at thumb-reach. No paywall between them — flip in Settings any time.

SURFACE 01 · QUICK LOG

Quick Log

Default for every fresh install. Walks the welcoming path.

VISIBLE
  • Weight
  • Reps
  • Receipt
  • Voice
HIDDEN UNTIL ASKED
  • RPE
  • Set type
  • Tempo
  • Supersets
  • Routines
SURFACE 02 · CLASSIC

Classic logger

For people running programs. The full surface, calibrated.

ADDED ABOVE QUICK LOG
  • RPE chip
  • Set type
  • Routine target
  • Supersets
  • Rest timer bar
STILL HIDDEN
  • Tempo
  • Per-set photos
  • App Intents row
CLASSIC · LENS TURNED UP

Classic, full density

The same Classic logger with the detail lens turned all the way up — every field at thumb-reach.

SURFACED BY THE LENS
  • Tempo per set
  • Mesocycle bar
  • App Intents row
  • Per-set photo
  • Bot quip extras
EVEN AT FULL DENSITY, REFUSED
  • Ad slots
  • Streak nags
  • Hype banners
03/ 05
Chapter three

The mechanics.

What we removed from the path, what one logged set looks like end-to-end, and the ten one-gesture moves the surface knows.

Decisions, removed

Six steps a typical app makes you take. One in flexRep.

A side-by-side count of what stands between you and a logged set. Each row is something the app could either ask, or assume. flexRep assumes — until it has reason not to.

TYPICAL WORKOUT APP 10 decisions per set
  • Pick the exercise from a menu
  • Choose set type (warmup / working / drop)
  • Confirm weight unit
  • Type weight into keyboard
  • Type reps
  • Enter RPE if tracked
  • Tap “Save”
  • Dismiss the “Saved!” toast
  • Tap “Start rest timer”
  • Confirm timer length
FLEXREP 1 decision per set
  • Exercise — same as last set in this session
  • Set type — inferred from weight relative to working sets
  • Weight unit — sticky, never asked
  • Weight — pre-filled from last set
  • Reps — pre-filled from last set
  • RPE — optional; carries over if you set one
  • Tap “Log” ← the only finger press
  • Confirmation — receipt slides in
  • Rest timer — starts on its own
  • Timer length — your per-exercise default

Each green check is something the app did so you wouldn’t have to. Each one is reversible if it guessed wrong — the cost of the wrong default is a single gesture, not a re-entered set.

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.

Log this set

TAP

Tap the Log button. That’s the whole gesture.

Repeat the last set

SWIPE →

Swipe-right on the most recent receipt row.

Delete a set

← SWIPE

Swipe-left on the receipt row.

Edit a set

TAP

Tap the receipt row to expand it; weight and reps become editable inline.

Undo the last log

TAP

The undo banner appears for several seconds after every log. One tap reverses it.

Add a warmup

AUTO

Tap Log with a noticeably lighter weight; warmups are auto-tagged. Or tap the warmup chip to force-flag.

Drop set

TAP

Tap +Drop on a receipt row; the next logged set inherits the drop-set tag.

Direct text input

LONG-PRESS

Long-press on the weight number; a numeric keypad floats up. Tap-out to dismiss.

Switch exercise

TAP

Tap the exercise name at the top; the picker opens with your most-used exercises first.

Start rest manually

TAP

Tap the rest pill in the status bar. It can also be paused, reset, or extended in 30-second bumps.

04/ 05
Chapter four

Beneath the surface.

The opinions are loud. The dials underneath are quieter — and entirely yours.

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
What it actually looks like

One settings screen. No nested menus.

The toggles you'll reach for most often live at the top. The ones you'll touch twice live under 'Advanced'. Nothing important hides under a long-press on a chart axis.

SETTINGS · LOGGING
Plates & entry
Plate buttons
+5 +10 +25 +45 · custom set
+45 active
Quick-rep increments
+1, +5 on rep counter
+1 +5
Weight unit
per-exercise overrides allowed
Track RPE
half-step scale, 6.0 → 10.0
Voice & ambient
Quiet mode
suppress bot quips
Live Activity privacy
redact exercise from Lock Screen
Haptic intensity
weight-aware ladder, global multiplier
Advanced
Stickiness rules
Auto-progress (off)
Warmup detection
05/ 05
Chapter five

When it breaks.

Every mistake recoverable in one gesture. Every feature we refused to ship — and why.

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.

MINOR

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.

MINOR

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.

MINOR

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.

MAJOR

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.

MEDIUM

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.

MINOR

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.