Inspiration
- when we think of fintech, we often think of digital wallets, banking, investing, and so on. but the future of financial technology is reimagining money beyond digital tools — it's breaking the financial literacy barrier for consumers who don't already know how to move their money. 92% of the population impulse-spends, wasting ~$1,800 a year on unplanned purchases that could be used toward responsible long-term financial endeavors. step one of making fintech fairer and more accessible is making sure people even have the money to spend in the first place...
What it does
guilty of impulse spending ourselves, we built Snuffed, an app and chrome extension that catches you in the moment right before checkout and intervenes based on your needs and goals.
willpower alone rarely wins against an impulse, so Snuffed gamifies your resistance. every user has a little flame buddy to look after, and by snuffing out the purchase, your flame burns bright; give in, and the impulse starts to snuff out your flame :( each choice feeds into your Snuff Score, a running measure of how well you're keeping your spending in check.
to hold you accountable and make the change easier, Snuffed brings your friends along by presenting a weekly leaderboard that shows how everyone's Snuff Scores compare, turning saving money into a friendly competition. when you really want to make an impulse buy, our iMessage agent texts a trusted friend, and you only get to check out once they approve.
How we built it
we built the companion app with React Native, Expo, and TypeScript, using reusable components and shared design tokens. the flame combines animated artwork, expressions, gestures, and haptic feedback. local storage preserves preferences and cached progress, while reduced-motion support keeps the interface accessible.
our Chrome extension watches page changes and evaluates combinations of checkout signals, including payment information, order summaries, purchase buttons, and totals. Recognition runs locally using deterministic rules. we also built a React storefront to provide a repeatable checkout demonstration.
a Node.js and TypeScript backend connects the extension and app. Neon Postgres stores profiles, plans, pause history, saved items, and action records. stable event IDs help prevent repeated requests from counting the same action twice. we added SpacetimeDB subscriptions for live pause updates, with polling as a fallback.
we integrated Gemini into the rule-parsing flow to turn written spending intentions into structured proposals that users can review. Photon Spectrum powers two-way iMessage check-ins, bringing a friend’s response back into the pause experience. our demo storefront also integrates Capital One Nessie to record simulated purchases.
alongside the main experience, we explored native iPhone screen recognition with SwiftUI, ReplayKit, and Apple Vision, processing captured frames locally in a separate monitoring prototype.
Challenges we ran into
recognizing checkout reliably: shopping pages use different layouts and wording. a single “buy” button was insufficient, so we combined multiple signals and distinguished checkout screens from product pages and order confirmations.
keeping multiple interfaces consistent: a pause can appear in the browser and app while a friend replies asynchronously. we had to coordinate identifiers, decisions, refreshes, and duplicate events so one interaction did not become several rewards or conflicting states.
understanding iPhone constraints: our native work exposed the difference between recognizing a screen and having permission to restrict another app. signing, capabilities, and device testing became important parts of the development process.
making intervention feel supportive: we spent time balancing clear choices with gentle wording, restrained notifications, and expressive animation. the interface needed to give users space to think while keeping the next action obvious.
we were hitting ai limits unexpectedly paused momentum in our building.
unable to collaborate using cursor so we couldn’t work on the same things at once but we often needed each other’s work to coordinate designs
we were unsure how much to allocate for planning (starting w low-fi wireframes) vs going straight into prototyping to optimize our limited time
having the design system built separately from the infrastructure caused it to make things excessively, like integrate backend- which ultimately made it hard to get an MVP out to test within this short timeframe.
Accomplishments that we're proud of
we connected checkout recognition, a visible pause, app updates, persistent history, and friend messaging into one project.
we were able to take a step toward reducing financial barriers through technology by providing a new and innovative tool to limit spending.
we are especially proud of giving the experience a coherent personality. The flame, customizable appearance, saved-item archive, and progress display make the product feel personal. We also added automated coverage for recognition, state transitions, score deduplication, and user journeys.
What we learned
we learned that a useful financial intervention depends on timing, clarity, and trust. recognizing a checkout is only one part of the problem; the user also needs to understand why the pause appeared and what they can do next.
we learned to give AI a specific role, namely, one of translating user intentions into settings. deterministic rules make checkout behavior easier to explain and test.
we also learned that synchronization deserves as much attention as the interface. duplicate requests, stale responses, and cached state can change the meaning of a financial progress display.
What's next for snuffed
we want to expand and validate checkout recognition across more merchants, improve price extraction, and measure missed detections and false alarms.
our next steps also include authenticated accounts, stronger offline synchronization, and replacing remaining demo data with individual user history. on mobile, we want to explore native integrations that support explicit user consent.
finally, we want to test snuffed with real users to learn which reminders, social interactions, and rewards help them make more intentional spending decisions.
Built With
- asyncstorage
- chromemanifestv3
- expo.io
- figma
- geminiapi
- neon
- nessieapi
- node.js
- photon
- playwright
- react
- react-native
- spacetimedb
- typescript
- vite

Log in or sign up for Devpost to join the conversation.