Inspiration
My mum has three budgeting apps on her phone. They show her charts. They tell her she overspent on coffee. She stopped opening all of them.
That's the problem with every finance app on the market: they give you tools and hope you use them. A meal planner. A bill analyzer. A savings calculator. They sit in a tab and nobody opens them after week one.
But here's what nobody talks about: my mum already wants to save. She's not lacking motivation. She's lacking a clear next step, a timely push, and someone celebrating when she does it. The problem isn't willpower, it's that no app meets her where she is.
Behavioral science explains why. BJ Fogg's Behavior Model says behavior happens when three things converge: motivation, ability, and a prompt. My mum has the motivation. But finance apps only give her ability (tools, calculators, dashboards) and skip the other two. There's no prompt at the right moment. There's no action small enough to start. There's no celebration that makes her want to come back tomorrow.
So I asked a different question: what if a finance app didn't give her tools — but challenged her to do one thing today?
Not "track your spending." Not "set a budget." Just: screenshot your bank statement. Five minutes. Done.
That's how Mum Money Wins was born. Not as another dashboard. As a challenge engine that teaches busy mums to save and invest...five minutes at a time.
What it does
Mum Money Wins turns a money goal into a structured 30-day challenge with daily 5-minute actions that are small enough to finish and concrete enough to prove.
Why a challenge and not a tool, not a tracker, not a dashboard:
Every other finance app assumes the hard part is knowing what to do. So they build tools: a budget planner, a spending tracker, an investment calculator. But knowledge isn't the bottleneck. My mum knows she should cancel unused subscriptions. She's known for months. What she doesn't have is a reason to do it today, a structure that makes it feel achievable right now, and someone cheering when she does.
A challenge format solves all three problems at once:
- It creates urgency without pressure. "Day 4 of 30" is a gentle clock. It's not a deadline — it's momentum. She's not behind. She's in motion.
- It breaks overwhelming goals into undeniable small wins. "Save more money" is paralyzing. "Screenshot your bank statement — 5 minutes" is something she can do while the kettle boils.
- It has a finish line. Budget trackers run forever, there's no "done." A 30-day challenge with 9 checkpoints has an end. And endings are shareable. Nobody posts a pie chart to Instagram. Everyone shares a finish line.
- It scaffolds learning through doing. Milestone 1: Identify (what am I spending on?). Milestone 2: Evaluate (which costs can I cut?). Milestone 3: Act (cancel, negotiate, switch). Each builds on the last. By the time she's calling her energy provider, she's already built the confidence from smaller wins.
This is fundamentally different from giving someone a calculator and hoping they calculate.
The core loop:
One-screen onboarding — She picks Save or Invest, taps a topic (like "Cut subscriptions" or "Bills audit"), and the AI builds a personalised challenge in seconds. No account creation. No 12-step setup wizard. One screen.
AI-generated plan — 3 milestones, 9 checkpoints, each under 5 minutes. The AI includes If-Then implementation intentions ("If it's weekend, then I cancel unused subscriptions") — a technique from behavioral psychology research by Peter Gollwitzer that increases follow-through by 2-3x by tying actions to specific moments. A savings estimate card shows what's on the table (e.g. "$39–$193").
Swipe-to-Accept ritual — She swipes to commit. That gesture matters — research on commitment devices shows that a physical act of commitment (not just tapping a button) increases completion rates. Starting feels brave. Quitting feels hard. Finishing feels shareable.
Daily hub — Every day she sees one thing: Today's Move. One checkpoint. Five minutes. Not a dashboard with 14 metrics. Not a feed of tips. One thing. She taps it and gets an AI-generated insight page explaining why this matters, the exact steps to do it, and quick wins to make it easier. She's not just doing — she's understanding. That's the difference between a to-do list and a learning path.
Complete + celebrate — She logs how much she saved, adds optional proof (a note, a photo), and gets confetti + a Win Card. The proof step isn't just accountability — it forces reflection. "What did I do? How did it go?" That question turns action into understanding. It's how adults actually learn: not from reading advice, but from doing something and writing down what happened.
Share — One tap to Instagram Stories or the group chat. Six Win Card designs — Classic, Neon Pulse, Passport Stamp, Trophy Night, Minimalist Mono — rendered at native 1080x1920 Instagram Story resolution. Her friends see it. They want in. That's the viral loop. Zero ad spend.
Community — Real stories from real mums. Sarah cut her grocery bill in half. Leanne freed £127/month from forgotten subscriptions. She reads their steps, taps "Accept this challenge", and the AI builds her a plan from that mum's exact moves. Social learning, turned into action, in one tap. She doesn't just feel inspired — she walks away with a plan.
Pro at the right moment — Free users get one full challenge (all 9 checkpoints) plus a few community stories. By the time she hits the paywall, she's already saved real money. The paywall appears at peak buy-in because the app has already delivered.
Four tabs. That's it. Save. Invest. Community. You. Nothing else. Every extra screen is where a busy mum quits.
What this is NOT:
- Not a budget tracker (she has three of those already)
- Not a spending analyzer (charts don't change behavior)
- Not an investment platform (she doesn't need another brokerage)
- Not a tip feed (reading advice ≠ taking action)
It's a challenge engine. The only finance app where the entire UX is designed around getting her to do one thing today — and celebrating when she does.
How we built it
Architecture: SwiftUI + MVVM with strict separation — views are dumb, ViewModels handle state, services use protocols. Small files, small components. Async/await throughout.
AI Plan Generation (OpenAI GPT-4.1-mini):
- Structured JSON output with strict schema validation
- Every plan: exactly 3 milestones x 3 checkpoints = 9 total
- Validation rules enforce: 5-10 minute tasks, proof-friendly actions, exactly one If-Then implementation intention per plan
- If the AI output is invalid, the system auto-repairs by sending the broken JSON back with the specific validation failures and retrying once
AI Checkpoint Insights (OpenAI):
- Each checkpoint gets a dedicated insight page generated on-demand
- Returns: motivational quote, "why this matters" explanation, numbered steps, and quick wins
- Results are cached locally for instant re-access
- Fallback content ensures the page always loads
Data persistence: SwiftData with cascade relationships (Challenge → Milestone → Checkpoint → Proof/Cheer). Computed properties handle progress tracking, streak counting, and savings totals.
Win Card rendering: SwiftUI ImageRenderer renders six distinct card designs at 1080x1920. Each design has category-specific color palettes (Money = green, Confidence = orange, etc.). Sticker variants render with transparency for Instagram Story overlays on top of user photos.
RevenueCat integration:
- Centralized
EntitlementsServicemanages all subscription state - Entitlement: "challengeaccepted Pro"
- Products: monthly ($2.99) + yearly ($19.99)
- Purchase, restore, and offline handling all work end-to-end
- Free tier: 1 active challenge + limited community articles; Pro: unlimited
- Paywall uses RevenueCatUI's native paywall component
Sharing: Native Share Sheet for general sharing + direct Instagram Stories integration via com.instagram.sharedsticker.backgroundimage pasteboard API. Category-specific background colors for story posts.
Challenges we ran into
Getting AI output reliable enough for production. OpenAI doesn't always return valid JSON, even with structured output mode. We built a two-pass validation system: parse → validate against our rules (exactly 9 checkpoints, one If-Then, all proof-friendly, title under 36 chars) → if invalid, send the broken plan back with specific failures → re-validate. This catches 99%+ of issues. For the remaining edge cases, the local fallback template ensures the user always gets a working plan.
Making the plan feel personal, not generic. Early prompts produced plans that sounded like ChatGPT writing a to-do list — vague, passive, and undoable. "Review your monthly spending habits" is not a 5-minute action. "Screenshot your bank app's subscriptions page" is. We iterated heavily on the system prompt — requiring proof-friendly language, enforcing the If-Then format for behavioral triggers, and limiting checkpoint scope to genuinely 5-minute tasks. The constraint makes it better. Every checkpoint must answer: "Could a busy mum do this in the five minutes before school pickup?" If not, it's too big.
Win Card rendering performance. Rendering six 1080x1920 images simultaneously when the celebrate screen opens was slow. We pre-render all variants in the ViewModel's load() call and cache them in a dictionary keyed by variant. The carousel scrolls smoothly because every image is ready before the user sees the screen.
RevenueCat sandbox testing. Subscription edge cases (expired trials, family sharing, interrupted purchases) required careful handling. We centralized everything in EntitlementsService so there's exactly one source of truth for Pro status, and added a DEBUG override for faster development iteration.
Making the paywall feel earned, not aggressive. We deliberately let free users complete an entire 9-checkpoint challenge before gating. This means the paywall conversion rate should be high — by the time she sees it, she's already saved real money and knows the app works. The challenge was resisting the temptation to gate earlier.
Accomplishments that we're proud of
Proving that constraint is a feature, not a limitation. We deliberately removed every "tool" we built. Savings calculator — removed. Budget category view — removed. Spending trend chart — removed. Every time we removed a tool and replaced it with a challenge step, the app got better. The discipline to ship less in a world that rewards feature lists is the hardest product decision we made — and the one we're most proud of.
The "one thing today" design philosophy. Every screen reinforces focus. The daily hub shows one checkpoint. The insight page explains one concept. The proof captures one reflection. The entire UX answers one question: "What's my one thing today?" In a world of feature-bloated finance apps, restraint is the hardest feature to ship.
AI plans that pass behavioral science review. Every plan includes an If-Then implementation intention — a technique from behavioral psychology that increases follow-through by tying actions to specific moments ("If it's weekend, then I cancel unused subscriptions"). The AI enforces 5-minute time caps, proof-friendly language ("screenshot your bank statements" not "review your budget"), and scaffolded difficulty (identify → evaluate → act). No other finance app builds these automatically.
Six Win Card designs that people actually want to share. We studied what makes Strava's activity cards shareable and applied it: bold typography, progress visualization, category-specific aesthetics, and native Story resolution. Every finance app gives you a pie chart. We give you something she sends to the group chat. This isn't a sharing feature bolted on — it's the growth engine built into the core product.
Community → Challenge in one tap. Reading Sarah's grocery story and tapping "Accept this challenge" to get an AI-generated plan based on her exact steps — that's social learning turned into action. Other apps have content libraries. We have a pipeline from "I read her story" to "I have my own plan" in one tap. It's the feature that makes this a platform, not just an app.
The swipe-to-accept ritual. A button says "start." A swipe says "I commit." The physical gesture of dragging across the screen creates a psychological contract that a tap never could. It makes starting feel brave and quitting feel hard. Small UX choice, massive behavioral impact.
RevenueCat purchase flow working end-to-end. Purchase, restore, entitlement check, offline handling, and sandbox testing — all centralized in one service, all production-ready.
What we learned
Tools don't change behavior. Challenges do. This isn't just our tagline but it's a design principle we discovered through building. Every time we added a "tool" (a savings calculator, a budget tracker), it made the app worse. Every time we removed one and replaced it with a challenge step, engagement went up.
Here's why: a tool puts the burden on the user. "Here's a calculator — now go figure out what to do." A challenge does the opposite. It takes her goal, breaks it into the smallest possible next step, and says: "Do this. Five minutes. Today." The tool assumes she has time, energy, and clarity to figure out her own plan. The challenge assumes she's a busy mum with five minutes between school drop-off and work — and it meets her there.
The entire finance app industry is built on the tool paradigm. Budget trackers. Spending analyzers. Investment simulators. They're all tools. And they all share the same failure mode: the user opens them for a week, feels overwhelmed by the information, and stops. Not because the tool is bad...but because knowing what to do and actually doing it are completely different problems, and tools only solve the first one.
Challenges solve the second one. A challenge gives her:
- A clear next step (not "review your finances" but "screenshot your subscriptions page")
- A time constraint (5 minutes — not "whenever you get around to it")
- A reason to do it today (Day 4 of 30 — momentum is real)
- A celebration when she does (confetti, a Win Card, something to share)
- Social proof that it works (Sarah saved $200. Leanne freed £127/month. Real mums, real results.)
That's the fundamental insight: people don't need more information about money. They need to be challenged to do one small thing today.
Proof-as-reflection is a learning mechanism. We added the proof step for accountability. But we discovered it's actually how adults learn — not from reading tips, but from doing something and writing down what happened. The note field asking "What did you do? How did it go?" forces a moment of reflection that turns action into understanding. This is Kolb's experiential learning cycle in action: do → reflect → understand → apply. Every other finance app stops at "read this tip." We go all the way through the cycle.
Scaffolded difficulty builds real confidence. Our AI doesn't generate 9 random tasks. It builds a learning path: Milestone 1 is awareness (identify what you're spending on), Milestone 2 is analysis (evaluate which costs are unnecessary), Milestone 3 is action (cancel, negotiate, switch). By the time she's calling her energy provider to negotiate a better rate, she's already built confidence from smaller wins. That scaffolding is intentional — and it's why a challenge format works where a flat list of tips never could.
The paywall should be a celebration, not a gate. By the time a user hits our paywall, she's completed a full challenge and saved real money. She's read community stories. She's shared Win Cards. The paywall isn't asking her to pay for something unproven — it's offering more of something she already loves. RevenueCat made implementing this philosophy straightforward with offering configuration and entitlement management.
Sharing is the growth engine. Every Win Card shared is a free ad. Her friends see it, want in, and start their own challenge. Zero acquisition cost. The viral loop is built into the core product experience, not bolted on as a referral program. This only works because the challenge format produces a shareable moment — a finish line, a win, a result. Budget trackers don't produce shareable moments. Challenges do.
What's next for Mum Money Wins
- Push notifications — Timely daily reminders tied to her If-Then triggers ("It's evening — time for your 5-minute money check")
- Win Vault — A gallery of all completed Win Cards, organized by challenge
- Premium Win Card themes — Seasonal and limited-edition designs as a Pro perk
- Squad Challenges — Invite friends to do the same challenge together, with shared progress and group celebrations
- Web landing page for Cheers — Friends tap a shared link, leave a reaction without logging in, reinforcing the sharer's progress
- Expanded community — User-submitted stories with moderation, turning the community tab into a growing library of real savings wins
- International currency support — Currently USD-focused; expanding to GBP, EUR, AUD based on our mum audience demographics
Built With
- revenucat
- swiftui
Log in or sign up for Devpost to join the conversation.