Privacy
Your files are never uploaded. They are read by your browser and parsed on your own machine — there is no server that receives file content, and you can verify that in your browser’s network panel or by using the app with the network disconnected.
What happens to a file you open
It is read with the browser’s File API, parsed in your tab, and rendered. Nothing about it is transmitted. Closing the tab discards it — there is no server-side copy because there is no server-side anything.
How to check that yourself
- Watch the network
- Open your browser’s developer tools, go to the Network tab, and load a file. You will see requests for the application’s own code and fonts, and none carrying your file.
- Disconnect
- Load the app once, then switch off your network connection and reload. It keeps working, including parsing, converting, diffing and validating. Software that needs a server cannot do that.
- Read the source
- The application is open source. Every place that makes a network request is in the repository and can be inspected.
What is stored on your device
- Your settings: theme, font size, tab width and similar preferences
- Your view preferences per format, so a CSV opens as a table next time
- Saved JSON Schemas and saved queries, if you create any
- Custom themes, if you make any
- Usage counts, only if you switch them on — they are off by default
All of it lives in your browser’s local storage on this device. Clearing your site data removes it. None of it is synchronised anywhere, because there is nowhere to synchronise it to.
What is not stored
- File contents — never, anywhere, in any form
- Filenames — including in the conversion history, which is deliberately kept in memory only and lost when you close the tab
- Any identifier for you: no account, no cookie for tracking, no fingerprint
Requests that do leave your browser
- The application’s own code, fonts and assets, all from this domain. The typefaces are bundled rather than fetched from a font CDN, so no third party learns that you opened the app
- A file you explicitly ask to open from a URL — that request goes to the host you named, and only to hosts on a short allow-list
- Error reports, if a reporting endpoint has been configured for the deployment. These are scrubbed of anything that could contain file content before they are sent
Usage statistics
Counting is off unless you turn it on. When it is on, it records which formats and views you used and how long operations took — never filenames, never contents — and stores it in your browser’s IndexedDB. It is never transmitted. The dashboard shows you everything that was recorded, and the clear button genuinely empties the store.
Syncing between your devices
Optional, off unless you turn it on, and never required. With it off the application contacts no server at all — which is the default, and what the network panel will show you.
- What syncs: your preferences, custom themes, saved JSON Schemas and saved JSONPath queries. Things you wrote, not things you opened.
- What never syncs: file contents and filenames. Not encrypted, not opt-in — there is no code path that can send them, and a test fails the build if one appears.
- Your validation history stays on this device, because it records which file was checked, and a filename is a filename.
- No email or password is asked for. An anonymous account is created for you, and you can attach an email later if you want the data recoverable after clearing your browser.
- You can delete everything stored for you, and the application keeps working exactly as before.
Advertising
Reference and guide pages may carry advertising from Google. The application itself does not, and will not: it contains no ad code at all. That is a property of the build rather than a promise — the test suite fails if any third-party request appears while the app is running.
- Where ads appear, Google may use cookies or device identifiers to select and measure them. That is ordinary behaviour for an ad network, and Google describes it on its own advertising page.
- Ads cannot see your files. Not because of a policy, but because the app carries no ad code and a file never leaves the tab it was opened in — there is no point at which an advertiser could observe one.
- In the EEA, the UK and Switzerland you are asked for consent before personalised ads are shown, and you can change that choice later.
- An ad blocker removes them. Nothing on this site is gated behind seeing an advert.
Questions
Are my files uploaded to a server?
No. Files are read and parsed by your browser. No request carries file content — not even with syncing switched on, which sends preferences and saved work only. You can confirm it in your browser’s network panel, or by disconnecting from the network, since the app keeps working.
Does fileviewer.dev track me?
Not in the application: no account, no tracking cookie, no third-party analytics script, and optional usage counting that is off by default, stored only on your device and never transmitted. Reference and guide pages may carry Google advertising, which does use cookies to select and measure ads — but the app itself contains no ad code, so nothing there observes what you open.
What data is stored in my browser?
Settings, view preferences, and anything you explicitly save — schemas, queries, custom themes. Never file contents or filenames. Clearing site data removes all of it.
Can I use it on confidential files?
That is what it is built for. The strongest assurance is not a policy but an architecture: there is no server to receive your file, so there is nothing to trust us not to do with it. Verify it yourself with the network panel before you rely on it.