Skip to content
Filevane

Privacy proof: don’t trust us, check

Every online file tool claims to respect your privacy. Filevane publishes a Content-Security-Policy header that makes uploading your file impossible rather than merely against policy: the browser itself blocks any connection to a destination not on the list below. You can confirm it in about thirty seconds, without believing a word of this page.

Verify it yourself in 30 seconds

  1. Open any Filevane tool — Merge PDF is a good one, because the file is large and obvious.
  2. Press F12 to open developer tools, and select the Network tab.
  3. Filter to Fetch/XHR so you see data requests rather than page assets.
  4. Add your PDF and run the tool.
  5. Watch the list. Your file is never in it — because it never leaves the tab. Compare the same test on any upload-based converter and you will see the opposite: a multi-megabyte POST carrying your document.

Read the header yourself

You do not have to take this page’s word for what the policy says. Ask the server directly:

curl -I https://filevane.com/ | grep -i content-security-policy

Which returns the policy currently in force. At the time of writing that is:

default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval' blob:
  https://www.googletagmanager.com;
style-src 'self' 'unsafe-inline';
img-src 'self' data: blob: https://www.google-analytics.com;
font-src 'self' data:;
connect-src 'self' blob: data:
  https://www.googletagmanager.com
  https://www.google-analytics.com
  https://tessdata.projectnaptha.com
  https://formsubmit.co
  https://api.frankfurter.dev
  https://open.er-api.com;
worker-src 'self' blob:;
object-src 'none';
base-uri 'self';
form-action 'self' https://formsubmit.co;
frame-ancestors 'self';
upgrade-insecure-requests

The directive that does the work

Everything rests on connect-src. It enumerates every destination this page is allowed to open a network connection to — every fetch(), XMLHttpRequest, WebSocket and beacon. A request to any host not on that list is refused by the browser before it is sent, and reported in the console as a policy violation.

This is the difference between a policy and a promise. We are not asking you to believe that our code chooses not to upload your file. We are pointing out that the browser will not let it, and inviting you to confirm that yourself.

Every third party we allow

Complete list, including the ones that are awkward to admit. If a host is not here, the browser blocks it.

HostWhat it is forWhat it can see
'self' (filevane.com)The site's own code, styles and fonts.Nothing you process. Static files are downloaded to you; nothing is sent back.
blob: and data:In-memory objects — how a generated file reaches the download button.Not a network destination at all. These never leave the browser process.
googletagmanager.com, google-analytics.comGoogle Analytics 4 — page-view and traffic measurement.Which pages are visited, plus the usual analytics data (approximate location, device, referrer). It has no access to files you open in a tool.
tessdata.projectnaptha.comDownloads OCR language models for the text-recognition tools.Which language model you requested. This is a download to you — your image is never sent.
formsubmit.coDelivers the contact form.Only what you type into the contact form and submit deliberately.
api.frankfurter.dev, open.er-api.comExchange rates for the Currency Converter.Which currency pair you asked about. No amount and no personal data is sent.

What this does not prove

Being straight about the limits, because a claim that overreaches is worth less than one that does not:

Frequently asked questions

How do I verify that my file is not uploaded?

Open your browser's developer tools (F12), select the Network tab, then run any tool on a file. Watch the request list: you will see the page's own scripts load, and no request carrying your file. Filter by 'Fetch/XHR' to make it unmistakable. This works in Chrome, Firefox, Edge and Safari, and it does not require trusting anything we say.

What is a Content-Security-Policy and why does it matter here?

A CSP is a header the server sends and the browser enforces. Its connect-src directive lists every destination the page is permitted to open a network connection to. Any attempt to reach a host not on that list is blocked by the browser itself and logged as a console error — so the policy is not a promise about our intentions, it is a restriction on what our code is able to do.

Could Filevane change the policy later?

Yes — the header is served by us, so a future version could widen it. That is why this page publishes the current policy rather than asking you to assume it: you can re-check it at any moment with a single command, and any change is immediately visible to anyone who looks. Verifiability is not the same as a guarantee, and we are not claiming otherwise.

Why does the policy allow 'unsafe-eval'?

WebAssembly needs it. The OCR engine (Tesseract), the PDF renderer (pdf.js) and the video tools (FFmpeg) are all compiled to WebAssembly, and instantiating a WASM module requires 'unsafe-eval' and 'wasm-unsafe-eval'. It is a genuine loosening of the policy, and it is the price of doing the processing on your device instead of ours.

Does Filevane use analytics?

Yes — Google Analytics 4, listed in the table above. It records page views, not file contents; there is no mechanism by which it could reach a file you open in a tool. We list it here rather than omitting it, because a privacy claim that hides its own analytics is not a privacy claim.

Do you store any files at all?

There is nowhere to store them. Filevane is a static site with no application server, no database and no file storage. A file you open exists in your browser's memory and is gone when you close the tab.

Found something that contradicts this page? That is genuinely worth knowing — please tell us, or report a security issue via security.txt. See also our privacy policy.