Verify PDFs stay on this device

LocalPdfCompress compresses PDFs in the browser by structural rewrite. This page is the check you can run yourself: which network calls are normal, and which calls would mean the document left the tab. The tool is on the home page. The short policy is the privacy policy. The copyright and rights rules are the terms. Publisher context is on about.

What you are proving

You are proving that compress does not upload the PDF. You are not proving that nothing on your computer can see the bytes. A browser extension, malware, or a recorder you installed can still read a tab. This site does not receive the file, and it does not claim to block other software on the device. Files never leave this device through this page.

If Network shows a POST or PUT of your PDF, stop using that session and write to contact@localpdfcompress.pages.dev with the page URL and what you saw — without attaching the document. That would not match how this tool is built.

Steps in DevTools

  1. Open the compressor. Use a small PDF you are allowed to test with, not a sensitive contract, the first time you learn the panel.
  2. Open DevTools → Network. In Chrome that panel is documented as the Network panel. In Firefox it is the Network Monitor. Enable “Preserve log” so a reload does not wipe the list.
  3. Reload the page once and let the first requests finish. You should see same-origin GETs for the document, /assets/styles.css, /assets/tool.js, /assets/vendor/pdf-lib.min.js, and the favicon.
  4. Drop the PDF. Wait until the meta line shows page count and size. Sort or scan the new rows. There should be no request whose body is that file, and no POST or PUT of the PDF to this host or any other host.
  5. Press Compress. Downloads use blob: URLs created in the tab. The browser is not fetching those bytes from our server.

Expected requests

Requests that should not appear

Why the file can stay in the tab

The drop area is a file input. The File API lets the page read a file the user chose. It does not give the page a path it can upload on its own later. pdf-lib loads the PDF into memory and copies pages into a new document. The download buttons point at object URLs from URL.createObjectURL. When you close the tab, that buffer goes away with the page. We never had a server-side copy to delete.

Honest product limits (still local)

Local compress still uses your device memory. Soft guidance is about 25 MiB. Structural rewrite may shrink little or grow. Image downsampling is not in this version. Encrypted PDFs may fail. Those limits are documented on the home page and in limits — they are not excuses to upload.

Email, ZIP, and what Network will not show

Compressing for email still stays local until you attach the download elsewhere. Zipping outside this site is your OS or another tool — you will not see a ZIP API call from LocalPdfCompress because we do not build archives here. Soft ~25 MiB guidance, no image downsampling, and no password bypass remain true while you watch the Network panel. Growth after rewrite is about packing, not an upload.

Publisher, contact, and policy pages

These pages stay on the existing URLs. They are how you learn who publishes the tool and how to reach us:

This experiment does not run advertising scripts today. If that ever changes, privacy and about would need an honest update first.

Where to go next

Questions about this wording, email contact@localpdfcompress.pages.dev. Do not attach the PDF. We cannot accept the file, and we do not want a private contract in a mailbox.

Sources

FAQ

How do I prove this PDF compressor does not upload my file?

Open DevTools → Network, drop a local PDF, and compress. You should see same-origin page assets including pdf-lib. You should not see a POST or PUT of the document. Downloads use a blob URL created in the tab.

Is the pdf-lib script load an upload of my PDF?

No. It is a GET of /assets/vendor/pdf-lib.min.js from this site. The response is the library script. Your document is not in that request or that file. Page copy then runs in the tab.

What is a blob download?

After compress, the download link points at a blob: URL made with URL.createObjectURL on a Blob built in the page. The browser saves those bytes from memory. It does not download them from our server.

Which network requests are a problem?

A problem is any request that sends the PDF file, calls a third-party convert API, or fetches a remote document address. Static assets, pdf-lib, and an optional Cloudflare Web Analytics beacon are not the document upload.

Does structural rewrite still stay local?

Yes. Both rewrite modes read the file in the tab and write a new PDF locally. Use the same Network panel either way. The limits guide covers what shrinks and what does not.

Can the page fetch a PDF from a URL I paste?

No. There is no URL field and no remote document downloader. You can only choose a file already on the device, and the terms require that you have the rights to process it.