Inspiration
Most of my money doesn't go to big purchases. It goes six dollars at a time, at the same few places, and I only notice at the end of the month. Every budgeting app has the same problem: it waits for you to open it. But the decision to spend happens at the door of the store. So I built something that shows up at that exact moment, in the app I already check all day: iMessage.
What it does
iTrack texts you when you walk into a store you've been overspending at. You don't type anything. You share your location with iTrack once, like you would with a friend, and when Find My sees you walk into Starbucks, it texts you first.
You get a native iMessage card with your real numbers: what you've spent there this month, how many visits, how many hours of work that was, how far over budget you are, where you'll end the month at this pace, and what that money would be worth if it had gone into the company's stock instead. Tap the card and your full breakdown opens right inside Messages. Then a poll: skip it or buy it. Tap skip and you get confetti, and the money goes into your skip fund. Every Friday you get a recap.
If you're way over budget, iTrack also calls you. The voice is a relentlessly optimistic coach who believes in you way too much to let you buy that latte ("twelve trips to Starbucks this month, son, that's not a habit, that's a season ticket"). Say "skip" out loud on the call and it counts, and the recap lands back in your messages. You can also call iTrack anytime, or just text "call me".
How we built it
- Photon Spectrum for iMessage: native app cards that open inside Messages, polls, screen effects, typing indicators
- Find My through Photon to know when you walk into a store
- Plaid for real bank transactions
- ElevenLabs voice agent on a Photon phone number over SIP, with your latest numbers loaded in before every call
- Gemini for personality only. Every number is calculated in code, so the AI never makes up your spending.
- MCP so outside agents like Claude can read your spending and text you through iTrack
- resvg to render the cards in an iOS widget style
Challenges we ran into
Location was the hardest part. iMessage location shares never reached the agent on the first version, so I went through texting your location, map links, and OwnTracks before getting Find My working through Photon Spectrum. I also hit a lot of limits on shared lines, one error at a time, and had to design around what actually works. Keeping the AI funny without ever letting it touch the numbers took a few rounds too.
Accomplishments that we're proud of
- The agent starts the conversation, at the right place and the right time.
- It never shows a wrong number.
- Text and voice share one memory. Say skip on a call and the confetti shows up in your messages.
- It feels like iMessage, not like a bot living in iMessage.
What we learned
A good agent knows when not to talk. iTrack only reaches out at the door of a store you care about. The rest of the time it stays quiet.
What's next for iTrack
- Real bank accounts through Plaid production, with budgets learned from your history
- Spotting patterns before you even leave the house, like "you always hit Starbucks after class on Tuesdays"
- Shared skip funds with friends, so you can save for something together
Built With
- cloudflare
- gemini
- google-ai-studio
- imessage
- javascript
- mcp
- model-context-protocol
- node.js
- owntracks
- photon
- plaid
- resvg
- svg
Log in or sign up for Devpost to join the conversation.