I Built My Own Personal Finance App with Google Antigravity
Look, I’ve bootstrapped SaaS businesses to $500k in ARR. I know my way around a P&L statement. But for the longest time, my personal finances were a dumpster fire of disconnected spreadsheets and "set it and forget it" subscriptions that I definitely forgot.
My girlfriend (Lindsay) and I tried everything. Mint (RIP), YNAB, Monarch, Copilot. They’re all... fine.
But "fine" doesn’t work when you have specific goals. We didn't just want to track expenses; we wanted to gamify our frugality. We wanted to see who was winning the "Least Spent" award each week. We wanted to track our house appreciation right next to our ETF performance without paying $100/year for the privilege.
So, I did what any rational developer with too little time does: I decided to build my own personal finance app.
But this time, I didn't write every line of code. I used Google Antigravity (Google’s new agent-first IDE) and Gemini to build a tailored solution that actually fits our lives.
The Problem with "Off-The-Shelf"
Most budgeting apps are built for the average user. They assume you have standard 9-to-5 paychecks and simple shared expenses. Lindsay and I needed something specific:
- The "Split" Button: We split a lot of shared costs 50/50. In most apps, this is a manual math nightmare. I wanted a single button that says
Split 50/50and updates both our ledgers instantly. - The Competition: We wanted a literal scoreboard. Who is saving more this month? Who is the "High Spender" (emoji included 😬)?
- True Net Worth: I wanted our Zillow estimate to sit right next to our Plaid investment feeds. Real-time reality checks.
The Stack: Google Antigravity & Gemini
I used to waste weeks setting up environments. "Mistake #35" in my book was putting design over utility, but Mistake #36 was definitely over-engineering the starting line.
Enter Google Antigravity. It’s an "agent-first" IDE. Instead of just autocompleting my code, I treated Gemini like a junior dev who never sleeps.
- Frontend: Next.js 16 (App Router)
- Styling: Tailwind CSS 4 (because I’m done fighting CSS)
- Backend: Supabase (Auth & Postgres)
- AI: OpenAI (for categorizing messy bank transaction names)
The "Killer Features" We Built
1. The "Winner" Dashboard
This is the heart of the app. Every time we log in, we see a card telling us who the "Winner" is (lowest spender) and who the "High Spender" is for the month. I literally had Gemini write the logic to calculate UserTotal and sort by total.
// The code that shames me every month
const highSpender = userTotals[0];
const winner = userTotals[userTotals.length - 1];
// Result: 🏆 Lindsay vs 😬 Travis
2. One-Click Transaction Splitting
We built a custom TransactionTable component. If I pay for dinner, I click one button: "Split 50/50".
The app instantly updates the assigned_user_id to null (shared), sets a is_split flag to true, and visually updates the row to purple with a split icon. No calculator app required.
Why You Should Build Your Own
You might think, "Travis, this sounds like a lot of work just to save $10/month." You're missing the point.
When you build your own personal finance app, you own the data. You own the logic. If you want to change the rules of how you budget, you just change a line of code. You aren't waiting on a product manager at some fintech company to approve a feature request.
The Lesson: Stop forcing your life into someone else's software. If the tool doesn't exist, build it. It’s easier than you think.