February 12 2025
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
Founder & Engineer
4 min Intermediate Frontend
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:
- who builds the initial HTML
- when the browser receives that HTML
- 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
- SSR generates HTML on the server. Hydration connects that HTML to interactive JavaScript in the client.
- Client-side rendering is born in the browser and usually delivers useful structure later than SSR.
- Having HTML early does not mean having interactivity early. Hydration also costs CPU and time.
- Separating these phases makes it much easier to explain SEO, TTFB, interactivity, and mismatch bugs.
Practice checklist
Use this when you answer
- Can I explain what the user receives before JavaScript executes?
- Can I say what hydration does beyond simply downloading script?
- Can I distinguish a page that is ready to read from a page that is ready to interact?
- Can I answer when pure CSR makes sense and when SSR helps more?
You finished this article
Part of the track: Senior Frontend Interview Trail (8/15)
Share this page
Copy the link manually from the field below.