I built a website with no backend at all — every tool runs in your browser, so your data never leaves your device.
It's the first thing I've ever shipped, and honestly? I'm not sure I made the right call.
I'd love for you to tell me. 👇
The annoyance that started it
You know the loop.
You need to format a chunk of JSON. Or decode a JWT to check what's inside. Or shrink an image before uploading it somewhere.
So you Google it, click the first result, and land on a site that's:
- 🧱 buried in ads
- 🔒 asking you to "sign up to continue"
- 😬 telling you to "upload your file to our server" — for something that obviously doesn't need one
That last one always bugged me. Why does compressing a PNG require anyone's server?
So I built Utilify: the small tools I reach for daily, in one clean place.
The rule: nothing leaves your device
I gave myself one hard constraint:
Every tool runs 100% in the browser. No backend. Ever.
Turns out the browser can already do almost all of it:
| Task | What does the work |
|---|---|
| Format JSON |
JSON.parse / JSON.stringify
|
| Compress images | the Canvas API |
| Generate IDs | crypto.randomUUID() |
| Base64 |
btoa / atob + TextEncoder
|
Decoding a JWT payload? It's genuinely one line:
const payload = JSON.parse(atob(token.split('.')[1]));
No request. No upload. Nothing for me to log, leak, or get hacked out of.
The part I didn't expect
I went backend-less for privacy. But it quietly fixed three other things:
- ⚡ Fast — no server round-trip, so results are instant
- 📶 Works offline — once the page loads, you can pull the plug
- 💸 Basically free to run — which is the only reason it can stay free
One decision, four wins. That rarely happens.
What building it actually taught me
I couldn't fake my way through the topics — I had to understand them. A few things that surprised me enough to write up:
- 👉 Base64 is encoding, not encryption — and people mix this up constantly
- 👉 Base64 vs Base64URL — two characters (
+ /vs- _) cause a shocking amount of pain - 👉 How to decode a JWT in JS — and why you should never trust an unverified one
Where I'm honestly still unsure
This is my first shipped project, so I'd love a reality check from people who've done this more than once:
- Is "no backend" a feature users actually care about — or just a thing I find satisfying?
- Canvas image compression is fine, not amazing. Is WASM worth the complexity for a free tool?
- How do you know a tool is done vs. just endlessly polishing?
Try it / roast it
The JSON formatter and JWT decoder get the most use so far. Free, no signup.
If you've shipped something like this, be blunt in the comments — that's the whole reason I'm posting instead of sitting on it.
And the question I keep coming back to:
What tiny utility do you keep wishing existed in one clean, fast place? That's how I pick what to build next. 👇
Top comments (0)