Invoice Generator
Fill it in, add line items, download a professional PDF. Nothing is stored or uploaded.
How to produce an invoice
- Fill in the From and Bill to fields, set your invoice number (it starts at INV-001), and pick the date and due date. Today's date is pre-filled.
- Add line items with a description, quantity, and unit price. The starter row says Consulting at $100; edit it or delete it with the ✕.
- Set a tax percentage if you charge one. Subtotal, tax, and total recalculate live as you type.
- Click Download PDF invoice. The file is named after your invoice number, so INV-014.pdf files itself sensibly.
A worked example
A freelance web designer bills a client for a redesign plus a year of hosting. Two line items: "Website redesign", quantity 1 at 1200.00, and "Hosting (12 months)", quantity 12 at 25.00. The totals bar shows a subtotal of $1500.00. With tax set to 7, tax reads $105.00 and the total $1605.00. The downloaded PDF shows INVOICE across the top, the parties on the left and right, a dark header bar over the item table, each line with its quantity, price, and extended amount, and the three totals bottom right above a rule. For a discount, add a line item with a negative price: "Referral discount", quantity 1, price -100, and every total updates accordingly, tax included.
How the PDF is built, and why nothing is stored
Clicking download assembles a real PDF from scratch in your browser using the pdf-lib library: a US Letter page, Helvetica for body text and bold for labels, text drawn at fixed coordinates like a typeset document rather than a screenshot of the form. That construction is why the output is small, crisp at any zoom, and has selectable text. If your line items overflow the first page, the table continues on a second page automatically. The part that matters for a billing tool: no server ever sees your client's name, your rates, or your totals. The page has no backend and no storage, so when you close the tab, the invoice exists only in your downloads folder. That also means the tool cannot remember invoice numbers between visits; keep your own sequence, and bump the number field each time.
Honest limitations
The currency symbol is the dollar sign, hard-coded, with no thousands separators, so $1500.00 prints without a comma; if you bill in euros or pounds, this is not yet your tool. Tax is a single flat percentage applied to the whole subtotal, which will not model line-exempt items or stacked taxes, and there is no field for VAT or ABN numbers beyond typing them into a party name. Descriptions are truncated at 55 characters on the PDF, so keep item text short and put detail in a separate email. There is no logo upload, no saved templates, and no client list. This is deliberately the fast path: for one-off and occasional invoicing it beats opening accounting software, and for recurring monthly billing you will outgrow it.
Frequently asked questions
Is this invoice legally valid?
An invoice is a request for payment — this PDF includes the standard fields (parties, date, invoice number, line items, total). Specific tax requirements (like VAT numbers) vary by country; add them in the notes if you need them.
Is my client's information stored anywhere?
No. The PDF is assembled in your browser and everything is forgotten when you leave the page. Nothing is uploaded or saved.
Can I add tax or a discount?
Yes. Set a tax percentage and it is calculated on the subtotal. For a discount, add a line item with a negative amount.