Inspiration
Splitwise is already really powerful, but the annoying part is still entering everything into it. Most shared expenses are already discussed in text chats, where plans are made and people talk about who paid for what. This is especially relevant in the U.S., where Apple makes up more than half of the smartphone installed base and iMessage is the default messaging app on iPhones.
The pain point I wanted to solve was that one 20-minute session where I sit with a calculator, try to remember all the splits, figure out who owes what, and then manually enter everything into Splitwise. With Splitty, I can just explain what happened naturally and let the agent do the work.
What it does
Splitty is an agent that sits inside iMessage. With an enterprise Photon plan, it could have its own dedicated number sitting inside a group chat. Assuming everyone is already part of the same Splitwise group, which can be handled through a simple onboarding step, I can ask Splitty to start listening.
From there, I can just debrief what happened:
- Who paid
- Who was part of the expense
- How much it cost
- How it should be split
- Any exceptions or adjustments
Splitty turns that conversation into draft expenses. I can review and correct those drafts, and once everything looks right, I can finalize the batch and sync it to Splitwise. That's basically it. Simple and easy.
How I built it
The project is primarily written in TypeScript.
- Vercel Eve for creating and hosting the agent
- Photon for connecting the agent to iMessage through Channels and webhooks
- ASI:One as the OpenAI-compatible chat engine
- Splitwise API for syncing finalized expenses
- An MCP-ish Splitwise tool layer so the agent has a clean interface for working with groups and expenses
Challenges I ran into
Getting my head around Photon was probably the biggest challenge. At first, I thought it had the group support I needed, and it was only later that I realized this was a limitation. There were a few moments where I wanted to drift away from the original idea, but I stuck with it and saw it through.
I also spent some time writing my own custom mailbox to poll incoming and outgoing messages before realizing that Eve already gave me a much simpler way to handle it. I ended up shifting the project toward Eve, although the original Photon runtime still exists in the codebase as a fallback.
Accomplishments I'm proud of
- Getting the agent into iMessage. Seeing that first message come through was huge.
- Getting an expense discussed in chat to actually sync with Splitwise.
- Building the MCP-ish Splitwise setup and getting the agent to work across both the chat interface and the Splitwise interface.
- Actually finishing the full loop instead of stopping at a prototype that only generated fake expenses.
What I learned
Compared to other hackathons, I spent a lot more time planning things out with my agents before actually building. That helped in some ways, but it also slowed me down. There is definitely a sweet spot between planning everything properly and just building fast and figuring things out as I go.
I also think I was a little too ambitious with the number of ideas I had for a solo project. Next time, I want to prototype faster, keep the scope narrower, and focus on getting the core loop working before expanding it.
What's next for splitty
- Receipt uploads
- Final summaries displayed as a cleaner mini-app
- A more fine-tuned agent system
- Telegram and other chat integrations
- Voice note support
Built With
- asi1
- node.js
- typerscript
- vercel
Log in or sign up for Devpost to join the conversation.