Skip to content
1.0 · iOS 26.0+ · iPhone · Apple Watch · iPad

The numbers
are the interface.

flexRep is the strength tracker built natively on the modern Apple stack. Weight-aware plate physics. Methodology-transparent analytics. On-device AI. Live Activities. HealthKit. No ads. No subscription on your data. Ever.

Free tier is real CSV + JSON export No tracking SDKs Apple Watch standalone

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

Tap the plates. The +45 settles slower than the +5. Press past 245 — the orange warmth ignites. Working facsimile of LogView.

Signature moments

Things only flexRep does.

The app already exists in another category. These are the moments that put it there — the ones every other lifting app skipped because they couldn't be bothered.

01

Weight has weight.

Tap +45 and the plate button settles slower. The haptic gets deeper. The number morphs, doesn't flash. The app speaks the language of the gym floor — physics in a digital tool.

02

PR territory glow — no banner, no popup.

Cross your previous max and a soft orange warmth ignites behind the number. No "NEW PR!" trumpet. You feel it before you read it. Ambient intelligence over explicit UI.

03

Your workout has a shape.

Every session produces a unique rhythm waveform — jagged peaks for heavy singles, rolling hills for pump work. Your training, visualized as a landscape. Shareable. Yours.

04

Every chart explains itself.

Tap any visualization and a methodology card reveals the formula, the source, how to read it, and why it matters. Transparent by design. No black boxes.

05

Built on Apple. Not retrofitted.

SwiftUI, SwiftData, HealthKit, Live Activities, Foundation Models, App Intents, Liquid Glass, iCloud sync. Every framework, used well — not as checkbox bullets.

06

No paywall on export. Ever.

CSV with every column, every set. JSON with full schema. .flexrep backup bundles with SHA-256 checksums. Import from Strong or Hevy. Revert any import. Your data is the brand promise.

Your workout has a shape

A session, drawn by the bar itself.

Every set is a peak — height scaled to weight, width scaled to reps. Every rest is a valley, deeper for longer breaks. A heavy-singles day looks nothing like a high-rep pump session. They couldn't. They're different shapes.

Share the waveform. Compare it against last week. Recognize a session by its silhouette. The app gives your training a face.

PEAKS
12
PEAK · LBS
285
VOLUME
14,820
DURATION
1:08
SESSION · TUE MAY 19 · 6:14 AM PR · 285 × 1
WARMUP TOP SETS BACK-OFF
FREQUENCY 4.2/wk
SYMMETRY 0.82
PATTERNS 8
Training identity as generative art

Your strength glyph.

A shape built from your movement patterns. Push, pull, squat, hinge, carry, lunge, core, rotation. Each axis is a quadrant of your training. The warmer the color, the more frequently you lift. The more circular the shape, the more balanced.

Not an avatar. Not a badge. A fingerprint of how you move through the world. It updates as you train.

How the shape is built →
Methodology-transparent analytics

Every chart explains itself.

Most apps show you a number and leave you to figure out what it means. flexRep shows you the formula, the source, and how to read it — one tap away from every visualization.

ANALYSIS · MUSCLE BALANCE 11 AXES · FRACTIONAL

Primary movers weighted 1.0 · Secondaries weighted 0.5

Muscle balance radar how it's calculated ↘
WHAT IT MEASURES

Fractional-set volume distributed across 11 muscle axes. Higher = more sets in the trailing 4 weeks.

FORMULA volume[m] = Σ (sets where m is primary × 1.0) + Σ (sets where m is secondary × 0.5)
HOW TO READ IT

The polygon's center of mass should sit on center. An axis poking out means a movement is over-emphasized; an axis pulled in means it's neglected.

WHY IT MATTERS

Hypertrophy research (Schoenfeld) consistently shows secondary muscle work counts — just not at full weight. A balanced lifter trains across the polygon, not at three points of it.

Estimated 1RM (e1RM) how it's calculated ↘
WHAT IT MEASURES

A back-calculated single-rep max from your top set, using the Epley formula. Tracked weekly to detect stalls.

