After months of confusion, here's the mental model for RSC that made everything clear.
I struggled with RSC for months. Then I realized I was thinking about it wrong.
I kept thinking: "Server Components are like SSR but different." This led to endless confusion about hydration, client boundaries, and data flow.
Server Components are a new primitive. They're not "SSR components"—they're components that only exist on the server. They never hydrate because they were never meant to run on the client.
Think of the "use client" directive as drawing a line. Everything above the line stays on the server. Everything below the line gets shipped to the browser.