Skip to content
Projects / A93-04

The Strength Society

A strength-training log with an AI coach built in. It writes your program and never changes anything without asking.

Part no.
A93-04
Status
beta
Platform
iOS
Year
2026
Stack
SwiftSwiftUISwiftDataHealthKitWidgetKitPythonLLM agents
1,042Exercises in the catalog
85Procedurally rendered animations
38.6kLines of Swift
4LLM providers supported (BYOK)
01 — The problem

Most training apps are either a dumb logbook or a subscription coach that can't see what you actually did. Neither one adapts to the athlete.

02 — The case for it

A personal trainer that "knows the athlete without being told". The coach reads your real training history, runs on the device with your own API key, and has no backend, so there's no server bill and no data leaves the phone without consent.

03 — Back of the napkin
Back of the napkinRough · not a forecast

Paid app: ≈ €4.99/mo or €39/yr. The AI coach uses the user’s own API key, so AI costs never land on me.

  1. Downloads in year one (assumption)5,000
  2. ×Download → paid5%
  3. =Paying users250
  4. ×Net revenue per user after Apple≈ €33/yr
  5. =Year-one revenue≈ €8,250
  6. −Server costs€0
Running costs
Backend
none, all on device
LLM tokens
paid by the user (≈ $0.01–0.05 a chat)
Apple Developer Program
€99/yr
At 10× / 100×

There is no backend, so the 10,000th user costs the same as the first: nothing. Growth is limited by attention in a crowded category, not by servers.

Verdict

Almost 100% margin, but a crowded market. Bring-your-own-key is a niche for power users; a hosted coach would widen the market but bring a token bill.

04 — How it works
Diagram · How the coach proposes a program
  1. 01Training historySets, top sets, back-offs, drop sets and muscle load, stored in SwiftData.
  2. 02State digestA deterministic summary of the athlete, small and stable enough to cache.
  3. 03Cached prefixThe prompt prefix is cacheable, so each request is cheaper and faster.
  4. 04LLM proposesOpenAI, Anthropic, Gemini or DeepSeek, using your own key.
  5. 05Diff & confirmChanges show as a diff. Nothing is imported until you say yes.
06 — Engineering highlights
01

Propose

The coach can only suggest changes. Workouts, plans and programs arrive as diffs you accept or reject, so the human always signs off.

02

Animations from code

Every exercise animation comes from a Python rig: skeleton, figure and renderer, versioned like a build pipeline. No stock footage.

03

Catalog pipeline

1,042 exercises (336 core) built by a versioned Python pipeline with a validator, then shipped to the app.

04

MuscleMap package

A reusable Swift package draws the muscle heatmap of where your training volume goes.