tomwilliamson.id.au
← All work

Forge

A privacy-first AI workout coach for iPhone and Apple Watch, now in open TestFlight beta. Built solo with Claude Code. Forge is the second iteration of the personal training app I started as GymLog. The leap was deliberate. Take the build pattern I'd proved on a tool-for-one and push it into a product that has to stand on its own legs in public.

Forge · opens in a new tabSee the live product pageA dedicated marketing page for the app. Interactive phone demo, working plate calculator, the AI coach showcase. Open it alongside this writeup for context.Open the product page →

From GymLog to Forge

GymLog was the test bed. The question I was answering was whether Claude Code could carry a Swift project where I had zero syntax knowledge going in, and whether the same pattern would transfer to companion apps for enterprise agents. The answer was clearer than I expected. Domain clarity beats syntax knowledge.

Forge takes that thesis into harder territory. The question on GymLog was whether the code would compile. The question on Forge is whether the product stands on its own legs in public, with a coherent positioning story, a defensible privacy architecture and a commercial model that survives contact with users who don't know me.

The leap surfaced three disciplines I hadn't had to engage with on GymLog. Positioning. Architecture. Pricing. Each one mattered more than the code itself.

The positioning question

I ran a workshop on a specific question. Is privacy-first a positioning users will pay for, and should Forge be freemium? Four perspectives in the room. A sceptic. A UX designer. An app marketer. An app seller. Each one pushed back on the premise.

The sceptic's argument landed hardest. Privacy is a fine trust signal and a weak purchase reason. The graveyard of privacy-first consumer apps is large. The survivors (Signal, DuckDuckGo, Proton) win on also being good, with privacy as the tiebreaker rather than the headline product. Pricing privacy as the lead invites the obvious retort the moment you integrate with an AI service or Apple Health.

The designer reframed the question. Privacy must be felt, not claimed. A badge does nothing. Visible control does. Opt-in toggles, a plain-English "here's what leaves your phone" screen, the ability to use the whole core app with zero handoffs.

The marketer agreed that privacy wasn't the discovery term. People search for "AI workout plan" or "plate calculator". Nobody searches "private gym app". So privacy is a closer, not a discovery hook. It is, however, a sharp wedge against the cloud-first incumbents, and Apple loves the story. Editorial featuring on the App Store is real distribution you can't buy.

The seller closed the loop on the commercial question. Users don't pay for privacy directly. They pay for automation, scale and convenience. Bring-your-own AI key is the killer privacy-congruent Pro feature. The user pays their AI provider directly. Forge never sees the prompt. The developer carries no server cost.

The synthesis. Privacy is the brand spine and the closer. Features are the headline. Automation is what people pay for. Ship local backup before you headline privacy, so "on your phone" doesn't quietly mean "one drop away from gone".

That output shaped almost every product decision underneath it.

The AI integration

The standard play in 2026 is to wrap OpenAI's API, charge a margin and ship a chatbot. Forge does the opposite. The AI handoff is user-initiated. The prompt is assembled on-device. The user picks which assistant runs it. Claude, ChatGPT, Gemini or Forge's own in-app builder.

The handoff sequence is the teachable moment. When a user taps "Copy AI prompt", Forge shows the boundary explicitly. This text goes to your AI assistant. Nothing else does. Framed well, what looks like a confession becomes a control surface. The user is doing the handing-off, with full visibility into what's in the prompt.

The architectural payoff is that Forge needs no server, no API key management and no per-call cost. The privacy story becomes structurally true rather than rhetorically asserted. The trade-off is that the AI prompt is the artefact, so the prompt has to be very good. Forge spends real engineering on the prompt assembly layer. Which behavioural insights to surface. How to phrase the user's injury caveats. How to present the last five weeks of training data in a form the model can actually use.

Progression that adapts

Most workout apps prescribe a target weight and ask you to log what you did. Forge inverts that. Targets follow the weight you actually completed your reps at, week to week, set to set. Drop a set, skip a set, carry it forward. The next session's target reflects reality, never the spreadsheet.

