Skip to content
Preptima
hardScenarioDesignSeniorStaff

How do you architect a React Server Components migration without accidentally forcing the entire component tree back to the client?

React Server Components differ from SSR because they keep server-only work out of the client bundle instead of only rendering HTML on the server. The migration works when the use client boundary stays low and data fetching stays on the server.

2 min readUpdated 2026-08-15

Answer

Short answer

Use React Server Components for server-only data access and low client bundles, then add Client Components only around interactive islands. SSR renders initial HTML, but RSC also changes what code and data are shipped to the browser.

Was this answer helpful?

Likely follow-ups

  • How would you detect, at build time or in CI, that a component accidentally leaked a server-only secret into the serialized RSC payload?
  • How would you structure Suspense boundaries so a slow, unrelated data dependency in one part of the tree cannot delay streaming of the rest of the page?
  • A Client Component needs to pass a callback into a deeply nested Server Component subtree. How do you restructure the composition to avoid crossing the boundary illegally?

Related questions