We have shipped three production projects with React Server Components in the last six months. The wins are real, the gotchas are real, and the conventional wisdom on the internet is about 60% accurate. Here is what we actually learned.

What genuinely got faster

What did not get faster

Interactive parts of the app. RSCs are not magic for interactivity; you still need client components, and the boundary between them takes some thinking. We spent more time deciding what should be server vs client than the framework documentation suggested we would.

The mental model that finally clicked

Server components are template engines. Client components are React. The boundary is where you commit to shipping JavaScript.

Once we stopped thinking of RSCs as a new kind of React and started thinking of them as "the part of the page that gets templated," composition got much clearer.

Patterns we wish we knew

Debugging

The error messages are getting better but are still terrible compared to client-side React. We have learned to read the server logs first, the browser console second. Sometimes it is faster to "comment out half the page and bisect" than to interpret a hydration error.

Would we use them again

Yes, for content-heavy apps with a clear separation between presentation and interaction. Maybe not, for highly interactive apps where almost everything carries client state.

Related reading