receipt-ripper.com

Your receipts never leave your device

About Receipt Ripper

A free, browser-based receipt scanner.

About Receipt Ripper

Receipt Ripper turns receipt photos and PDFs into structured data — vendor, date, line items, totals, tax — entirely inside your browser. No upload, no signup, no account. This page explains what the project is, who builds it, how it's funded, and how to reach us.

What it does

Drop a photo (JPG, PNG, HEIC), a PDF, or a ZIP archive of either onto the page. The browser decodes the file, auto-crops and perspective-corrects photographed paper, runs OCR with Tesseract.js inside a Web Worker, and extracts the receipt fields with a rule-based parser that understands US, UK, EU, and Latin American receipt formats in seven languages (English, Spanish, French, German, Dutch, Italian, Portuguese).

The structured result lands in a review table you can edit, tag, or annotate. When you're done, export to CSV, Excel (.xlsx), or a ZIP that bundles a workbook plus every original image alongside per-receipt breakdowns — handy for tax filing, expense reports, or freelancer bookkeeping.

Why the OCR runs locally

Receipts are sensitive. They carry the last four digits of payment cards, store locations, purchase patterns, and timestamps of where someone was. Most online receipt scanners upload the image to a cloud OCR pipeline, which means a copy of the receipt ends up on someone else's hardware.

Receipt Ripper takes the opposite stance. The OCR runs on your device. The parsed data lives in your browser tab and is exported directly to your filesystem. No request carries receipt bytes — the site's Content Security Policy refuses outbound network connections to anything that could carry receipt content. You can verify this in DevTools → Network: drop a receipt, and you'll see no upload.

Who builds it

Receipt Ripper is built and maintained by a small independent developer team. The codebase is written in TypeScript, React, and Vite, runs entirely in the browser, and ships as static assets served by nginx in a Docker container. There is no application server, no database, and no upstream processing of user data.

The project leans on open-source components — Tesseract.js for OCR, Mozilla's pdf.js for PDF rendering, libheif-js for iPhone HEIC photos, and SheetJS for Excel export. Full attribution is in /LICENSES.txt.

How the project is funded

The site has two revenue streams, both intentionally minor:

  • Display advertising. A single Google AdSense banner sits above the dropzone. The ad slot only knows the publisher and unit IDs — it never receives any receipt content, OCR text, vendor name, total, or filename.
  • Optional donations. A 5-second pre-export prompt offers a one-click donation via a Stripe Payment Link. Skip is always one click away; the download fires regardless when the countdown ends.

Neither path touches receipt content, and both are gated by an explicit Content Security Policy allowlist documented in SECURITY.md. The full feature set is free on every visit — no usage cap, no paid tier, no "premium" lock.

What it isn't

Receipt Ripper is a tool, not a service:

  • There are no user accounts. The site stores nothing about you.
  • There is no cloud sync. If you want your data on another device, export the file and move it yourself.
  • There is no expense-report dashboard. The export workbook is the deliverable — pivot it in Excel, drop it in your accounting software, or hand it to your bookkeeper.
  • There is no mobile app. The web app works in mobile browsers, including iOS Safari with HEIC photos.

Browser support

Receipt Ripper needs a modern browser with WebAssembly support: Chrome 91+, Firefox 89+, Safari 15+, or Edge 91+. The first visit downloads the Tesseract OCR engine and your language pack (≈12 MB for English) — subsequent visits load from cache and work offline.

Get in touch

Feature requests, bug reports, and tricky receipts that didn't scan correctly are all welcome at contact@receipt-ripper.com. Every problem receipt shared with us helps tune the detection engine for the next person. See the Contact page for more.