React Server Components: When to Use Them (and When Not To)
Lessons from months of running RSC in production
A practical mental model for React Server Components: what belongs on the server, what belongs on the client, and the composition mistakes that trip most teams up.
Share this post

I still see projects slapping "use client" on everything out of fear of Server Components. After months of running them in real production apps, here's the mental model that actually stuck. 😅
🖥️ Everything starts as a Server Component — you only drop to Client when you need state, effects, or browser events.
⚠️ RSC isn't free magic: sequential fetches on the server still block the render.
🧩 Composition beats direct imports — pass Server Components down as children to Client Components instead of importing them inside.
📦 The bundle you never ship to the client is the cheapest optimization there is.
🔍 Debugging feels strange at first because not everything runs in the browser — and that's okay.
It took several real projects to fully understand this model, as it is rarely explained well the first time.