A recap video, built entirely in your browser.
MoneyUnwrapped has no backend. From the moment you pick a PDF to the final rendered reel, every step runs locally on your device.
The pipeline
You pick a PDF
Your Google Pay statement is selected from your device. The file handle stays in the browser — the upload control never posts it anywhere.
Text extraction (pdf.js)
Mozilla's pdf.js reads the PDF inside a Web Worker and pulls out the raw text of every page. Runs fully in the tab.
Parsing → transactions
A regex-based parser walks the text, splitting it into individual transactions: date, time, payee, amount, direction, and the funding account printed on each line.
Analytics → your story
Pure functions aggregate the transactions into totals, top people, an account split, time-of-day patterns, a money personality, and more.
Render (Remotion Player)
That data drives a Remotion composition — a sequence of animated scenes — rendered live in the browser as a 60-second vertical reel.
How your money personality is decided
The recap ends by naming your spending archetype. There's no AI and no guesswork — just a handful of transparent rules checked in order. The first one that matches wins, so the list below runs top to bottom.
Your thumb deserves its own bank account.
Why pay with cash when rewards exist?
Tiny payments, mighty habit — a few rupees at a time.
The best deals happen after dark, apparently.
You found your people and you pay them. Often.
A little here, a little there. Smooth operator.
Why no server?
Bank statements are sensitive. The simplest way to guarantee your data is safe is to never transmit it. Because the whole pipeline is client-side, there is no database to breach, no logs to leak, and nothing for us to see. Privacy isn't a policy here — it's the architecture.
The stack
Last updated · 29 June 2026