THE MOST ADVANCED WORKOUT APP ON THE MARKET
A real AI coach powered by Claude. A hand-built SwiftUI Apple Watch app. A Lock Screen that logs sets without unlocking your phone. Built end to end by one developer who refused to cut corners.
- Powered by Claude
- SwiftUI watchOS app
- HKWorkoutSession
- ActivityKit Live Activity
- LiveActivityIntent
- Dynamic Island
- WatchConnectivity
- CMPedometer
- WidgetKit
- iOS 26 Liquid Glass
- Siri App Intents
- watchOS 26 Smart Stack
- Swift 6 strict concurrency
- 540+ automated tests
- Offline-first sync
Powered by Claude
A COACH THAT READS YOUR TRAINING. NOT A CHATBOT.
Buddy runs on Claude — a frontier AI model — and every reply is grounded in your real data: your programs, your last eight sessions, your recovery ratings, your PRs, even which equipment you own. Ask for a change and it streams back, token by token, as a proposal card. Nothing touches your plan until you tap Apply.
- Builds whole programs in chat — and rewrites them when life changes
- Apply, Dismiss, or Undo — Undo restores the exact pre-change snapshot
- Respects your equipment — dumbbell-only home gym? It will never propose a machine
- Dictate with Siri — "Ask Workout Buddy" opens the chat with your question already typed, one tap from sending
Under the hood: token-by-token SSE streaming, prompt caching, and every AI proposal validated against a catalog whitelist before it can touch your data. The model can only propose — your phone owns every write.
Every screen · One codebase
THE WHOLE APP, IN YOUR HAND.
01Today
NO START BUTTON. THE DAY IS ALREADY BUILT.
Today reads your program's rotation, picks the current day, and has the session built before the screen paints — every set pre-seeded with the weight and reps the engine derived from your last real working session for that exact day.
- Sets arrive pre-filled — carried from your last working session, never a deload week
- Volume moves per muscle — RP-style MEV/MRV rules, all 65 branches pinned by tests
- PRs land mid-set — heavier, or the same weight for more reps
Twelve real captures at 1206 × 2622, composited inside one Apple product bezel at 1:1 pixel registration — no mockup, no re-drawn UI. The ring is CSS 3D transforms and a single requestAnimationFrame loop: no three.js, no GSAP, no dependency of any kind.












1/ 12
Native SwiftUI · watchOS
A SCOREBOARD ON YOUR WRIST. NOT A SHRUNKEN PHONE.
The watch app is 100% hand-written SwiftUI — twenty-six Swift files, zero third-party dependencies. One full-screen face owns the display at a time: Lift, Rest, Paused, Session, Done. Giant chalk-line numerals you can read mid-set from six feet away.
- Digital Crown dials weight and reps — tap a numeral to aim it, rotate to adjust with grid snapping
- Double Tap logs the set on Apple Watch Series 9+ — pinch your fingers, keep lifting
- Real HKWorkoutSession — live heart rate and calories, saved to your Activity rings
- Phone in the locker? Fine. Sets queue offline and sync FIFO when you're reunited
- Buddy works standalone on the wrist — the watch talks to the AI over its own connection
The workout engine is a pure Swift state machine with all 65 (phase, event) transitions pinned by tests — 93 native Swift tests run in ~4 seconds with no simulator. The Smart Stack widget even learns your habitual training hour using a circular mean of your last 12 session starts.
Tap 135 or 8, then scroll / drag / arrow-key to dial it — that's the Digital Crown, on its real 2.5 lb grid. Double-tap anywhere on the watch to log the set, just like the real gesture. Shown with rest timers switched on.
ActivityKit · WidgetKit · App Intents
LOG A SET WITHOUT UNLOCKING YOUR PHONE.
Between sets your phone sits on the bench, locked. The Live Activity keeps the rest timer one glance away — and its Log button actually logs. No Face ID, no app launch: the tap runs a native App Intent, auto-fills last session's weight with an auto-regulated rep target, and syncs when you're back.
- Dynamic Island — rest countdown in the compact slot, live watch heart rate when expanded
- Taps are never lost — every log is durably queued and replayed through the app's own logging path
- Honest buttons — when a set truly needs typed numbers, the button says so instead of pretending
- Steps widget reads the pedometer itself — the count climbs all day without the app ever launching
Six widget surfaces on iPhone plus four watch complication families. The rest countdown's staleDate mirrors the timer, so an abandoned Live Activity dims instead of lying. Start Workout also lives in Control Center and on the Action button (iOS 18).
That widget runs its own pedometer read inside the widget process — CMPedometer, no app launch, no stale numbers.
For the engineers reading
THE SPEC SHEET.
Everything above is marketing until you can grep it. Here's what's actually in the codebase.
93 native Swift tests (46 XCTest + 47 Swift Testing, side by side) run via swift test in ~4 s with no simulator — plus 473 Jest tests across 22 suites. CI gates every merge.
All pure-logic Swift targets compile in .swiftLanguageMode(.v6) with strict concurrency. The watch workout engine is a pure transition table — all 65 (phase, event) pairs pinned by one parameterized test.
The Anthropic key lives in an edge function, never the binary. Every proposal is validated client-side against a catalog whitelist and equipment rules. Per-user budget reserved atomically in Postgres under SELECT … FOR UPDATE.
Set logging with the phone locked: App Group queue + Darwin notifications replay every tap through the app's canonical logging path. Bounded queue, UUID dedupe, nothing dropped, nothing double-logged.
Every write goes through a persistent queue with coalescing, supersedes, exponential backoff, poison-entry rotation, and an epoch fence so a queued write can never resurrect wiped data. The gym has no signal — the app doesn't care.
Real GlassView material with a documented three-tier tint system and runtime availability gating — every glass surface falls back gracefully on iOS 17–25, and Reduce Transparency swaps it for opaque.
26 Swift files, zero third-party watch dependencies. HKWorkoutSession + live heart rate, Digital Crown with grid snapping, Double Tap via handGestureShortcut, WatchConnectivity FIFO offline queue.
4 Siri App Shortcuts, iOS 18 Control Center + Action button control, 6 iPhone widget surfaces, 4 watch complication families, watchOS 26 Smart Stack relevance with circular-mean habit learning.
24 SQL migrations, RLS everywhere. Logged workouts freeze as immutable snapshots — rename or delete an exercise and your history still says exactly what you lifted. HealthKit write-back counts toward Activity rings, deduped across devices.
Stack: Expo SDK 54 · React Native 0.81 · TypeScript strict · two hand-written native modules and four config plugins bridging into ~7,000 lines of Swift · Supabase · Claude.
Loading Buddy in 3D…
YOUR AI COACH IS READY.
Quiz-built programs, auto-progression, and the deepest Apple-platform integration of any training app. It's waiting on the App Store.