Skip to content
Nikunj Chugh

WEB DEVELOPMENT · 15 DEC 2022 · READ TIME: 8 MIN

Server components changed how I think about data fetching

The default data-fetching pattern for years was some version of: render a loading state, fetch data client-side after mount, then render the real content once the fetch resolves, a pattern so common it stopped feeling like a choice at all, even though it reliably produces a visible loading flash and a waterfall of client-side requests that a server could have resolved before the page was ever sent.

React server components make the alternative, fetching data on the server before the page renders at all, dramatically easier to reach for than it used to be, because it no longer requires choosing between server-rendering an entire page or client-rendering an entire interactive app, individual components can fetch server-side while sibling components stay fully interactive on the client.

The practical shift in how I build now: default to fetching data in a server component, unless a piece of the page genuinely needs client-side interactivity or real-time updates, in which case that specific piece, and only that piece, becomes a client component with its own client-side data needs, rather than making that call for an entire page at once.

This isn't a claim that client-side fetching is now obsolete, plenty of genuinely interactive, real-time features still need it. It's a claim that the old default, fetch everything client-side because that's just how it's done, was never actually the right default, and server components removed the main excuse for reaching for it out of habit.

Nikunj Chugh

Growth systems architect: AI automation, media buying, web & SEO.

Next step

Let's find your bottleneck.

A 30-minute discovery call. You bring the numbers, I'll bring the questions. If I'm not the right fit, I'll tell you who is.