By default, in Next.js, layouts and pages are react server components, which lets you fetch data and render parts of your UI on the server, optionally cache the result, and stream it to the client
When you need interactivity or browser APIs, you can use Client Components to layer in functionality
RSC payload is prefetched and cached for instant navigation
Client components are rendered entirely on the client, without the server-rendered HTML
Using
Client components
Add "use client" to the top
This is used to declare a boundary between server & client module graphs (trees) → once a file is marked with "use client", all its imports and child components are considered part of the client bundle (so u don’t need to even add "use client")
You can pass data from Server Components to Client Components using props