How “nothing is uploaded” actually works

Every LocalFirstTools tool runs as JavaScript in your browser tab. The server only delivers the same static pages to every visitor: there's no upload endpoint, no share feature and no analytics event carrying your input. This page explains what runs where, how to check it yourself in 10 seconds, and where local processing stops.

Check it yourself in 10 seconds

Every tool on this site runs as JavaScript inside your browser tab. When you paste JSON into the formatter and press Format, the sequence is: your paste lands in a textarea, JSON.parse runs on your CPU, JSON.stringify produces the output, and the result is written into the page. No step involves a network request. The same holds for decoding a JWT (Base64URL + JSON parsing), hashing (the browser's Web Crypto API) and every other tool here.

What runs where

The server's only job is delivering the pages, the same static assets to every visitor. Your data enters the picture only after the page is already in your tab, and it never leaves: there is no upload endpoint, no “share” feature, no analytics event carrying your input. Processing uses standard browser APIs, JSON.parse, crypto.subtle.digest, crypto.randomUUID, DOMParser, TextEncoder, plus a few bundled libraries (YAML, diff, cron parsing) that were downloaded as part of the page itself.

A check you can repeat on any tool

Follow the 10-second check above after the tool has loaded. Run a sample once, clear Network with All selected and no filters, then repeat the operation. Disconnect and change the sample to confirm that the loaded tool still computes a new result.

Initial HTML, script and font downloads are expected. Clearing Network separates those downloads from tool use. Offline operation applies to the page you already loaded; a reload or another tool can require a connection. The site does not install a service worker or promise that every page is cached for offline visits.

For code inspection, download the bundle manifest. Each build publishes SHA-256 checksums for its HTML and browser assets. A hash identifies bytes; it does not establish that code is safe or replace an independent review.

What that means for secrets and tokens

Data that never crosses the network cannot be logged, retained, breached, sold or subpoenaed from a provider, there is no provider copy. That is the difference between a policy (“we delete uploads after an hour”) and an architecture (“there is no upload”). It is why pasting a bearer token, a customer data export or a production payload here is categorically different from pasting it into an upload-based site, and why the browser vs server comparison is worth two minutes of your time.

The honest limits

Local processing is bounded by your device: a multi-hundred-megabyte file belongs in jq or an editor, not any browser tab. Jobs that genuinely need server compute video, OCR, large PDFs, are jobs this site deliberately does not offer. And local processing protects data in transit to us, not from your own machine: your clipboard history and browser extensions are still yours to manage. Measured figures for minify savings, Base64 overhead and hash lengths are on the stats page.

Frequently asked questions

If nothing is uploaded, what does the site's server do?

It serves the pages themselves, the HTML, CSS and JavaScript. Once a tool page is loaded, the code that formats, decodes and hashes is already in your tab; your input never becomes part of any request.

Do the tools work offline?

Yes, for a tool that has finished loading. Run its sample once, disconnect, change the input and repeat. Reloading or opening another tool may need a connection. This verifies the tested operation, not every possible behaviour of the site.

Is pasting a production JWT here really safe?

The token stays in your tab. You can watch the network stay silent while you decode. Still practice hygiene: a live token is a working credential, so prefer expired or test tokens when possible, on any tool.

How is this different from a privacy policy promise?

A policy says what a company will do with data it receives; local processing means the data is never received at all. There is nothing to log, retain, breach or subpoena. It is a property of the architecture, verifiable by you, not a promise.

Put it to work