Browser-based OCR tool for extracting prices and dates from receipts. Built with TypeScript and Tesseract.js.
- Drag & drop receipt images or upload from filesystem
- Extracts final price and receipt date
- Returns structured JSON output
- Everything runs client-side (no server needed)
npm install
npm run build
npm run serveThen open http://localhost:8000
Or just open index.html directly in a browser.
- Drop a receipt image on the page (or click to upload)
- Click "Process Receipt"
- Wait for OCR to finish (takes ~5-15 seconds)
- Get JSON with extracted data
npm run docker:compose:upSee DOCKER.md for details.
- TypeScript (vanilla, no frameworks)
- Tesseract.js v5
- Tesseract loaded from CDN
Auto-rebuild on changes:
npm run watchOr build manually:
npm run buildRun automated tests on all 7 demo receipts:
npm testThen open http://localhost:8000/test-receipts.html
See TESTING.md for ground truth values.
- OCR is slow on big images (10-20 seconds sometimes)
- Accuracy varies wildly depending on photo quality
- Sometimes grabs the wrong number as the total
- Works better with Finnish receipts than Swedish (more training data in Tesseract)
- Blurry or dark photos usually fail
Everything runs in your browser. No data sent anywhere.