"Merge PDF" is one of the most-searched utility phrases on the internet. It's also one of the most quietly-risky. Almost every top result uploads your files to a server, keeps them for at least 24 hours "for your convenience", and logs the metadata (filenames, page counts, IPs) more or less forever. Which is fine for a random meme PDF. Not fine for a merged medical record, a merged bank statement, or the acquisition-diligence bundle a founder just asked their lawyer to combine.
This is the browser-only version: how to merge any number of PDFs on your device, in one tab, without an upload. It's also a deep enough look under the hood that you'll understand exactly what "structural merge" means, what breaks (cryptographic signatures, form-field name collisions), and what doesn't (everything else).
The 30-second flow
Open Bluebird's Merge PDF tool. Drag your PDFs into the drop zone in whatever order. Reorder by dragging thumbnails. If you want to skip specific pages inside a file, click that file to expand its pages and toggle the ones you don't want. Click Merge. Download the single combined PDF.
That's the whole user surface. Underneath, we're doing exactly what a native tool like macOS Preview does when you drag-merge two PDFs — copying the page objects, the fonts they reference, and any images each page depends on into a new PDF and writing a fresh cross-reference table. It's a structural operation, not a re-render, which is why it's fast and lossless.

Reordering, extracting, and page-level control
The reorder step is where most "merge" tools become a page-management tool. Real workflows almost never want to merge exactly the pages of exactly the files as-provided. You want the invoice from file A, pages 3-7 of the appendix from file B, and only the signed page of file C.
Bluebird's merger lets you drag files to reorder them at the file level, then expand each file to see individual thumbnails and drag pages within or between files. Toggle a page off to exclude it. There's no page count limit — the reorder UI virtualises rows so a 500-page merge stays responsive.
Under the hood, each drag is just a reorder of an in-memory array of {fileIndex, pageIndex} pairs. When you hit Merge, that array becomes the copy plan pdf-lib executes.

How we merge without uploading (the actual mechanism)
The whole merger runs on pdf-lib, a pure-JavaScript PDF library packaged as an ES module. Your browser reads each input PDF into an ArrayBuffer via the File API, parses it into a PDFDocument in memory, and asks pdf-lib to copy the requested pages into a new output PDFDocument. When you're done, the output is serialised back to a Uint8Array and handed to you as a Blob for download.
There is no fetch, no XHR, no WebSocket, no beacon. You can open the Network panel before you start, drop in ten files, merge, and see the counter stay at zero. The only network activity is the initial page load; after that, the tool is a browser process that happens to be running inside a tab.
This has a genuinely useful side effect: offline support. Load the page once, then turn Wi-Fi off. Everything still works. Our service worker caches the app shell and the pdf-lib bundle, so a refresh in offline mode still loads the tool. This is the same architecture as a Progressive Web App, and it's how modern browser-native tools should be built.

What actually happens on server-side mergers
It's worth being specific about what you're avoiding, because the risk isn't hypothetical. A typical "free" server-side merger does the following: the file is stored on their infrastructure (usually S3 or an equivalent), often for 1 hour to 30 days depending on their retention policy. The IP address, filename, page count, and browser fingerprint are logged. The merged output is either emailed to you (which puts another copy on their outbound mail server) or served as a download link — often unguessable but still world-readable while it exists.
If that provider is breached — which happens to small utility sites with alarming regularity — your PDF is in the dump. Search any breach index for "merge" or "pdf-tools" and you'll get a queasy feeling. Bank statements and medical records regularly show up in these dumps because they are among the most-merged PDF types.
None of that applies to a browser-side merger. The merged PDF exists only on your device, from the moment you drop the first page in to the moment you close the tab. If you never download it, it never touched persistent storage anywhere. That's the model that suits sensitive PDFs, and it's the model a merger should default to.
What breaks and what doesn't
What survives a merge: selectable text, embedded fonts, vector graphics, raster images at their original resolution, page-level links (both internal and external), annotations, form fields (with a caveat below), bookmarks (mostly), and page-level rotation.
What breaks: cryptographic signatures on any input PDF. This is unavoidable — a cryptographic signature covers a specific byte range of the file, and merging changes that byte range. If you need to preserve a cryptographic signature, don't merge that file; append your other content into a separate PDF instead.
What partially breaks: form fields with the same name across multiple input PDFs. If both file A and file B have a field named "signature_1", the merged output has one field controlling both. Bluebird's merger auto-renames colliding fields (appending _2, _3) to avoid this, but be aware.
What genuinely doesn't matter: the file size of the merged output. A structural merge doesn't re-compress anything, so a merge of three 1 MB PDFs is roughly a 3 MB PDF (plus a small overhead for the new cross-reference table). If you need a smaller merged file, run it through Bluebird's PDF Compressor after merging.
The takeaway
Merging PDFs is one of the oldest "utility" operations on the internet, and it's one where the browser-first version is objectively better than the server-first version. It's faster (no upload round-trip), safer (nothing leaves your device), and doesn't rate-limit you at four files.
The whole tool is 200 lines of glue around pdf-lib. Anything more than that is either a UI improvement (drag-to-reorder, page toggles) or a monetisation move disguised as a feature. Bluebird's version has the UI improvements and none of the monetisation. Try it once with your Wi-Fi off — the fact that it works is the whole product argument.


