Skip to main content

Command Palette

Search for a command to run...

I built 30+ file tools that run entirely in your browser — no server, no uploads

Updated
2 min read
B
Full-Stack Developer with over 4 years of experience building scalable, high-performance web and mobile applications. Strong expertise in React.js, Next.js, Node.js, TypeScript, MongoDB, and automation tools

Most "free online tools" sites have the same dirty secret: when you merge a PDF or compress an image, your file gets uploaded to their server. For anything sensitive — contracts, IDs, personal photos — that's a problem most people never think about.

So I built UseOnlineTools as an experiment: a tools site where nothing touches a server. Every operation runs client-side in the browser.

The stack

  • Astro — ships zero JS by default, each tool is an island, great Core Web Vitals

  • WASM + pdf-lib / pdf.js — PDF operations (merge, split, compress, rotate, convert)

  • Canvas + WASM codecs — image work (compress, resize, HEIC→JPG, PNG→WebP, EXIF stripping)

  • Pure JS — dev tools (JSON formatter, regex tester, JWT decoder, hashing, UUIDs)

  • Cloudflare Pages — fully static hosting, near-zero ops cost

The interesting constraint

Deciding what can't be done client-side. Anything needing a rate-limited third-party API or heavy video transcode got cut.

The rule became: if a tool needs a backend, it doesn't belong on this site. That constraint is also the privacy guarantee and the cost model — all three are the same decision.

A few things I learned

  • HEIC decoding in the browser is genuinely painful. The WASM decoder is large and you have to lazy-load it.

  • "Your file never leaves your device" is hard to communicate. Users don't believe it by default. Still working on how to surface that trust.

  • Static-first means SEO content and the tool can coexist on one fast page without a framework fighting you.


It's live and free. I'd love feedback from this crowd specifically — on the architecture choices, on tools that break, or on what client-side tool you wish existed.

What would you have built differently?