keptlocal
Files never leave your browser

Merge PDF

Drag your PDFs in, arrange the order, click merge. The combined file downloads instantly. Files never leave your device.

Drop PDFs here, or

Add 2 or more PDFs. Drag to reorder. Files never leave your browser.

Add at least 2 PDFs to merge.

How to merge PDF files

  1. Drag the PDFs you want to combine into the drop zone above, or click "choose files" to browse.
  2. Drag rows to set the order pages will appear in the final PDF — page 1 of the top file becomes page 1 of the result.
  3. Click Merge & download. The combined PDF saves directly to your downloads folder.

Everything runs inside the browser tab you have open right now. No file is sent to a server. If you want to confirm that, open browser DevTools (press F12), switch to the Network tab, and watch while you merge — you'll see no upload requests.

When to merge PDFs

  • Bundling supporting documents — combine a cover letter, resume, and references into a single attachment for a job application.
  • Scanned receipts — group expense receipts into one PDF for an end-of-month reimbursement claim.
  • Multi-page forms — stitch together signed pages that came back from different people.
  • Course material — combine separate chapter PDFs from an instructor into one studyable document.
  • Property and legal paperwork — consolidate a contract, addenda, and exhibits before sending or archiving.

How it works under the hood

keptlocal uses pdf-lib, an open-source JavaScript library that reads and writes PDF documents directly in JavaScript. When you add files, the bytes are read into an ArrayBuffer in your browser's memory. Merging creates a new PDF document and copies the page objects from each source — text remains selectable, images stay at their original resolution, and the result is a standard PDF that opens in any viewer.

Because the work happens locally, there is no upload-then-process latency. The merge typically completes in under a second even for documents totaling hundreds of pages. Performance is bounded only by your device's RAM.

Limits and what to expect

  • File size: no hard limit, but very large documents (~500 MB+) may slow your browser.
  • Password-protected PDFs: we attempt to read encrypted PDFs with the ignoreEncryption flag. If a file requires a password to open the content, the merge may fail — unlock it first using your PDF reader.
  • Form fields and annotations: preserved on a best-effort basis. Complex interactive forms occasionally lose field state during merge.
  • Browser support: works in any modern browser (Chrome 90+, Firefox 90+, Safari 15+, Edge). Older browsers without WebAssembly support won't work.

Privacy compared to other PDF mergers

Most online PDF tools — including the popular ones — upload your files to their server, process them there, and serve the result back. They publish privacy policies that say files are deleted after some number of hours, but you have no way to verify that. With keptlocal, the question doesn't arise: the file simply never leaves your machine.

This matters most for documents you wouldn't share casually — contracts, financial records, ID scans, medical paperwork. Use keptlocal whenever the content is private and you'd rather not trust a third-party server with it.

Frequently asked questions

Are my files uploaded anywhere?
No. keptlocal runs entirely in your browser using WebAssembly. Your PDFs never touch a server — you can verify this in your browser's Network tab while merging.
Is there a file size or page limit?
There is no hard limit. The practical limit is your device's available RAM — most modern laptops handle hundreds of pages comfortably.
Will the original quality be preserved?
Yes. We use pdf-lib to combine the source documents byte-for-byte without re-rendering. Text remains selectable, images stay sharp, and bookmarks transfer where supported.
Can I reorder pages before merging?
You can reorder entire PDF files by dragging them in the list. Page-level reordering within a single PDF is available on our Reorder PDF Pages tool (coming soon).
Does this work offline?
Once the page is loaded, yes — the merge runs locally. You can verify by disabling your network connection after the page loads, then merging files.