InvoiceWithMe

Why this invoice tool does not ask you to sign up

By Muhammad SaadPublished Updated 6 min read

Essay

What "free" usually costs you on the modern web

For most of my freelance career I used whichever free invoice generator was top of Google that month. The pattern was always the same. I would land on a marketing homepage with a hero shot and a Get Started For Free button. I would click it. I would be asked for my email. I would fill in an invoice. I would try to download. I would be asked for my email again, this time really. I would sigh, close the tab, paste the invoice into a Google Doc, and export from there.

After about the fifteenth time, I built a different thing.

What "free" usually means online

On the modern web, free almost always has a hidden cost. For most invoice generators that cost is one of four things, and quite often it is all four at once:

Your email. Used to qualify you as a lead, drop you into a drip campaign, and try to sell you a paid plan over the next six weeks. The tool is free because it is a sales funnel for a different product. You did not sign up for the funnel; you signed up for an invoice. Now you are in the funnel.

Your data. Stored on the company's servers, theoretically to make the tool work, practically as a moat. The day you want to leave, your invoice history goes with the platform. The day you forget your password, you are filing a support ticket to get your own data back.

Your attention. Every screen has an upsell tooltip, a banner, a modal, a sidebar with three CTAs. The tool works, but you have to wade through marketing to find it. Modern SaaS design has perfected the art of the polite interruption.

A mark on your output. "Made with BillFlow Pro" stamped across the footer of the PDF you are about to email a client. Free as in: your client now knows you could not be bothered to pay for an invoice tool. Sometimes the watermark is so faint that you only spot it when the client's accountant prints it on a high-contrast printer.

None of this is evil exactly. People who build free tools have to eat. But all four are friction the user did not agree to when they typed "free invoice generator" into Google.

The architectural choice that removes all four

There is a simple trick that eliminates every item on that list: do not have a backend.

This site is a static bundle. There is no database. There is no server that knows who you are or what you typed. When you click Download PDF, your browser runs about sixty kilobytes of JavaScript that turns your form into a PDF locally using jsPDF, then hands the file to you. The form contents never leave your machine, because there is nowhere for them to go.

Because there is no database, there is no account. Because there is no account, there is no email collection. Because there is no email, there is no upsell email. Because nothing about your invoice touches anything I run, there is no lock-in.

It also makes the site noticeably faster than the alternatives. There is no server doing work for you. The work happens in your browser, in milliseconds, on the device already in front of you. Open the page on a flight at 35,000 feet with no Wi-Fi and the tool still loads from your browser cache and still generates a PDF.

What about saving invoices?

Your browser has a feature called localStorage which is a small private database scoped to a single site. Saved invoices go there. They survive when you close the tab and come back tomorrow. They are still gone if you clear your browser data or switch to a different machine. That is the cost of not having a server.

For most freelancers it is enough. You finish an invoice, you download the PDF, you send it. The browser copy is a convenience so the next invoice for the same client starts mostly filled in. The PDF is the real artefact, the one you keep in your accounts folder. If you want a structured backup, the History drawer has Export and Import buttons that move your entire history in and out as a single JSON file. Drop that file into iCloud Drive or Dropbox and you have cross-device sync without me ever seeing it.

So how does the site stay alive?

Educational pages on this site (the blog, the guides, the template articles) carry a small number of ads served by Google AdSense. They never appear inside the invoice generator itself and they never appear on your PDF. That is the deal. The tool stays free forever; if enough people read the articles, hosting and the domain renewal pay for themselves.

I am not going to pretend this is charity. But the unit economics of a backend-free tool are very different from a SaaS app. I do not need you to convert. I do not need to grow ARR. I just need to keep a small static deployment alive, which currently costs me about four dollars a month, and even at very modest traffic the ads cover it. If the ads ever stop covering it, the tool still stays free; I just write fewer articles and do more client work.

The slightly grumpy conclusion

There is a strain of modern software design that treats every interaction as the start of a relationship. The user shows up to do a thing. The software wants to know who they are, retain them, measure them, market to them, eventually monetise them. Sometimes that is honest. Often it is a tax on people who just wanted the thing.

Most of the tools I love do not work this way. Sublime Text. The Unix command line. The Wayback Machine. Wikipedia. They are useful precisely because they are anonymous. They do one thing well, they do not ask for anything, and they are still around many years later.

I wanted an invoice tool that worked like that. So I wrote one.

Muhammad Saad. Independent developer, Karachi. Email at saad@techorphic.com.

If you would rather try the tool than read more about it, the invoice generator is right here.
Why this invoice tool does not ask you to sign up | InvoiceWithMe