Every few weeks I need to merge PDFs. Last month it was an invoice and its payment receipt; this week it was three chapters of a spec someone emailed me separately. And every time, the top search results are sites that want me to upload my documents to their server, solve a CAPTCHA, and then wait while a "free tier" progress bar decides my fate.
I built a merge PDF tool that does the opposite: ilovedevtools.com/merge-pdf runs entirely in your browser. Your files never leave your machine. Let me show you how it works and why I think that matters.
What it does
It's the classic merge: you add two or more PDFs, arrange them in the order you want, and get one combined PDF out. Under the hood it uses pdf-lib, a JavaScript library, running locally in your browser tab. There's no backend. Check your browser's network tab while you use it if you don't believe me — nothing goes out.
How to merge two PDFs (invoice + receipt example)
Say you're expensing a purchase and finance wants one file: invoice first, receipt second.
- Open ilovedevtools.com/merge-pdf.
- Drag both PDFs onto the drop zone. Only
application/pdffiles are accepted, so you can't accidentally mix in a stray screenshot. - Drag the file previews to reorder them. Files merge left to right in the order shown, so put the invoice first.
- Hit Merge PDFs. You'll see a summary like "2 files merged into one 4-page PDF" before anything downloads.
- Confirm and download
merged.pdf.
That confirmation step is small but I've grown to like it. You see exactly what you're about to save before it lands in your Downloads folder.
Why client-side matters for this tool
Merging is the tool people reach for with their most sensitive documents. Think about what actually gets merged:
- Contracts and NDAs with terms you're legally bound to.
- Invoices and receipts that contain your name, address, and payment details.
- Application packets — scans of IDs, payslips, bank statements for a rental or visa application.
The last one is the scary one. People routinely email combined ID-and-payslip packets to strangers, and then turn around and upload those same files to a random PDF website with no idea where the servers are or how long files are retained. Some sites delete after an hour. Some say they do, and you have no way to verify it.
With a client-side tool, there's nothing to trust. The file is read into memory with the File API, merged with pdf-lib, and written back out as a Blob your browser downloads. The page doesn't even have a server to send it to. It works offline once the page has loaded, and it works on a plane.
Use cases I actually hit
- Combining scanned pages from a flatbed scanner that saves each page as a separate PDF (why do they all do this?).
- Assembling a job application: cover letter, CV, portfolio excerpt, one file instead of three attachments.
- Monthly bookkeeping: merge that month's receipts into a single PDF named after the month, attach to one email, done.
Honest limitations
- Password-protected PDFs can't be read, so you'll need to unlock or remove the password first (my Unlock PDF tool handles the restriction-only kind — more below).
- Corrupted or oddly-structured PDFs may fail to load; the tool will tell you rather than produce a broken file.
- There's no per-page selection or interleaving. If you need page 3 of file A between pages 1 and 2 of file B, extract those pages first with the Extract PDF Pages tool, then merge.
- Everything runs in your browser's memory, so merging a few hundred megabytes of scans at once depends on your machine. A modern laptop handles a lot, but it's not a server farm.
- Output is always named
merged.pdf— rename it yourself after download.
More free browser tools
All of these run 100% client-side too:
- Split PDF — break a merged document back into parts, as a zip.
- Sign PDF — draw or type a signature and place it on any page.
- Unlock PDF — remove restriction-only protection from PDFs that open without a password.
No accounts, no uploads, no watermarks stamped on your output. That's the whole deal.