This is double-progression done properly. The mechanics are well-known to coaches. The hard part is the UX. Forge surfaces your next-session target live during the workout, so the rep at the bar knows what they're chasing before they start. Behind the scenes the app is doing the bookkeeping you'd otherwise carry in your head between sessions.

Native, top to bottom

Forge is pure Apple frameworks. Swift, SwiftUI, SwiftData, HealthKit, WatchConnectivity, CoreMotion, ActivityKit for the Live Activities, WidgetKit, Swift Charts, App Intents, watchOS. No React Native, no Flutter, no web view wrappers.

The decision was deliberate. Forge has to feel native in the moments that matter most. Starting a workout on the Watch. Glancing at a rest timer on the Lock Screen. Finding the current set in the Home Screen widget. Every one of those surfaces is an Apple-specific affordance that cross-platform shortcuts handle badly. Building native is the slow choice on day one. It's the fast choice on day thirty when you want to ship a Home Screen widget without rewriting half the app.

The other payoff is offline. The whole app works in a gym basement with no signal. No login wall, no sync indicator, no spinner. Instant.

The freemium model

Three tiers, designed to be congruent with the brand spine rather than fight it.

Free is genuinely useful. Manual logging, plate calculator, copy-and-paste AI prompt, basic progress charts, Apple Watch heart rate. The core training loop works for free, forever.

Forge Pro lives where automation and convenience live. In-app AI generation with a bring-your-own-key option. Unlimited history and charts. Encrypted backup and restore. The staged phase builder. Watch accelerometer rep-counting. Automatic progression rules.

Forge Lifetime is a one-time unlock for users who prefer to buy once rather than subscribe. The lifetime option is on-brand for a privacy positioning. The message is "we're not here to harvest you". A lifetime unlock is that message expressed as a business model.

Indicative pricing sits in the AUD$7.99 to AUD$9.99 per month range, AUD$39.99 annual, AUD$89.99 lifetime. Final pricing waits on TestFlight feedback.

What's deliberately later

Six things are explicitly later, not now. Each one earns its place after enough operating data exists to do it well.

End-of-phase wrap-up with light gamification: PRs, streaks, achievements. The risk is slot-machine engagement loops. The constraint is to ship recognition without manipulation.

A guided, injury-aware training profile that pre-fills the AI prompt and the in-app builder. Onboarding work that has to wait until the core training loop is locked.

Start and finish sets from the Watch, Lock Screen and widgets, with live reps shown three of eight. The watchOS work to make this reliable is non-trivial.

An interactive 3D muscle map. Rotate the body, tap a muscle group, see your data for that muscle. A visualisation that justifies its complexity only once enough sessions exist to populate it meaningfully.

A licensed HD exercise-animation library. Vendor selection and licensing rather than engineering.

Forge Pro itself. Bring-your-own AI key, encrypted iCloud backup, RPE-based autoregulation. The Pro tier ships after the free experience earns its retention.

App Store launch follows all of the above.

The lesson, so far

The original GymLog lesson holds. Domain clarity beats syntax knowledge. The bottleneck wasn't writing code. It was articulating my own workflow precisely enough that Claude could turn it into a data model.

The Forge lesson is the next layer up. Domain clarity beats positioning instinct. The bottleneck wasn't the privacy architecture or the AI integration. It was articulating a positioning story that survives contact with markets, designers and sceptical sellers. The workshop I ran produced a different answer than the one I started with. Privacy is the spine. Features are the headline. Automation is what people pay for. Lifetime is the proof. Those are commercial design decisions, not technical ones.

The pattern I keep coming back to. AI helps you express your expertise. It does not replace it. Forge is the application of that pattern to a real product, where the expertise has to land with users who don't know me and don't owe me time.

Join the TestFlight beta

Open beta. Free. No commitment. Train with the first cut and help shape what gets built next.