Sprout — Money Affirmations
A calm daily money-mindset app — one affirmation a day, no account needed.

Sprout is a daily money-affirmation app for iPhone: a few positive lines a day, a home-screen widget, and no account needed. I have designed and built it on my own since 2024.
Sprout is a calm money-mindset app. Every day you read a few short, positive lines about money, save the ones you like, and build a streak. A widget shows today's card right on your iPhone home screen. Everything works without an account, and the deeper library is a simple subscription.
- Role
- Solo — design & code
- Timeline
- 2024 — ongoing
- Stack
- Expo SDK 54 · React Native 0.81 · React 19 · TypeScript · Zustand · Supabase · RevenueCat · Reanimated + Gesture Handler · @callstack/liquid-glass · @bacons/apple-targets
The pitch
A daily habit, not an addictive feed.
What the app is for.
Sprout is built around one quiet daily habit: read today's affirmation, save it if it speaks to you, come back tomorrow. No endless feed, no pushy game tricks, no pile of notifications. The goal is five liked cards a day — and that's the whole game.
Why Expo.
Expo is a toolkit that lets one codebase run on both iPhone and Android, with easy access to native features like widgets and notifications. It turns shipping a new version into one command instead of a week of work.
Your data
Everything stays on your phone.
No login, ever.
You don't need an account to use Sprout. Your favorites, your streak, and your settings are saved on your phone, in three separate stores. Cloud sync exists in the code but is switched off on purpose: the app works offline from the first launch, forever.
What gets saved where.
- App settings — Your theme, your wallpaper, and how the widget should look and behave.
- Your cards — Favorites, today's viewed and liked cards, and the topics you chose.
- Your profile — Your name, reminder settings, and your daily streak.
- A quiet daily reset — Each morning the app resets today's counters and updates your streak — no button to press.
The swiper
Three cards, built for the thumb.
Made for touch, not scroll.
The home screen shows a stack of exactly three cards — the one before, the current one, and the next. When you swipe, the top card slides away and the next one grows into its place. The same card never comes back twice in one session.
Loaded once, then instant.
The affirmations are fetched from the cloud once per session and kept in memory. Switching tabs never reloads them — the app feels instant because the data is already there.
Reminders
Spread through your day, like a playlist.
Two ways to be reminded.
Most apps offer one option: "remind me at 9 AM." Sprout has a smarter mode too. You pick how many reminders you want, when your day starts, and when it ends — say, six reminders between 8 AM and 8 PM — and the app spaces them out evenly. You set it once during the welcome flow, and the phone handles the rest.
On the home screen
A real iOS widget, always in sync.
Native, not a copy.
The widget is a real iOS widget, not a web shortcut. Every time today's card or your streak changes, the app writes the new values into a small shared box that the widget reads from. So the card on your home screen always matches the card in the app — even when the app is closed.
What you can choose.
- Display style — Show just the text, the text plus its author, or the text plus its topic.
- Content source — Today's card, a random favorite, or your own saved mix.
- Accent color — Follows the wallpaper you picked inside the app.
- Refresh rate — How often iOS should ask the widget for fresh content.
The business
Free where it builds the habit, paid where it goes deeper.
A simple, honest split.
Three topics ship free — enough to build a real daily habit. Seven more sit behind a subscription (monthly, yearly, or lifetime), handled by RevenueCat, a standard tool for app subscriptions. One switch in the code decides what's open.
Craft
Details that make it feel like an Apple app.
The little things you can feel.
- Frosted glass — Cards, buttons, and sheets use Apple's frosted-glass look — with the text tuned to stay readable on glass.
- Twenty-two wallpapers — The background is part of the product. Picking a new one also recolors the widget.
- A tap you can feel — Every action has its own tiny vibration — a swipe, a like, and a new streak day each feel different.
- Calm by design — Four font weights, one spacing scale, one brand orange. Nothing shouts.
Quality
Tested where a test actually helps.
Two kinds of tests.
The logic — streaks, favorites, daily resets — is covered by automatic tests. The real user journeys — finishing the welcome flow, swiping and liking, hitting the paywall — run as scripted tests on a real device. Every change passes the checks before it ships.
Three sets of eyes.
One tool watches for crashes. One records how people move through the app. One counts sessions. Three tools, each answering a different question.
Next project: KeySticker — macOS Shortcut Panel