Max MorrishBack to projects

SwiftInvoice

A browser invoice generator that builds a client-ready PDF without an account or a monthly plan.

Prototype: a working browser app, not promoted.

28 unit tests passing on the invoice totals, tax and currency formatting

SwiftInvoice desktop view: an invoice form on the left for Harbor Lane Design billing Northfield Bakery, and a live preview on the right totaling $1,150.10.
The generator at 1440 pixels: fill in the form on the left, watch the invoice total update on the right.
Where
Personal project
Role
Product and build
Built with
Next.js, Tailwind CSS, html2pdf.js

What I made

Most invoicing tools ask for an account before they let a freelancer download a single PDF, and the free tiers often hide the download behind a paywall or a watermark.

SwiftInvoice is a static Next.js app: fill in a sender, a client and line items, watch the live preview update, and export a PDF with html2pdf.js. Nothing leaves the browser.

  1. Sender and clientname, email, address
  2. Line itemsdescription, quantity, rate
  3. Live previewsubtotal, tax and total, in one of five templates
  4. PDF exporthtml2pdf.js renders the preview to a file
From a blank form to a downloadable PDF, entirely in the browser.

5templates built into the generator

7currencies it formats

What came out of it

A form that becomes a PDF

Typing into the form updates a live preview, and the Download PDF button renders that same preview to a file, no server involved.

A cropped view of the invoice preview panel alone, the same layout html2pdf.js exports to PDF, showing three line items and a total of $1,150.10.
A clean crop of the preview panel, the same markup the PDF export renders.

Five templates, seven currencies

The classic template is one of five layouts, and the amount column formats in whichever of seven currencies the invoice uses.

The Classic template applied to the same invoice, with a dark blue header band behind the sender's name.
The Classic template, one of five built into the generator.

On a phone

The same form and preview work at phone width, switching between editing and the live invoice with one tab.

SwiftInvoice at 390 pixels wide, phone width, showing the Edit tab with the items and notes sections of the form.
The form at phone width, on the Edit tab.
The same phone-width page switched to the Preview tab, showing the rendered invoice for Northfield Bakery.
The same invoice on the Preview tab at phone width.

Where it's going

The full version remembers invoices between visits, offers more templates, a logo upload and recurring invoices, and is listed with search engines so a freelancer finds it without creating an account.

  1. NowBrowser prototypeA form, a live preview and a PDF export.
  2. Save and reloadInvoices save in the browser and reopen later.
  3. More templatesMore invoice templates and a logo upload.
  4. Found by searchListed with search engines and a sitemap.
  5. Recurring invoicesInvoices that repeat on their own schedule.