Skip to main content

SSR, Hydration, and Client-Side Rendering Without Mixing Them Up

How to separate what is HTML coming from the server, what is activation in the client, and what really only comes to life in the browser.

Andrews Ribeiro

Andrews Ribeiro

Founder & Engineer

Track

Senior Frontend Interview Trail

Step 8 / 15

The problem

In many modern web apps, people hear these three labels and mix them all together:

  • SSR
  • hydration
  • client-side rendering

Then bad phrases appear, such as:

  • “SSR is faster”
  • “hydration is SSR”
  • “CSR has no HTML”

Each one touches a piece of the truth.

But together they still leave the picture blurry.

Mental model

The most useful way to think about it is to separate phases:

  1. who builds the initial HTML
  2. when the browser receives that HTML
  3. when the page gains real interactivity

With that:

  • SSR is about building the initial HTML on the server
  • hydration is about connecting that HTML to interactive code on the client
  • client-side rendering is about building the main UI in the browser

Those things can coexist in the same product.

Breaking the problem down

What SSR does

In SSR, the server returns already-built HTML.

That helps with things like:

  • readable content early
  • better response for crawlers
  • a faster first visual impression in many cases

But one caution matters:

SSR delivers structure early.

It does not guarantee early interactivity by itself.

What hydration does

Hydration is the stage where JavaScript in the browser takes that existing HTML and attaches the expected behavior.

In simple language:

  • the HTML is already there
  • but handlers, state, and interactive logic still need to attach

That is why a page can:

  • look ready to read
  • but still not be ready to interact with properly

That gap confuses a lot of UX debugging.

What CSR does

In purer client-side rendering, the browser receives less ready-made structure and builds the main interface with JavaScript.

That can make sense when:

  • the experience is very app-like
  • SEO is not a central priority
  • the initial shell is simple
  • the team accepts depending more on the client to build the screen

But the cost shows up in the browser:

  • downloading script
  • executing script
  • building the UI

Mixing visual phase and interactive phase creates confusion

A page can:

  • have early HTML because of SSR
  • still take time to become clickable because of hydration

Another page can:

  • take longer to show structure
  • but gain direct interactivity faster in a smaller area afterward

So the useful question is not “which model is better?”

It is:

where do I want to bring reading forward, where do I need interaction earlier, and who is going to pay that cost?

Simple example

Imagine a product page.

With SSR:

  • the server returns title, price, and description in HTML
  • the user sees content early
  • later the browser hydrates the buy button, selectors, and recommendations

With pure CSR:

  • the browser receives an initial shell and scripts
  • only then builds title, price, and the rest of the page

In the first case, reading arrives early.

In the second, the main assembly depends more on JavaScript.

Neither one is automatically right in every case.

It depends on the page type and the desired experience.

Common mistakes

  • Assuming SSR means immediate interactivity.
  • Treating hydration like a detail with no cost.
  • Calling every client-side render hydration.
  • Treating CSR as wrong by principle.
  • Ignoring mismatch between server HTML and client state.

How a senior thinks about it

People with more experience usually separate:

  • time to see
  • time to interact
  • CPU cost in the client
  • indexing needs

That separation improves the decision a lot.

Because it pulls the conversation out of framework marketing and back into real page behavior.

What the interviewer wants to see

In interviews, the evaluator usually wants to see whether you understand the difference between delivering HTML and delivering interactivity.

Your level rises when you:

  • explain SSR as initial assembly on the server
  • explain hydration as interactive activation
  • explain CSR as main assembly on the client
  • talk about trade-offs between early reading, interaction, and browser cost

A strong answer often sounds like this:

SSR helps deliver HTML early. Hydration connects that HTML to interactive JavaScript. In pure CSR, the main UI is born on the client. The choice depends on SEO, initial perception, and execution cost in the browser.

A rendered page is not necessarily a ready page. That difference improves diagnosis a lot.

Quick summary

What to keep in your head

Practice checklist

Use this when you answer

You finished this article

Part of the track: Senior Frontend Interview Trail (8/15)

Next article Talking About Availability and Reliability Without Exaggeration Previous article How the Browser Loads JS, CSS, Fonts, and Images

Keep exploring

Related articles