React Server Components (RSC) are components that execute on the server, not in the browser. Introduced in React 19 / Next.js 13+.
Simple analogy: Imagine you are ordering pizza.
Server Components advantages:
1async function UserList() {2 const users = await db.query('SELECT * FROM users');3 return <div>{users.map(u => <p>{u.name}</p>)}</div>;4}
What server components CANNOT do:
How it works in Next.js:
All components are Server Components by default. If you need interactivity, add "use client" at the beginning of the file.
System design context: RSC fundamentally changes the React architecture model. Instead of shipping all component code to the client (SPA), you now have a server-first architecture where components render on the server by default, and only interactive parts ship JavaScript to the browser.
Common pitfalls with root cause + fix:
Monitoring/observability: Track the ratio of server vs client components in your bundle. Use Next.js build output to see which components are server-rendered vs client-side. Monitor Time to First Byte (TTFB) and Largest Contentful Paint (LCP) to measure the performance benefit of RSC.