// the find
al1abb/invoify
An invoice generator app built using Next.js, Typescript, and Shadcn
A browser-based invoice generator that runs entirely client-side, storing invoices in localStorage and generating PDFs via a Puppeteer API route. Aimed at freelancers or small shops who want a self-hosted alternative to paid invoice tools without touching a database.
The data model is well-typed end-to-end with Zod schemas driving both form validation and TypeScript inference — no runtime surprises from mismatched shapes. PDF generation delegates to Puppeteer server-side rather than trying to render PDF in the browser, which means what you see in the live preview is actually what you get. The export story is unusually complete for this kind of tool: JSON, XLSX, CSV, XML, and email delivery are all there. i18n is already wired in with 16 locale files, which is more groundwork than most side projects bother to lay.
localStorage as the persistence layer is a real problem in production use — invoices vanish on browser clear, can't be shared across devices, and there's no backup story. The Puppeteer dependency is heavy for what amounts to printing HTML to PDF; this will be painful to self-host on serverless platforms and adds significant cold-start latency. Only two invoice templates after what looks like a couple of years of development is thin, and the template system doesn't appear to be designed for easy community contribution. The Nodemailer setup expects raw SMTP credentials in env vars, which means you're either handing over your personal Gmail password or setting up an app password — neither is a great story for non-technical users who are the obvious target audience.