https://www.joshwcomeau.com/react/server-components/ JoshWComeau * Latest * Posts * Goodies * Courses HomeTutorialsReact Making Sense of React Server Components Table of Contents IntroductionA quick primer on Server Side RenderingBouncing back and forthIntroduction to React Server ComponentsCompatible Environments Specifying client componentsBoundariesPeeking under the hood AdvantagesThe full picture Introduction So, here's something that makes me feel old: React celebrated its 10th birthday this year! In the decade since React was first introduced to a bewildered dev community, it's gone through several evolutions. The React team has not been shy when it comes to radical changes: if they discover a better solution to a problem, they'll run with it. A couple of months ago, the React team unveiled React Server Components, the latest paradigm shift. For the first time ever, React components can run exclusively on the server. There's been so much friggin' confusion about this online. Lots of folks have lots of questions around what this is, how it works, what the benefits are, and how it fits together with things like Server Side Rendering. I've been doing a lot of experimentation with React Server Components, and I've answered a lot of my own questions. I have to admit, I'm way more excited about this stuff than I expected to be. It's really cool! So, my goal today is to help demystify this stuff for you, to answer a lot of the questions you might have about React Server Components! Intended audience This tutorial is written primarily for developers who are already using React, and who are curious about React Server Components. You don't need to be a React expert, but it will likely be pretty confusing if you're just getting started with React. Link to this heading A quick primer on Server Side Rendering To put React Server Components in context, it's helpful to understand how Server Side Rendering (SSR) works. If you're already familiar with SSR, feel free to skip to the next heading! Originally, React was designed to work exclusively in-browser, on the user's device. The user would receive an HTML file that looked like this: html That bundle.js script includes everything we need to mount and run the application, including React, other third-party dependencies, and all of the code we've written. Once the JS has been downloaded and parsed, React springs into action, conjuring all of the DOM nodes for our entire application, and housing it in that empty