DEV Community

Nadim Chowdhury
Nadim Chowdhury

Posted on

Not Everything Needs SSR

SSR is great.

But I think we’ve reached a point where it gets recommended so often that we sometimes forget to ask a simpler question:

Does this particular application actually need a server to render its UI?

There are plenty of cases where the answer is clearly yes.

A personalized e-commerce cart needs backend state.
A dashboard may depend on user-specific data.
A social feed can change constantly and needs fresh information.

In those situations, server rendering makes sense.

But what about a JSON formatter?

Or a Base64 encoder?

A hash generator?

A unit converter?

A color tool?

These are fundamentally different applications.

The user opens the page, enters some data, and the browser processes it.

The server doesn't need to calculate the result.

So why should the server render the application every time someone opens it?

The architecture should match the workload

This was one of the ideas behind Utilifie.

Instead of treating every tool like a traditional server-rendered application, we looked at what actually happens when someone uses these tools.

For many of them, the workflow is essentially:

Open tool
   ↓
Enter data
   ↓
Process locally
   ↓
Show result
Enter fullscreen mode Exit fullscreen mode

There isn't much value in sending that interaction to a backend.

So the goal became to keep as much of the experience as possible on the client.

The application shell can be statically generated and cached, while the actual processing happens directly in the browser.

That changes the infrastructure requirements quite a bit.

Less server work

If a calculator can perform its calculation in the browser, there's little reason to spend server resources rendering a response for every interaction.

The same applies to formatters, converters, encoders, parsers, and many other small utilities.

The browser already has the CPU.

Why send the work somewhere else?

This also opens the door to aggressive caching and offline-capable experiences through technologies such as Service Workers.

Once the application assets are cached, some tools can continue working without a network connection at all.

That's a much better fit for software whose core job is local computation.

It's not about SSR being bad

This isn't an argument that SSR should disappear.

It's about choosing it deliberately.

If your application needs server-side data, authentication, personalization, or frequently changing backend state, SSR can be exactly the right tool.

But if the server is essentially rendering a shell around a client-side calculator, formatter, or converter, it may be worth questioning whether the server belongs in that request path in the first place.

Frameworks make it incredibly easy to add sophisticated infrastructure.

That doesn't mean we always need to use all of it.

Architecture should follow the actual workload, not whatever happens to be fashionable in the current framework ecosystem.

That's one of the principles we're applying while building Utilifie.

You can explore it here:

Utilifie

Top comments (0)