Hardset
Coming soon
iPhone · Apple Watch · iOS 26

A workout app that behaves like a stopwatch.

You build a workout, press start, and Hardset walks you through it — counting your rest, showing you last session's numbers, and letting you correct what you actually did. Pay once. No account, no subscription.

Coming to the App Store
One payment. No trial, no tiers, no cloud.
Accent: Violet. Set here, or in the app's settings.
9:41
Today
3 WEEK RUN · LAST TRAINED THURSDAY
PRIMED
Push A
6 exercises · 20 sets · ~50 min
Start Workout
Library
Pull B
5 exercises · ~40 min
Legs
5 exercises · ~50 min
Core & Carry
4 exercises · ~26 min
Train
Stats
History
The runner

One second, mid-set, at 150 bpm.

Everything else in the app is a list. This is the product. The number you need is 82 points tall and readable at arm's length from a bench.

You planned eight reps at 60 kg and managed six. Tap the figure, type six, and the app offers to apply it to the sets that are left. Small, easy to ignore, never automatic.

Ghost text
Last session's actual numbers sit under the target, greyed out. Never mistaken for the plan.
Set chips
Four tiles tell you where you are in the exercise without reading a word.
Rest
A state of the same screen, not somewhere you navigated to. One clock, one bottom tray.
9:41
12:04
138
Exercise 1 of 6 · Push A
Barbell Bench Press - Medium Grip
Set 2 of 4
Reps
8
kg
60
Last: 8 × 62.5 kg
SET 1 8 × 60
NOW 8 × 60
SET 3
SET 4
Complete Set
Add set
Back to list
Performing a set
9:41
12:41
124
REST
1:32
THAT SET
6 reps
60 kg
COULD HAVE DONE
0
+1
+2
+3
+4+
UP NEXT
Barbell Bench Press - Medium Grip
8 @ 60 kg
Set 3
of 4
+15s
Skip Rest
Resting

It costs money once.

Pay once

No subscription, no trial that lapses, no feature that switches itself off in month two. The app you bought stays the app you bought.

No account

No sign-up, no email, no server. Your workouts and your history live on your phone, and you can export them as files whenever you like.

No nagging

A number the app cannot honestly compute is not shown. It states what happened, in your terms, and then it stops talking.

873 exercises

One search field, results grouped by muscle, equipment on every row. If yours is missing, write it down yourself.

Targets that vary by set

3 × 10 then 1 × 8. Reps, weight, seconds, or a hold with something heavy in each hand.

Two rest timers

Between sets and after the exercise, both settable to zero, both inherited from the workout's own defaults.

Apple Health

One button at the end writes the workout to Health, with the heart rate your watch actually measured.

Stats with a verdict

Every chart carries a plain sentence saying what it found, so you are not left doing the reading yourself.

Workouts as files

Import and export a workout file. Nothing is locked inside an account you never made.

Lock Screen · Dynamic Island · Apple Watch

Between sets, the phone can be face down.

The rest countdown runs as a Live Activity, so you can put the phone on the bench and still see the seconds and what is coming. The system animates it; the app does not need to be awake.

Start a workout and the watch measures it. Your pulse appears in the runner's top bar as soon as the sensor finds it, and stopping on the wrist stops the phone too.

HARDSET · PUSH A
1:32
UP NEXT
Bench Press
Set 3 of 4 · 8 @ 60 kg
Lock Screen
1:32
Dynamic Island, compact
124
9:41
REST
1:32
SET 3 OF 4
Bench Press · 8 @ 60
Apple Watch, mid-workout

The rest of it.

Three tabs and two sheets. Settings is a sheet off Stats; the runner is a mode, not a destination.

WORKOUT COMPLETE
Push A
Saturday 22 August at 09:41
DURATION
48:12
EXERCISES
6of 6
SETS
20logged
EFFORT
7of 10
VOLUME
4,180kg
AVG HEART RATE
131bpm
Measured on Apple Watch
1 PERSONAL RECORD
Barbell Bench Press
Heaviest set · 8 reps
60 kg
+2.5 kg
DONE VS PLANNED
Barbell Bench Press
planned 4 × 8 @ 60 kg
4 × 8
Incline Dumbbell Press
planned 3 × 10 @ 22.5 kg
3 × 8
Save to Apple Health
Discard session
Session summary
What you did against what you planned, and one button into Health.
Stats
12 weeks
6 months
1 year
All
WORKOUTS
31
SETS
574logged
TRAINED
24h
LOAD MOVED
118,420kg
3
WEEK RUN
7
BEST RUN
11
DAYS IN 28
2.5
MEDIAN WEEK
Turning up
Your busiest week here: 4 workouts, against 3 in any other.
Workouts per week. The dashed line is the middle of the weeks you trained in.
Where the work went
Chest leads on 128 sets, and nothing is three times behind.
Sets
Load
Chest
128 sets
Back
104 sets
Legs
95 sets
Shoulders
72 sets
Arms
61 sets
Core
53 sets
Train
Stats
History
Stats
One accent bar per chart: the period you are in, or the biggest share.
bench 14 of 873
Cancel
CHEST
Barbell Bench Press - Medium Grip
Barbell
Dumbbell Bench Press
Dumbbell
Incline Bench Press
Barbell
BACK
Smith Machine Bench Row
Machine
Create “bench” custom
Add 1 exercise
Exercise picker
Pick six in one visit. The matched run of a name is marked as you type.
Cancel
Edit Workout
Done
NAME
Push A
DEFAULT REST · APPLIES TO EXERCISES ADDED NEXT
Between sets
2:00
After exercise
3:00
EXERCISES · DRAG TO REORDER
Barbell Bench Press - Medium Grip
4 × 8 @ 60 kg
Incline Dumbbell Press
3 × 10 @ 22.5 kg
Cable Crossover
3 × 12 @ 15 kg
Standing Military Press
4 × 6 @ 35 kg
Plank
3 × 45 s
Add exercise
Workout editor
Drag to reorder, swipe to delete, and set the rest defaults once.

Nothing leaves the phone unless you send it.

There is no account to make and no server to sync to. Your workouts and your history are files in the app's own storage. Heart rate comes from Apple Health with your permission and goes back there when you save a session. Sharing a workout or a summary is something you do, deliberately, through the system share sheet.

AccountsNone
AnalyticsNone
SubscriptionNone
RequiresiOS 26, iPhone
Coming to the App Store
Hardset
Privacy Support App Store
© 2026