← Projects

VibeExpenses

live

Expense-capture PWA

for
Anyone with a shoebox of receipts and a claim to file
started
19 June 2026
in
A photo of a receipt
out
A CSV, a Xero, QuickBooks or MYOB import file, or a one-page PDF
data
Kept in your browser. Photos go to Anthropic to be read, on your own key.

VibeExpenses is a snap-and-file expense tracker: photograph a receipt and vision AI pulls the amount, vendor and date so you don’t type it in. Built on Cloudflare so it stays fast and cheap to run.

Stack

Claude Sonnet
Reads each receipt photo into merchant, date, total, GST, currency and category. One call per photo, on your own Anthropic key.
Claude Haiku
Writes a short note over the finished Insights figures. It never does the sums.
React
The app itself, written in TypeScript and built with Vite. It all runs in the browser.
IndexedDB
Where your receipts, ledger, settings and key are kept. On your device, not on a server.
vite-plugin-pwa
Makes it installable on a phone, and lets the app open offline.
Cloudflare Workers
Serves the built files at vibeexpenses.com. That's all it does. Your receipts never go through it.

Build log

  1. A magic link so family can skip the key setup, and a nudge to leave in-app browsers for a real one.

  2. Live at vibeexpenses.com, with a scroll-through intro on the front page.

  3. Insights. Every figure is plain JavaScript with unit tests. Claude only writes a short note over the finished numbers.  Read →

  4. Exports. A plain CSV, files shaped for Xero, QuickBooks and MYOB, and a one-page PDF. The accounting ones switch off if your receipts span two currencies.

  5. Claude reads a receipt photo into a row you check and fix. Nothing goes into the ledger until you accept it.

  6. Started, on VibePantry's skeleton. A ledger you fill in by hand, kept in the browser. No AI yet.

Writing