No file ever leaves your device
How local file processing works
Every tool here says your files are never uploaded. Said 79 times, that is still just an assertion. This is the argument behind it — and, more usefully, how to check it yourself in about thirty seconds.
The normal way, and why it costs you something
Most online file tools work the way you would expect a website to work. You pick a file, it travels to a server, the server does the job, and the result travels back. That design is why those services need queues, why they cap free uploads at a few megabytes, and why they ask you to sign up once the file gets interesting.
It also means your document sat on someone else's computer. Usually briefly and usually harmlessly — but a contract, a payslip, a passport scan or a photo with GPS coordinates in it is not a thing you want to have handed to a service whose retention policy you did not read.
What happens here instead
- 1
You choose a file
The browser hands the page a reference to it — nothing has been read yet, and nothing has moved. This is the same file picker every website uses; the difference is what happens next.
- 2
It is read into memory
The File API reads the bytes into a buffer belonging to the tab. This is memory on your machine. There is no network call at this point, and there is nowhere for the data to go that you have not opened.
- 3
The work happens in the tab
An image is redrawn through the Canvas API; a PDF is parsed by PDF.js and rewritten by pdf-lib; a hash is computed by the Web Crypto API. These are the browser's own capabilities, running on your CPU.
- 4
The result comes back as a download
The output is assembled into a Blob, given a temporary local URL, and saved by the browser. That URL points at memory in your tab and is meaningless anywhere else.
- 5
Closing the tab ends it
The buffers are released. Nothing was stored, because there was nowhere to store it — no account, no session, no server-side copy to forget to delete.
Check it yourself
Do not take our word for it. This works on any site, including ours, and takes half a minute:
- Open developer tools — F12, or ⌥⌘I on a Mac.
- Go to the Network tab and clear it.
- Use a tool with a file that is comfortably large — a few megabytes is ideal.
- Sort the requests by size, largest first.
If the file were being uploaded, there would be an outgoing request roughly its size. There is not one. What you will see is the page itself, the fonts, the advertising scripts, and — the first time you use a tool that needs one — the processing library, served from this domain. Try the same test on a service that does upload and the difference is unmistakable.
The full walkthrough, including how to read the result and what the test cannot tell you.
What we do not claim
"Your files never leave your device" is precise, and deliberately narrower than "nothing leaves your browser". Three things genuinely do:
- Analytics — page views, country and device type, aggregated and anonymised.
- Advertising — Google AdSense scripts, which pay for the site and set their own cookies.
- Fonts — Inter and Fira Code load from Google Fonts, so Google sees the request.
None of those carry file contents. The processing libraries used to come from a third-party CDN as well; they are now served from this domain, so opening a tool no longer tells anyone else which tool you opened. The full detail is in the privacy policy.
Frequently asked
Does "no upload" mean nothing at all is sent?
No, and the distinction matters. Your file contents are never sent. The page itself still loads over the network like any website: HTML, styles, our own JavaScript, the web fonts from Google Fonts, and the advertising scripts that pay for the site. Those requests reveal that someone visited a page. They never reveal what you did on it.
How can I check this myself?
Open your browser's developer tools, switch to the Network tab, clear it, then use a tool with a large file. Sort by size. If the file were being uploaded there would be a request roughly as large as it, going out. There is not one — the only outbound requests are the page assets and, on first use, the library that does the work.
Why can you not just prove it cryptographically?
Nobody can, in a browser. Any site could in principle serve different JavaScript tomorrow. What we can do is make the claim cheap to check — the code is not obfuscated, the libraries are named, and the network tab does not lie. That is the same level of assurance every browser-based tool can offer, and more than the ones that stay quiet about it.
Does this work offline?
Not currently. The page has to load once over the network, and there is no offline cache. Once it has loaded, the processing itself is entirely local — but reloading the tab without a connection will not work.
Is there a file size limit?
None that we impose, because there is no server to impose one. The real ceiling is your device's memory, since the whole file is held in the browser. That is usually more generous than the 2–10 MB free tiers that upload-based services offer, and occasionally less on an old phone with a very large file.
What about the tools that do not take files at all?
Formatters, validators, calculators and generators work on text you type or paste, and the same rule applies: it stays in the page. A password generated here comes from the browser's own cryptographic random source and is never transmitted.