Inspiration
Everyone has the problem they keep not starting. The hard conversation with a manager, the decision that has been open for months, the change they mean to make. The blocker is almost never motivation — it is that the problem arrives as one undifferentiated weight, and there is no obvious first move.
The apps that address this ask you to hand your worst week to a server. That is the trade people quietly refuse: the more personal the problem, the less anyone wants it in someone else's logs. MindForward exists to remove that trade. The guidance is genuinely useful and the words never leave the phone — not because of a privacy policy promising restraint, but because there is nowhere for them to go.
What it does
You describe a problem in your own words. MindForward asks a few short questions — what is in the way, what you have already tried, how you want to be guided — and returns a plan:
- The picture. A calm reflection of where you actually are, in your own terms.
- Your first step. One concrete thing to do today, sized to be done today.
- The path. The steps that follow, in order, each with why it matters and what to try right now. Done, next and upcoming are always visible, so the plan never becomes another undifferentiated weight.
The first step is always free. MindForward Plus ($39.99/year or $2.99/week with a 3-day free trial) unlocks the rest of the path and lets you revisit and regenerate a plan when your situation changes.
No account. No feed. No streaks. No notifications begging you back.
How we built it
- SwiftUI, iOS 26, one codebase for iPhone and iPad, fully localized into 8 languages (EN, ES, DE, FR, JA, KO, PT-BR, ZH-Hans), Dynamic Type throughout.
- Apple Foundation Models (
FoundationModels) writes the plan on-device when Apple Intelligence is available. No prompt, no answer and no plan is ever sent to a server — there is no backend to send it to. - A deterministic on-device fallback planner writes the plan when Apple Intelligence is off or unsupported, from the same intake answers, in about a second. Every feature works either way; a self-written plan is labelled "Starter plan" and can be rewritten with Apple Intelligence in one tap once the model is ready.
- RevenueCat powers everything commercial: the SDK (
RevenueCat) for entitlements, purchases and restores, andRevenueCatUIfor the paywall, which is built and published in the RevenueCat dashboard rather than in the app. The offering isdefault, the entitlement gates the full path, and exactly one file in the codebase imports RevenueCat — the rest of the app talks to aPurchaseServiceprotocol, which is what makes the mock-driven screenshot and test runs possible. - PostHog for anonymous, opt-in-only product analytics. Off until the user turns it on in Settings; nothing in the app nags for it.
Challenges we ran into
The honest one: App Review rejected this app four times, and every rejection made the product better.
The deepest was guideline 2.1(a). The app originally required Apple Intelligence, so on a reviewer's device with the model still downloading, the "Continue without waiting" button led to a home screen whose every action led back to waiting. It was not a review-environment problem, it was a dead end we had shipped. The fix was not a better error message — it was removing the dependency: MindForward now writes a real plan itself, on-device, with no model at all. That single change resolved three of the four open citations, because a product that never blocks does not need to explain why it is blocked.
Second: a 7 GB download nobody warned about. Apple Intelligence's model is a one-time ~7 GB download, and 4.2.3(ii) requires disclosing that before the user is committed. Our disclosure existed but sat behind a button on a path returning users never took. It now runs before anything else at launch, states the size in the title, and "Not Now" is a real, complete choice rather than a dead end.
Third: shipping an ATT-shaped prompt for tracking we do not do. We removed
the prompt rather than adding a real one, because the app tracks nothing: no
IDFA, no attribution SDK, no data broker, NSPrivacyTracking = false.
Fourth, and the reason the paywall looks the way it does: on-device generation has no server-side cost curve to hide behind, so the free tier had to be a real product rather than a teaser. "One complete first step, free, forever" is what survived.
Accomplishments that we're proud of
- A genuinely useful AI product with no backend, no account and no network round-trip for anything the user writes. The privacy claim is architectural, not editorial.
- It degrades to nothing. On an iPhone with no Apple Intelligence, every feature still works. Very little AI software can say that.
- Eight languages, iPhone and iPad, Dynamic Type — at 1.0, not "later".
- A paywall that can be redesigned and re-published from the RevenueCat dashboard without an App Store release, on an app where each release cost us a review cycle.
What we learned
That "AI app" and "privacy-first" are not opposites any more — but only if you are willing to design for the device that has no model, not just the one that does. The fallback planner started as a compliance fix and became the reason the product works at all.
And that a paywall is a product surface, not a screen. Moving ours to RevenueCat meant pricing, copy and layout stopped being release-blocking decisions.
What's next for MindForward
- Iterate the paywall from the RevenueCat dashboard against real conversion data rather than taste.
- Plan check-ins: a gentle, opt-in return to a step you marked as "doing".
- Widen the fallback planner's coverage so the "Starter plan" is indistinguishable in quality from the Apple Intelligence one.
- Android, once the on-device story there is comparable.
Log in or sign up for Devpost to join the conversation.