DEV Community

Cover image for What I learned building my first side project: doing everything client-side
Soo
Soo

Posted on

What I learned building my first side project: doing everything client-side

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]));
Enter fullscreen mode Exit fullscreen mode

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:

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:

  1. Is "no backend" a feature users actually care about — or just a thing I find satisfying?
  2. Canvas image compression is fine, not amazing. Is WASM worth the complexity for a free tool?
  3. 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)