How shrink.run works — and how to check it yourself
Every tool here runs on your own device. You do not have to trust us on that — you can watch it be true in about thirty seconds.
What actually runs when you convert a file
The programs that compress a JPEG or rewrite a PDF are ordinary software — MozJPEG, OxiPNG, libwebp, libheif. Historically they ran on your computer, inside desktop apps. WebAssembly is a way of compiling exactly those programs so a browser can run them directly, at close to native speed. That is what shrink.run ships you: the real encoders, not a web form that forwards your file to a copy of them running somewhere else.
Our server has no part in the conversion, because there is nothing on
it that could do one. It is a static host: it answers requests for HTML,
CSS, JavaScript and .wasm files, and that is the whole of
its job. There is no upload endpoint, no processing queue, no temporary
file directory — nothing to secure, and nothing to leak.
So when you drop a file on a tool page, it takes a short trip: from your disk, into the memory of the browser tab you have open, through the encoder, and back out as a download. It never touches the network. Close the tab and every trace of it is gone, including the result if you did not save it.
Verify it yourself
Any site can claim it does not upload your files. The difference is that this one leaves you the means to check. Two tests, neither needing technical knowledge beyond following the steps.
Test 1 — watch the network
- Open any tool, for example compress images.
- Open your browser's developer tools: F12, or Cmd+Option+I on a Mac. Right-click → Inspect works too.
- Switch to the Network tab and clear the list.
- Drop in a file and convert it as usual.
-
Read the list. You will see requests for the page's own code, the
.wasmencoder and — honestly — the ad scripts. What you will not see is a request carrying your file's worth of data out. Sort the list by size and check: nothing outbound is anywhere near the size of your file.
Test 2 — pull the plug
- Open a tool page and wait for it to finish loading.
- Turn off your Wi-Fi, or tick Offline in the developer tools' Network tab.
- Now convert a file. It works.
This is the test that cannot be faked. A converter that sends your file to a server is dead the moment the connection is. If conversion still completes with the network switched off, the work is unambiguously happening on your machine.
What we cannot claim
Privacy claims are worth less when the fine print is missing, so here is ours.
- The first visit to a tool is not instant. Your browser has to download that tool's encoder first — a few hundred kilobytes for the PDF tools, a couple of megabytes for the image and HEIC ones. It is cached afterwards, so only the first run waits.
- Very large files depend on your device. We impose no size limit, but your browser has a memory ceiling, and a phone's is lower than a laptop's. A file too big for your device will fail locally rather than being rejected by a server quota.
- We show ads, and ad scripts are third-party code. Google AdSense runs on these pages and may use cookies. It cannot reach your files, but it is not nothing — the privacy policy spells out what is handled and how to opt out of personalised ads.
- Some formats are not here yet. Video and audio conversion needs a much heavier engine (ffmpeg, roughly 30 MB to download), so we have not shipped it rather than make every visitor pay that cost. It is planned, on the same no-upload terms or not at all.
- We are asking for some trust, just less of it. You still trust that the code served to you today is the code you checked yesterday. That is true of every website — but it is the reason the network tab matters: you can re-check in seconds, any time, and no promise from us is doing the work.
Upload-based converters vs. shrink.run
| Upload-based converter | shrink.run | |
|---|---|---|
| Where processing happens | On their server | In your browser, on your device |
| Who can see your file | Them, and anyone with access to their servers | Only you — it is never sent |
| File-size limits | Usually 5–100 MB, larger on a paid tier | None; bounded by your device's memory |
| Works offline after load | No | Yes |
| Account needed | Often, for larger files or batches | Never |
| Can you verify the claim? | No — you take their word for it | Yes — network tab, or go offline |
Frequently asked questions
Is it really private, or is that just marketing?
It is a checkable fact, not a promise. Open your browser's developer tools, switch to the Network tab, and convert a file. You will see the page and the converter code being downloaded, and no request carrying your file back out. The stronger test: load a tool page, disconnect from the internet, and convert anyway. A site that uploads your file cannot do that.
How can a website work with no internet connection?
Because once a tool page has loaded, everything it needs is already in your browser: the page, the JavaScript, and the WebAssembly module that does the actual encoding. Converting a file after that point is a local computation, the same as running a desktop app. You only need the connection again to load a new page.
Why is it free? What is the catch?
Your device does the expensive part, so our costs are a domain name and static hosting on a CDN — a few dollars a month regardless of how many files people convert. Ads cover that. There is no paid tier, so no feature is being held back from you, and no reason for us to cap file sizes.
Are the ads tracking me?
We set no tracking cookies of our own and require no account. The ads are served by Google AdSense, which is third-party code, and Google and its partners may use cookies to serve ads based on your visits to this and other sites. That is real, and we are not going to pretend otherwise. You can opt out of personalised advertising in Google Ads Settings. What the ad scripts cannot do is see your files: those never exist outside your browser tab's own memory.
Does HTTPS not already make uploads safe?
HTTPS protects a file while it is in transit — it stops other people on the network from reading it. It says nothing about what happens once the file arrives on someone else's server: who can read it there, how long it is kept, or what it is used for. Not sending the file at all removes that question entirely.
Do you keep any logs?
The site is static files served by Cloudflare, so Cloudflare processes standard request data such as IP addresses and page URLs to serve pages and block abuse, and we see aggregate traffic analytics from that. We never see file names, file contents or conversion results, because none of those are ever sent anywhere.