All work

11Own product, 2026

Vault

Money tracking you can just talk to.

What it is
Personal finance app, AI
Built with
React, TypeScript, Supabase, Gemini AI, Cloudflare Workers, PWA
Where it lives
Private app in daily use. Sign-up is closed, shown here with demo data

The best parts

  • Type “dimsum 12” and it is filed under Food. Add “haven’t paid” and it waits as cash to collect
  • One tap on Received moves owed cash into the balance, dated the day it lands
  • Monthly client invoices drafted in one tap from each client’s template, with issue and due dates set
  • Ask Vault answers from my own entries: who still owes me, what I spent on food, whether I can afford something
  • Frosted glass design over a drifting amber and sky wallpaper, with an animated logo of stacked cards forming a V

How it came together

A private money app I built for myself and use every day. Type what you spent the way you would text a friend, and AI files it under the right category. It tracks cash that friends and clients still owe, sends my monthly invoices, and answers questions about my own money.

  1. The problem

    Budget apps want you to fill in forms: amount, category, date, account. I never kept it up. And none of them handled the money I was still waiting on, like a friend who owes me for dinner or a client invoice that is not paid yet.

  2. The approach

    Make logging as quick as sending a message, and let AI do the filing. Then treat money that has not arrived yet as its own thing, so the balance only shows cash I really have.

  3. How it’s built

    A React app on Supabase with row-level security, so every row belongs to one signed-in owner. Gemini turns plain text into entries and answers questions in a chat. When the free AI tier stalls, the app asks a second model at the same time and keeps whichever answers first. Recurring bills and retainer invoices post themselves on schedule.

  4. What shipped

    An app I open every day. Logging takes a few seconds, the home screen shows what is still owed to me, and month-end invoicing is one tap per client.

  5. What we took from it

    The most useful AI feature was not the chat. It was quietly turning “grab 12 and parking 3” into two correct entries. Small, fast and reliable beats clever.