Dev.to WebDev πŸ›  Dev πŸ‘ 1 πŸ“– 5 min read

JSON, PDF and Image Chores in the Browser: A No-Upload Workflow Guide

Most of my "five-minute tasks" are not coding. They are chores: an API response that won't parse, a contract that has to go out as one PDF, a batch of iPhone photos a client can't open. The usual fix is to search for "js

Most of my "five-minute tasks" are not coding. They are chores: an API response that won't parse, a contract that has to go out as one PDF, a batch of iPhone photos a client can't open. The usual fix is to search for "json formatter online", click the first result, and paste in something you shouldn't.

I built FindUtils partly because of that habit. It is a free toolbox of single-purpose browser tools: 463 at the time of writing. The core tools need no account and no install. This post is less about the site and more about a workflow: how to get through common JSON, PDF and image chores without handing your files to a stranger's server, and how to check that claim for any tool, including mine.

First, how do you know a tool doesn't upload?

"Runs in your browser" is a claim, so test it before you trust it:

  1. Open DevTools β†’ Network before you drop the file in. Clear the log, run the tool, and look for a request whose size matches your file. A client-side tool may still load scripts, fonts, analytics or ads, but none of those requests should carry your data.
  2. Read the page's own data note. A good tool says what leaves the device. On FindUtils, file tools that run locally say so on the page. Lookup tools (DNS, WHOIS, SSL) send the domain you type to the service named on the page, because there's no other way to do a lookup.
  3. Remember what local processing doesn't cover. You still have to trust the page's code, your browser extensions and your device. Client-side is a smaller trust surface, not zero trust.

With that settled, here's the workflow.

JSON: from "invalid" to typed code

1. Fix and read it: JSON Formatter
Paste the payload. The error message gives you the line and column. Auto-Fix makes a conservative repair of the three usual suspects: trailing commas, single quotes and unquoted keys. Format pretty-prints with 2, 4 or 8 spaces, Minify compacts it, and Tree gives you a collapsible view for deeply nested responses. On the page, the JSON is processed in your browser.

2. Compare two versions: JSON Diff
When staging and production return "the same" response but something breaks, a line diff of pretty-printed JSON is noisy. The default view lists semantic paths (added, removed, modified), so user.address.zip showing as modified tells you more than 40 red and green lines. You can switch to a unified, git-style view when you need it.

3. Turn it into types: JSON to TypeScript
Paste a real response and get interfaces or type aliases. It's a better starting point than typing the shape by hand, but review optional fields. A sample can't tell you which keys are sometimes missing. There are siblings for Zod, Go structs and Python classes.

4. Hand it to a spreadsheet person: JSON ↔ CSV
Both directions work on one page, with nested objects, quoted commas and custom delimiters handled. One caution: CSV has no types. "00123" and 123 look the same once they're in a cell, so don't round-trip JSON through CSV and expect the original back.

Bonus: JWT Decoder. A JWT is often a live credential, so pasting one into a random decoder is a real risk. This one decodes and verifies HS256/384/512 and RS256 (with a PEM key) in the browser, and the page states that secrets stay on the page.

PDF: merge, number, clean, in that order

The order matters more than the tools.

1. Merge the files and drag them into sequence. The merge runs in the browser with the open-source pdf-lib library. If you only need part of a document, run Split first.

2. Add page numbers after merging. If you number each file first, you get "1, 2, 3, 1, 2" in the final document. One numbering pass on the merged file gives one sequence.

3. Compress if the file is too big for email. Low rewrites the structure, Medium re-encodes embedded JPEGs, and High also scales them down, so photos may look softer. Text stays the same.

4. Remove metadata as the very last step. A PDF can carry the author's account name, the program that made it and timestamps. The tool shows the Info fields and XMP data and gives you a copy without the ones you tick. Two honest caveats from the tool's own docs: it is a metadata remover, not a forensic scrub (annotation author names and EXIF inside embedded photos stay), and if you open and re-save the cleaned file in another program, that program writes its own Producer and dates back in. So clean last, then send.

If the file must be locked, PDF Protect adds a password with AES-256 encryption.

Images: convert, resize, then compress

1. HEIC to JPG: iPhone photos often show up as blank thumbnails on Windows or get rejected by upload forms. This tool decodes HEIC with libheif compiled to WebAssembly, right in the tab, and outputs JPG, PNG or WebP. Drop a batch and download a zip.

2. Image Resizer: resize before you compress. A 4000Γ—3000 photo shown at 800Γ—600 wastes bytes no matter how well you compress it. You can resize by percentage or exact pixels, or use social presets (X, LinkedIn, Instagram, YouTube and more).

3. Image Compressor: takes JPEG, PNG, WebP and AVIF in, and outputs MozJPEG, WebP, AVIF, or lossless PNG optimized with OxiPNG. One detail people miss: JPEG, WebP and AVIF are lossy at every quality setting, including 100%. If pixels must not change, choose PNG.

Before you publish a photo: open it in Media Info Viewer to see what EXIF data it carries (camera, timestamps, sometimes location).

When you need it in a script instead

Browser pages are right for one-off jobs, and anything that needs a local file, the camera or a canvas only works there. For repeatable transforms, FindUtils also has a REST API (387 tools) and an MCP server (388 tools) for AI clients. The catalog is described in an OpenAPI 3.1 spec and indexed in llms.txt. Every page also has a Markdown twin: add markdown.md to the path.

To set expectations: running a tool through the API or MCP needs an API key. Keys aren't for sale yet, and early access goes through the contact page. The catalog and schemas are open to read, and the browser tools need no key.

The short version

  • Test the "no upload" claim with the Network tab instead of trusting a badge.
  • JSON: format β†’ diff β†’ generate types. Don't expect CSV to keep your types.
  • PDF: merge β†’ number β†’ compress β†’ strip metadata last.
  • Images: convert β†’ resize β†’ compress, and check EXIF before you publish.

Everything above is free at findutils.com. If a tool is missing from your workflow, there's a request page. I read those.

Olgun Γ–zoktaş builds and reviews the tools on FindUtils.

πŸ“° Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes β€” full credit and traffic to the original publisher.