// privacy-first utilities

Data tools that never leave your device.

LocalFirstTools is a free set of 28 browser tools for developers: format and validate JSON, decode JWTs, encode Base64, generate SHA-256 hashes and UUIDs, and convert Unix timestamps. Every tool runs as JavaScript in your tab, so nothing you paste is uploaded, logged or stored. No account, no ads.

formatted.json
{ "app": "LocalFirstTools", "version": "2.0", "policy": { "uploads": "never", "storage": "this device", "tracking": false }, "tools": [ "json-formatter", "jwt-decoder", "regex-tester", "base64", "hash-generator", "…" ], "network_requests": 0, "works_offline": true }
valid json · 16 lines · validated locally

28

tools, all free

0 bytes

ever uploaded

0

processing servers

100%

runs in your tab

~/tools

28 utilities, zero uploads

view all
JSON FormatterPretty-print, beautify, minify and validate JSON in your browser, 100% client-side.JSON MinifierStrip whitespace from JSON and see the bytes saved.JSON ↔ YAMLConvert JSON to YAML and back for configs and manifests.JSON ↔ CSVTurn arrays of objects into CSV rows and back again.CSV ViewerOpen a CSV or TSV as a sortable table in your browser, nothing uploaded.JWT DecoderInspect header and payload of a JSON Web Token locally.Base64Text, images, PDFs and any file to Base64 and back (Base64URL, data URLs and hex) without uploading.URL EncodePercent-encode query strings, paths and fragments.UUID GeneratorGenerate UUID v4 or time-ordered v7, up to 1000 at once, as lowercase, uppercase or {braced} GUIDs, with the Web Crypto API.Hash GeneratorSHA-256, SHA-512, SHA-384, SHA-1 and MD5 of text or files, checksum verification and HMAC, computed on your device.Case ConvertercamelCase, snake_case, kebab-case, PascalCase and more.TimestampEpoch time in seconds, ms, µs or ns to ISO and local dates and back, plus the current Unix time.Regex TesterTest regular expressions with live match highlighting.Diff CheckerCompare two texts line by line, word by word or character by character, in your browser.Cron GeneratorBuild, explain and validate cron expressions with next run times.HTML EntitiesEscape text for HTML and decode entities back to text.Slug GeneratorTurn any title into a clean, URL-safe slug.JSON DiffCompare two JSON documents structurally, ignoring key order.JSON ↔ XMLConvert JSON to XML and back, and pretty-print XML.XML FormatterPretty-print, beautify, minify and validate XML in your browser, 100% client-side.JSON → TSGenerate TypeScript interfaces from a JSON sample.JSONPathQuery JSON with JSONPath and inspect every match.Query ↔ JSONTurn URL query strings into JSON and back.PasswordsRandom passwords via Web Crypto, on your device.HexConvert text and bytes to hexadecimal and back.Discord TimestampBuild <t:…> Discord timestamps that show in every reader's local time.SQL FormatterPretty-print or minify SQL in your browser, with dialect and keyword case.HTML FormatterPretty-print or minify HTML in your browser without executing it.

~/how-it-works

Three steps. No server in any of them.

Every tool follows the same flow: no sign-up, no upload, no waiting on a server.

  1. 01

    Paste or drop

    Bring JSON, tokens or text into the tool. Nothing leaves this tab.

  2. 02

    Runs locally

    Formatting and decoding use your browser engine. There is no processing server.

  3. 03

    Copy or download

    Take the result back into your editor. We cannot see it.

// what the server never sees

We cannot see your data, because it never reaches us.

The JSON you format, the JWTs and API keys you decode, the passwords you generate, the text you diff, every byte stays in this tab. Every tool page is static: there is no upload endpoint, so none of it can appear in a request, a log or a cache. That is not a policy footnote, it is how the tools are built.

$load a tool › clear Network › run a sample › verify no requests

~/compare

How we compare

A server-side converter has to receive your data before it can process it. That is the structural difference, not a feature list.

LocalFirstTools compared with a typical online converter
PropertyLocalFirstToolsTypical online converter
where processing happensin your browser tabon the site's servers
your data is uploadedneveralways, to convert it
account or sign-upnoneoften, above free limits
works offlineyes, after first loadno
pricefree, all 28 toolsfreemium with caps

Detailed comparisons

~/about

What is a local-first tool?

A local-first tool does its work on your device instead of on a server. The name comes from the 2019 Ink & Switch essayLocal-first software by Martin Kleppmann and colleagues, on software that keeps ownership of data with the person using it:

“You own your data, in spite of the cloud.”

Kleppmann, Wiggins, van Hardenberg & McGranaghan, Ink & Switch, 2019

In practice that changes what is safe to paste. During an incident you can decode a production JWT (defined inRFC 7519) or diff a config without moving it through someone else's infrastructure. Hashing runs on theWeb Crypto API built into your browser rather than on someone else's server.

On the other hand, a browser tab is not the answer to everything: multi-gigabyte exports and batch pipelines still belong in a real runtime. For the payloads, tokens and snippets you actually paste day to day, local-first is the safer default.

~/guides

Short, practical explainers

For the formats and errors these tools deal with.

~/summary

Key takeaways

  • All 28 tools are free and run entirely in your browser.
  • Nothing you paste is uploaded. There is no processing server that could log, cache or leak it.
  • Every tool keeps working offline once its page has loaded.
  • There is no account, no ad and no usage limit on any tool.
  • Sensitive input such as JWTs, API payloads and passwords stays on your device.

Our recommendation: reach for a local-first tool whenever the data you are inspecting is not yours to share. For everyday formatting, decoding and converting, the browser you already have is the safest place to do it.

~/faq

Frequently asked questions

Is my data uploaded when I use these tools?

No. Every tool runs as JavaScript in your browser tab. There is no upload API and no processing server, so your JSON, tokens and text never appear in a network request. You can verify that in your browser's network tab.

Are the tools free to use?

Yes. All 28 tools are free, with no account, no ads and no usage limits.

Do the tools work offline?

Yes. Once a tool page has loaded, it keeps working even if your connection drops, because all processing happens on your device.

Why is local-first safer for tokens and secrets?

A JWT, API payload or password that never leaves your machine cannot be logged, cached or leaked by a server. With LocalFirstTools there is no server-side processing at all: that is the whole design.

Which tools does LocalFirstTools include?

28 utilities across four groups: a JSON formatter, minifier, diff, an XML formatter, a CSV viewer, a SQL formatter, an HTML formatter, and converters to YAML, CSV, XML and TypeScript, a JWT decoder, encoders for Base64, URL, hex and HTML entities, generators for UUIDs, hashes and passwords, plus a regex tester, cron explainer, timestamp converter, text diff and case and slug tools.

How can I verify that nothing is uploaded?

Run a sample in a loaded tool. In DevTools Network, select All, remove filters and clear the list, then run again. No new requests should appear. Disconnect, change the sample and repeat in the same tab. Reloading or opening a different tool may need a connection.

open localfirsttools

Format, convert and inspect data in your browser.

Nothing is uploaded. No account, no tracking, no limits.