Skip to content

Some thoughts on React Server Components

Posted on:July 10, 2023 at 01:22 AM

Here are my thoughts as a long-time React developer on React Server Components (RSC) and the Next.js app router.

What this post isn’t

I’m not here to talk about the rollout of RSC, or Vercel’s role in React, or who’s being mean to who online (please don’t be mean to anyone online, least of all the people who build the tools we rely on.) This article is simply how I’m thinking about these new features as a developer who, like you, uses React to get my job done.

Okay so what about React Components then?

First off, it’s good! The model enables new ways of fetching data that will help us deliver better experiences with a better developer experience. Anyone who’s dealt with shared components needing data in a server-rendered app can see the benefits here. It’s a tricky problem to solve using existing models

BUT, if the only public-facing part of your app is a login screen, there’s absolutely nothing wrong with going with a single-page app (SPA) approach. It may even enable a more fluid user experience than trying to server-side render everything. Many of the tools we use all day are SPAs. Don’t make the mistake of thinking your internal tool or B2B SaaS app has the same concerns as a public-facing e-commerce platform.

Finally, RSC and the app router are very new! Server actions are still in alpha! There is no rush to migrate your existing stuff or even start new projects with them. The Next.js pages directory (especially using Create T3 App) is still a very productive way to build SSR React apps. Not to mention Remix, Astro, SvelteKit, and a number of others.

If you’re not a tech influencer, you don’t need to jump on cutting-edge stuff right away. Over the next year or so, there will be way more tooling and patterns that emerge around using RSC. Let the tech influencers and library authors wade in early and step on all the rakes so that you don’t have to. You’re not going to get left behind if you wait a little while longer. Instead, you’ll be able to spend your time learning the patterns that the early adopters have converged on.

But I want to dive in!

If you want to start now don’t let me stop you! Exploring for the sake of exploring is a big part of what makes working in this discipline great. But I’m seeing a lot of people getting frustrated because they feel like they have to start using this stuff now and I’m telling you that you can absolutely stick with the tools and processes that you like.