28.5-hour build. Snap a receipt, get auto-categorized groceries + budget tracking. Claude Vision API + Supabase + n8n.
Mint, Rocket Money, YNAB — they all see groceries as a single transaction. You spent $88 at HEB, but on what? Chicken? Soda? Paper towels? That granularity disappears, making it impossible to actually change behavior.
CartLog reads the receipt itself. Every line item is extracted by AI, categorized, and stored — so your budget knows the difference between a necessity and an impulse buy.
Getting a real image through Claude's Vision API, parsed cleanly, and stored reliably across a serverless edge function took three architectural pivots. The final pipeline is deceptively simple.
node -e + fs.writeFileSync — no shell interpolation, no corruption.CartLog's design language is precise and data-forward. Finance tools should feel like they're on your side, not anxious to impress you.
Every tool chosen to minimize ops overhead and maximize iteration speed. The goal was a working app — not an architecture demo.
CartLog started as a portfolio project to demonstrate technical range for a Digital Designer application at Funlab. It ended up being the most complete product I've shipped solo — from database schema to deployed PWA — in under 29 hours.
Full source on GitHub — Vercel Function calling Claude Vision, Supabase schema, and the React frontend that ties it together.