Letting the browser build the UI after the initial page has already loaded.
Even inside a framework built around server rendering, client-side rendering still has a real role. Data or UI that's genuinely user-specific after the initial load, changes frequently, or depends on browser-only APIs is often better fetched and rendered client-side — inside a 'use client' component using hooks like useEffect or a client-side data-fetching library — rather than forced through the server.
The practical skill is being deliberate about the boundary: marking a component 'use client' pushes it (and everything it imports) into the browser bundle, losing the SSR/SSG benefits for that subtree. The better default is keeping the client boundary as small as possible — often just the specific interactive leaf, like a button or a form — rather than marking an entire page client-side out of habit.
What you'll walk away knowing