Look, we've all been there.
You get a 5MB minified JSON response from a broken API. You copy it, google "Online JSON formatter", click the first link, paste it in, and... your browser tab completely locks up for 10 seconds.
Worse, if that payload contains production user data or API keys, you just blindly uploaded it to some random backend server so it could run JSON.stringify().
Itβs a terrible workflow, and itβs a massive privacy leak.
I finally got annoyed enough to fix this for my own daily use. I spent the last couple of weeks building a secure JSON parser that runs entirely locally in the browser. No server calls, no uploads, no latency.
You can try it live here (no ads, totally free):
π Mini-Tools.uk - Zero-Trust JSON Formatter
How it works under the hood
The goal was to make it handle massive payloads without nuking the browser's memory, while keeping the data strictly on the client side.
Hereβs the breakdown:
Local Processing Only: Everything happens in your browser's RAM. You can literally load the page, turn off your Wi-Fi, and format a massive file.
Virtual DOM Rendering: To prevent the browser from freezing when rendering a deeply nested array with thousands of nodes, the collapsible tree view only renders what's visible on the screen.
Instant Linting: Instead of sending the payload to a server to check for syntax errors, it uses a native try-catch wrapper around JSON.parse(). If you miss a comma, it highlights the exact line instantly as you type.
The bigger picture
This JSON tool started as a weekend project, but it quickly escalated. I ended up building an entire suite of 14 client-side utilities (like a local Text Diff Checker, a Web Crypto password generator, and a browser-based PDF-to-Image converter) all running on the same zero-trust architecture.
If you deal with sensitive API data and want a faster, safer way to format it, give the JSON tool a spin.
I have one request for the DEV community: If you can find a JSON payload large or complex enough to actually freeze this formatter, please drop it in the comments. I really want to stress-test the limits of the client-side rendering. π
Top comments (0)