Photograph a receipt, extract the amount with OCR, categorize it — genuinely one of the simpler builds on the register once you're using an existing OCR API rather than writing your own.
Build it
Effort: an eveningRunning cost: $0/mo to start
Why CanICodeThis says Build it
Receipt photo upload plus an existing OCR/document-extraction API gets you amount, date, and vendor with reasonable accuracy
Categorizing and reviewing an expense is ordinary CRUD with a status field
A monthly report export as CSV or PDF is routine
The parts that'll cause problems
Multi-level approval workflows (manager approves, then finance) need a small workflow engine, not just a status flag
Corporate card feed reconciliation needs real bank/card-network integration
Mileage tracking with GPS and per-jurisdiction reimbursement rates is a specific, fiddly feature
How I'd build this
frontend
Astro or Next.js
database
Turso (SQLite)
hosting
Cloudflare Pages
MVP scope
Photograph or upload a receipt
OCR extraction of amount, date, vendor via an existing API
Manual category confirmation
Monthly CSV/PDF export
Postpone to v2
Multi-level approval workflow
Corporate card feed reconciliation
Mileage tracking with GPS
What it actually costs to build
AI agent — with a subscription (Claude Pro/Max, Cursor, etc.)
$0 marginal
AI agent — pay-per-use API, no subscription
$16–$27 one-time
Hosting, once it's running
$0/mo (free tier)
Domain name, if you want your own
~$12/yr
Existing tools solving a similar problem typically run $10–$35/mo — see how they compare below.
The build prompt
Genuinely one of the simpler builds in this library:
1. Photograph or upload a receipt.
2. Run it through an existing OCR/document-extraction API to pull amount, date, and vendor with reasonable accuracy.
3. Confirm and categorize the extracted expense manually.
4. Export a monthly report as PDF or CSV.
Single user, no approval workflow, no corporate card sync — that's the real, complete v1. Out of scope: multi-level approval workflows, which need a small workflow engine, not just a status flag, and corporate card feed reconciliation (matching card transactions to submitted receipts automatically), which needs real bank/card-network integration.