
Case study · Personal product
A strength-training app for iOS
that decides today's workout for you.
Designed and built solo with AI agents,
in private beta with three lifters.




Overview
Most strength apps are empty spreadsheets: you bring the plan, they store the numbers. Just starts from the other end. It picks today's workout, prefills every set and raises the weight when your last session says you are ready. No account, no feed, no subscription.
Just is in private beta. Three lifters have trained with it for three months and logged about 50 workouts. Every build reaches them first, and their sessions decide what gets built next.
Three rules behind every screen
Problem
I train four days a week, and every app I tried charged for the basics, pushed a social feed or left half the screen in English. Before designing anything, I reviewed 20 of them to find out what was actually missing.
Research and calls
I read store reviews and forum threads for 20 strength apps and kept only complaints I could trace to a source. Then I ran calls with three lifters of different levels, watched them use test builds and noted every place they hesitated. Each hesitation became a design change.
What the reviews said
What the calls changed
Wireframes
Every screen follows one rule: one primary action, the key number as the largest element, secondary data lower down. These frames are redrawn from the shipped screens to show that hierarchy. The real iterations happened in code: I designed directly in SwiftUI and judged every change on a working build.
Onboarding
Thirteen questions about goal, experience, schedule and equipment, and the plan is built in front of you. Each screen asks one thing and fits one thumb. Three short breaks in the middle explain why the method works, so the flow reads as a conversation, not a form.















Home
The first builds showed charts, streaks and tips at once, and nobody knew where to look. Nineteen versions later, Home answers one question: what do I lift today. The next workout leads, the week and the month follow, and body weight and recovery sit lower for the days you want to look back. Lifters in the beta say the marked training days are what keeps them coming back.

Workout
The most repeated action in the app had to be the cheapest. Weight and reps arrive prefilled from the plan and the last session, one button logs the set and starts the rest timer, and a changed weight carries over to the remaining sets. Supersets share one card. If iOS closes the app mid-workout, the session resumes where it stopped.

Micro-interactions
More than a hundred haptic moments, tuned like a type scale. Light taps answer steppers and toggles, medium ones confirm a step, and heavy ones are saved for the few moments that matter. Motion and haptics share one timeline, and animations step back when Reduce Motion is on.
Haptic calls in the code, by strength
Sound
Fourteen short sounds, rendered from Bencho Sounds recipes. They follow the silent switch, play under your music instead of pausing it and never fire twice within 60 ms, so fast taps stay clean. One toggle in Settings turns them off.
Tap to listen. Headphones help, they are meant to be quiet.
After the workout
A 1 to 10 effort scale asks for a number at the moment you are most tired. Just shows five kettlebells and one plain line under them, such as "Hard, 2 to 3 reps in reserve". That answer shapes the next session, and new records appear right below, counted only against lifts you have really done. The summary also shows the session's total tonnage, the number lifters check first.

Records
Lifters on the calls missed their own new bests, so a record now gets three seconds of its own: the trophy, the new number, the exercise and the gain over the old best. Every step has its own haptic, so the moment lands even with the phone on the bench. Clean-install testing once caught three celebrations for the same 85 × 8 and praise measured against a planned estimate. Both are fixed: a record counts only against lifts you have really done.
Haptic beat of a record, first second
Muscle volume
Sets are counted per muscle over the last seven days: full credit for the main muscle, half for each secondary one, the same rule Hevy and Boostcamp use. Each group lands in a zone against its weekly target: low under 50%, on target up to 130%, high above. The first version was a table of numbers. A body map with bars shows a neglected muscle at a glance.


Programs
The catalog ranks 27 programs against your onboarding answers and explains each match. Lifters who want control build their own, with supersets and day templates, and share it by link or QR code. Only days and exercises travel. Weights and history stay on your phone.



Nutrition and body
Strength is only part of the result, so the rest lives in the same app. Calories and macros fill a ring through the day, weight moves toward a goal with a pace estimate, and progress photos compare side by side with a slider.



Recovery
Each morning Just reads last night's sleep, heart rate variability and resting heart rate from Apple Health, so it works with an Apple Watch or a Mi Band. The three signals become one readiness score from 0 to 100.
The score informs and never overrides. The plan stays the same, and the lifter decides how hard to go.
AI coach
The coach answers questions about your workouts, weight and food in plain words, using your own log. It is off by default. Before anything leaves the phone, a consent screen shows exactly what is sent and where. Decline, and nothing else in the app changes.
Widgets
Three widgets: the streak with this week's progress, the next workout and a month calendar. The first set tried to show everything, and I sent it back. Now each widget says one thing and reads in a second.

Design system
Lime means "done" or "do this now" and nothing else. Tokens come in two tiers, raw values and roles, so no colour is ever picked by eye inside a screen.
How it was built
AI agents wrote the Swift. I ran the project the way a product lead runs a team: a brief, a written plan, a review after every step and the final call on what ships.
What changed
What the lifters value
I first listed the kettlebell scale as a differentiator. Anyone could copy it in a week, so it came out of the positioning and stayed in the product.
The agents wrote 48,000 lines of Swift. Deciding what to build, what to cut and when a screen was good enough stayed with me.
Half of the real defects appeared only when the app was installed from zero and used the way a stranger would.
Let’s talk
Open to full-time UX/UI and web design roles.
If you are hiring or have a project, I would like to hear about it.
Yaroslav Motsuh
Senior UX/UI & AI Designer
Kyiv UTC+2 Usually reply within a day