I bill 4 clients in 3 different currencies, and most invoice generators fall apart the moment you're not a single freelancer anymore
For a while I used a plain one-screen invoice generator: fill it in, download, done. That's fine for a single client. It stopped being fine once I had a US client paying in USD, a UK client paying in GBP, and a Karachi-based client paying in PKR, and I needed to know at a glance who still owed me money without adding three currencies together like they were the same number. That's the actual reason the Invoice Generator has 2 modes on the exact same data instead of being 2 separate products.
Simple mode is still there, unchanged: From, Bill To, line items, tax, discount, shipping, notes, total, download. If you only ever send one invoice a month, that's the whole tool and you never need to see anything else.
What Advanced mode actually gets right
Toggle to Advanced and the invoice you were just editing is already in a saved list — nothing duplicated, nothing lost, because both modes read and write the exact same invoice objects. The dashboard splits totals by currency automatically: my USD, GBP, and PKR invoices show up as 3 separate rows instead of one meaningless summed number, which is the detail that actually made me switch.
Status isn't something you set once and forget, either. resolveStatus() checks the due date on every render — an invoice marked "sent" flips to "overdue" on its own the day after the due date passes, no manual bookkeeping. Log a partial payment and the balance recalculates the same way: once the balance hits zero, the invoice reads as paid even if you never clicked a "mark paid" button.

The save-as-template feature I almost missed
Buried in the invoice toolbar is a "Save Template" button I didn't notice for weeks. It snapshots the current invoice — line items, tax rate, notes, everything except the invoice number and status — as a reusable template you can pull up again for the next month's recurring client instead of retyping the same 5 line items every time. Combined with the client address book and item catalog, a recurring invoice for an existing client is now a couple of clicks, not a rebuild from scratch.

Your data, your backup, no account
Everything lives in your browser's local storage — no signup, no server, no watermark on the PDF. The Backup button exports a single JSON file with every invoice, client, and catalog item, which matters more than it sounds like it should: local storage doesn't survive a browser reset or a new laptop, so that JSON file is the only real backup you have. CSV Export gives you the same invoice data in spreadsheet form for your own records or an accountant. Pick from 3 templates — Minimal, Professional, Modern — and an accent color, per invoice, not once for the account.
