VibeExpenses
Expense-capture PWA
- Anyone with a shoebox of receipts and a claim to file
- 19 June 2026
- A photo of a receipt
- A CSV, a Xero, QuickBooks or MYOB import file, or a one-page PDF
- 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
-
A magic link so family can skip the key setup, and a nudge to leave in-app browsers for a real one.
-
Live at vibeexpenses.com, with a scroll-through intro on the front page.
-
Insights. Every figure is plain JavaScript with unit tests. Claude only writes a short note over the finished numbers. Read →
-
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.
-
Claude reads a receipt photo into a row you check and fix. Nothing goes into the ledger until you accept it.
-
Started, on VibePantry's skeleton. A ledger you fill in by hand, kept in the browser. No AI yet.