Inspiration
Budgeting apps track spending after it's already gone, and most guilt-trip you into saving — which is why nobody sticks with them. We wanted to intervene at the moment of temptation instead, and make skipping a purchase feel like winning something rather than losing something.
What it does
Lemonade lets you log a want instead of buying it, starts a 24-hour cool-off, and shows the price in terms that actually mean something — "9 café trips" instead of "$180" — plus gentle pattern flags like repeat impulse buys. Skip it, and you earn Lemons that grow your world, extend your streak, and push a real experience goal forward.
How we built it
We built a lightweight cross-platform frontend around the cool-off and world-growing animation, a Firebase/Supabase-style backend for logging and notifications, and an LLM layer handling onboarding, needs-vs-wants categorisation, and weekly coaching. The MVP relies on manual expense logging for demo reliability, with bank integration left as a stretch goal.
Challenges we ran into
Getting the cool-off screen to feel like a reward instead of a lecture took real iteration, as did personalising the opportunity-cost math so it reflected the user's own habits instead of a generic conversion. We also had to tune notification frequency down significantly to avoid nag fatigue, and deliberately cut scope to keep the core loop demo-ready.
Accomplishments that we're proud of
We got the entire core loop working end-to-end — log, cool off, see the cost, decide, watch the world respond — and it felt satisfying rather than gimmicky. Reframing restraint as "earning Lemons" instead of "not spending" changed how early testers talked about the app.
What we learned
Personal, specific nudges beat generic numbers every time, and the moment of temptation is where real behaviour change happens — not the recap afterward. We also learned that ruthless scoping mattered more than feature breadth for a convincing demo.
What's next for Lemonade
Next up: open-banking integration for automatic transaction import, tiered cool-off periods by price, social features like shared goals and streak leaderboards, a regret journal to reinforce past skips, and an experience marketplace that turns funded goals into actual booked experiences.
Built With
- chromedevtools
- cssmodules
- cssvariables
- datefns
- eslint
- github
- jira
- lucidereact
- motion
- nextjs
- obs
- playwright
- pnpm
- radixui
- react
- reactdom
- reacthookform
- shadcn/ui
- sonner
- tailwindcss
- trello
- typescript
- vercel
- zod
- zustand
Log in or sign up for Devpost to join the conversation.