DEV Community

Cover image for I Built a Free Invoice Generator, Resume Builder, and Cover Letter Generator That Don't Require Signup
Aral Roca
Aral Roca

Posted on • Originally published at kitmul.com

I Built a Free Invoice Generator, Resume Builder, and Cover Letter Generator That Don't Require Signup

A friend asked me to recommend a free invoice generator yesterday. I opened the first ten results on Google and they all did the same thing: signup wall, email capture, or a watermark across the PDF unless you pay $12/month. Generating a PDF from form fields is a solved problem that somehow became a SaaS category.

So I built three of them in a day. Invoice generator, resume builder, cover letter generator. No signup, no watermark, no data leaving your browser. Fill in the fields, see a live preview, download a clean PDF. Done.

The three tools are an Invoice Generator, a Resume Builder, and a Cover Letter Generator. All three run entirely in your browser. No data leaves your device. No account needed. No watermarks.

Invoice Generator with live preview showing a completed invoice with templates

Why I built these instead of recommending existing ones

I tried to find free invoice generators for a freelancer friend last month. Every single one either required signup, limited you to one template, added their branding to the PDF, or was clearly a funnel for their SaaS product. Same story with resume builders: the free tier gives you one basic template, and the moment you want something that looks professional, you're staring at a paywall.

The thing is, generating a PDF from form data is not a hard problem. The browser has everything it needs. pdf-lib is an excellent open-source library that creates PDFs entirely in JavaScript. There is genuinely no reason your invoice data needs to touch someone else's server.

So I built these tools with a shared PDF rendering layer and a template system inspired by PptPresentationMaker, which was already the most complex tool on Kitmul. The architecture is straightforward: React state for the form, an HTML/CSS live preview that updates on every keystroke, and a pdf-lib PDF that generates when you click download.

The Invoice Generator: six templates and real math

Resume Builder with Classic template and live preview

The Invoice Generator was the most technically interesting of the three. It has six templates (Clean, Modern, Classic, Bold, Minimal, Corporate), each with distinct header layouts and color schemes. You can upload your company logo, and the tool resizes it client-side using a canvas element before embedding it in the PDF with embedPng().

The auto-calculations handle subtotals, percentage or fixed-amount discounts, and tax rates. Everything updates live in the preview. The currency selector supports twelve currencies with locale-aware formatting via Intl.NumberFormat; the same $1,234.56 displays correctly whether you pick USD, EUR, or JPY.

The table rendering was the hardest part. pdf-lib doesn't have a table concept; you're positioning rectangles and text with pixel coordinates. I wrote a shared drawTable helper that computes row heights based on text wrapping, handles alternating row backgrounds, and automatically breaks to a new page if the table overflows. That helper is now reusable across all three tools.

One thing that surprised me: the header layout calculation. Templates with colored backgrounds need to know the exact height of the header content (logo height + business info lines + invoice details) before drawing the background rectangle. I ended up computing it dynamically based on which fields are filled in, so the header shrinks if you leave fields empty and expands if you add a logo.

The Resume Builder: five templates, all ATS-friendly

The Resume Builder is the most complex tool at around 900 lines. It has five templates: Classic (single column, maximum ATS compatibility), Modern (with a colored sidebar for contact info and skills), Professional (two-column header), Minimal (lots of whitespace), and Executive (bold accent underlines).

I made a deliberate choice to use only StandardFonts from pdf-lib (Helvetica and Helvetica-Bold). Custom fonts look nicer, but they break Applicant Tracking Systems. ATS parsers expect standard fonts and simple text positioning. Every template outputs real, selectable text drawn top-to-bottom, never images of text. Even the Modern template with its sidebar draws the main content first in the reading order, so an ATS reads your experience before your contact details.

Sections are reorderable. You can drag Experience above Education or add Certifications, Languages, and Projects sections. Each experience entry supports multiple bullet points with add/remove controls. The whole thing generates multi-page PDFs when your resume is longer than one page, with proper page breaks that never split a section header from its content.

The Cover Letter Generator: the simple one done right

Cover Letter Generator with Traditional template and filled-in letter

The Cover Letter Generator is the simplest of the three, but that's the point. A cover letter is a formatted business letter, and getting the formatting wrong makes you look sloppy. The tool handles four templates (Traditional, Modern, Professional, Simple) with proper business letter conventions: sender info placement, date formatting, greeting, body paragraphs, and sign-off.

The Traditional template puts your contact info top-right (the formal standard). The Modern template uses a large name with a horizontal accent line. The Professional template has a colored header block. You can add as many body paragraphs as you need.

No AI writes your letter. You write it, the tool formats it. I think that matters. A hiring manager who has read a hundred AI-generated cover letters can spot them instantly. Your words in a clean layout will stand out more than a GPT-generated letter in a fancy design.

The privacy argument is real

These three tools handle sensitive information. Your invoice has your business details, client names, and financial data. Your resume has your employment history, email, phone number. Your cover letter names specific companies you're applying to.

Every alternative I tested sends this data to a server. Zoho, Canva, Resume.io, Zety; they all require accounts, and once you've created an account, your data lives on their servers under their privacy policies. Some of them explicitly state they use your data for "service improvement," which is a polite way of saying they train models on your resume.

With browser-based tools, the architecture makes privacy the default. There's no server to send data to. The pdf-lib library generates the PDF in a Web Worker, the browser creates a Blob URL, and the download happens through a local anchor click. Your data exists in browser memory until you close the tab.

What I'd build next

Receipt Generator (the mirror of invoices, for the receiving side), NDA Generator (simple template-based legal documents), and Meeting Minutes Generator (structured notes to PDF). They all follow the same pattern: form data, live preview, clean PDF. The shared layout helpers make each new tool faster to build than the last.

If you're a freelancer creating invoices, a job seeker polishing your resume, or anyone who needs a professional document without the signup dance, give these a try. They're at kitmul.com alongside 400+ other free browser-based tools.


Related tools: PPT Presentation Maker ยท Text to PDF ยท PDF Merger ยท Budget Planner ยท Image to PDF

References:

Top comments (0)