FORMULA e1RM = weight × (1 + reps / 30)
HOW TO READ IT

A 3-week moving window. A flat or descending e1RM with stable RPE = a stall. flexRep's stall detector flags it before you have to.

WHY IT MATTERS

e1RM is the cleanest comparable strength metric across rep ranges. 225×5 and 245×3 are roughly equivalent — the e1RM tells you so.

Rep-range drift how it's calculated ↘
WHAT IT MEASURES

A 16-week stacked-area chart of how your set distribution shifts across rep ranges (1–3, 4–6, 7–10, 11–15, 16+).

HOW TO READ IT

A widening light band at the top means you're drifting toward easier work. A growing dark band at the bottom means you're chasing heavier singles.

WHY IT MATTERS

Slow drift toward higher reps is one of the most under-diagnosed sources of strength plateaus. The chart makes it impossible to miss.

Apple-native, not cross-platform

Every framework, used well.

flexRep doesn't ship checkbox bullets. Each of these is wired into a daily-use surface — not stashed in Settings, not added for the App Store keyword.

SwiftUI
The entire surface — no UIKit fallbacks, no React Native wrapper.
SwiftData
Modern persistence with soft deletes, import-batch tracking, 30-day purge.
HealthKit
Per-set metadata writes. Your sets close your rings.
Live Activities
Rest timer + set count + exercise on the Lock Screen. Dynamic Island compact view.
Foundation Models
On-device AI insight generation. Weekly summaries. Nothing leaves your phone.
WidgetKit
Streak, last lift, weekly volume. Glanceable from the home screen.
App Intents
Siri and Shortcuts integration. "Log 225 by 5 on bench."
Liquid Glass
iOS 26 native — designed for the new material, not adapted to it.
iCloud Sync
CloudKit-ready from day one. Every model has defaults and optional relationships.
Honest positioning

What flexRep wins. What it doesn't.

We're not pretending we've out-installed Strong or out-socialed Hevy. Here's where the bar actually sits — and where it doesn't.

Competitor
flexRep wins on
flexRep loses on (today)
Strong
Liquid Glass, Foundation Models, data ownership, plate physics
Brand awareness
Hevy
Methodology transparency, native iOS feel, no-ads stance
Social, install base
Fitbod
No subscription gating, RPE-aware analytics, observer voice
AI programming polish
HeavySet
Watch, on-device AI, full Liquid Glass redesign
Heritage brand
Liftin'
Foundation Models, deeper analytics, micro-delight layer
Indie sweetheart status

Source: docs/marketing/market-research.md — 27 apps profiled in May 2026.

Data ownership — no asterisks

Your training data is yours. Full stop.

Every column, every set. CSV: Date, Time, Exercise, Group, Equipment, Set Type, Weight, Reps, RPE, RIR, Notes. JSON with full schema. .flexrep bundle with SHA-256 checksum. Import from Strong or Hevy. Revert any import batch. Native data is never touched.

Export is free. Now and forever. No paywall, no subscription gate, no asterisk.

Date,Time,Exercise,Group,Equipment,Weight,Reps,RPE,RIR
2026-05-19,06:14,Bench Press,Chest,Barbell,225,5,7.5,2.5
2026-05-19,06:18,Bench Press,Chest,Barbell,245,3,8.5,1.5
2026-05-19,06:23,Bench Press,Chest,Barbell,265,3,9.0,1.0
2026-05-19,06:29,Bench Press,Chest,Barbell,275,2,9.5,0.5
2026-05-19,06:36,Bench Press,Chest,Barbell,285,1,10.0,0.0  ← PR
2026-05-19,06:42,Bench Press,Chest,Barbell,245,5,8.0,2.0
2026-05-19,06:48,Bench Press,Chest,Barbell,225,6,7.5,2.5
…

Rack the bar.

Free tier is real and not crippled. One-time purchase unlocks Pro on-device features for life. Subscription only for server-backed cloud sync.

No ads, ever · No tracking SDKs · On-device AI