We were skeptical in 2024. After two years of shipping RSC in production on real client sites, here is what works, what does not, and the mental model that actually clicks.
React Server Components shipped in Next.js 13 in late 2022 and the discourse has not stopped. After two years of shipping RSC-first apps for real clients, our team’s position has shifted from “wait and see” to “default unless proven otherwise”.
Stop thinking “server vs client component”. Start thinking “data-fetching boundary”. The server component fetches and renders to HTML; the client component handles interactivity. The boundary is the seam where you hand props down.
State that crosses many components (user preferences, theme, cart). The “use client” boundary creep is real, and Context still does not work in RSCs. We end up with a thin client-only provider layer wrapping otherwise-server pages.
For any new marketing site, dashboard or content-heavy app: start RSC-first. Add “use client” only where you need it. For existing SPAs with heavy state libraries, the migration cost is real, do not chase it for its own sake.
We ship Next.js 15 + RSC by default on every web development engagement.