Panel Discussion: Difficulties of Adopting RSC From a Framework and Library Sides

This ad is not shown to multipass and full ticket holders
React Summit
React Summit 2025
June 13 - 17, 2025
Amsterdam & Online
The biggest React conference worldwide
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit 2025
React Summit 2025
June 13 - 17, 2025. Amsterdam & Online
Learn more
Bookmark
Rate this content

FAQ

React Server Components (RSC) are a feature of React that allow developers to render components on the server, sending only the minimal amount of data needed to hydrate components on the client side. This can improve performance by reducing the amount of JavaScript sent to the client.

Developers face several challenges when adopting React Server Components, including understanding the boundary between server and client components, migrating existing client-side apps to use server components, and dealing with the lack of comprehensive documentation and examples.

For library and framework maintainers, adopting React Server Components involves significant effort to understand their behavior and integrate them into existing systems. It requires careful consideration of how server and client components interact and the creation of new mental models for application architecture.

Next.js is one of the most mature implementations of React Server Components, providing a practical framework for developers to use RSC in production environments. It is developed by Vercel, which also employs some React core team members, giving it a leading edge in RSC adoption.

Yes, besides Next.js, frameworks like Waku and Redwood are also implementing React Server Components. These implementations aim to offer alternatives and explore different aspects of RSC integration.

Waku is a framework developed to explore React Server Components without additional features like SSR or routing. It aims to provide a minimal environment for learning and implementing RSC, helping the community understand its core functionalities.

Developers need to shift from a client-side focused mindset to one that considers the division between server and client components. This involves rethinking component architecture and learning new ways of handling data synchronization and state management.

Community collaboration is vital as it fosters the sharing of knowledge, resources, and experiences among developers. It helps in building a more comprehensive understanding of RSC and encourages the development of diverse implementations, leading to better tools and practices.

Areas needing attention include creating better developer tools, establishing clear testing methodologies for server components, and expanding documentation and educational resources to ease the learning curve for developers.

Dominik Dorfmeister
Dominik Dorfmeister
Aleksandra Sikora
Aleksandra Sikora
Tobbe Lundberg
Tobbe Lundberg
Daishi Kato
Daishi Kato
29 min
25 Oct, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Theme: Challenges of Adopting React Server Components as a Library or Framework Maintainer. Daishi and Tobi share experiences in developing React frameworks. Redwood's upcoming migration and version updates. Dominik's pivotal role with React Query in the migration process. React Query limitations in server components. State management libraries adaptation challenges. Alexander's perspective on RSC transformation and its impact on development practices. Developers' mindset shift to React Server Components and server-client boundary challenges. Challenges in implementing React Server Components with different frameworks and the need for multiple implementations to determine best practices. Challenges in understanding React components implementations within different frameworks and the shift from Webpack to Vite for server components development. Discussion on challenges and advantages of server components implementation and the impact on the React community. Discussion on the impact of large teams on development speed and the importance of implementing technologies in multiple ecosystems. Discussion on the React industrial complex, individual developer contributions, and diverse approaches to React server components like 10 stack start. Discussion on the need for implementations, testing server components setups, and the importance of documentation in React development. Panelists discuss exciting upcoming projects such as React query integration, data fetching improvements in Redwood, and a potential relay solution for React server components.

1. Exploring Challenges in React Development

Short description:

Theme: Challenges of Adopting React Server Components as a Library or Framework Maintainer. Daishi and Tobi share experiences in developing React frameworks. Redwood's upcoming migration and version updates. Dominik's pivotal role with React Query in the migration process.

So the theme for us today is the title that we were given to ponder upon and meditate on is Challenges of Adopting React Server Components as a Library or Framework Maintainer or Author. You know, that's a very broad missive and, you know, like I think we're all very sort of like interested in the process that goes into the meat grinder. You know, I think Daishi today, you know, you explained, you showed, you know, in practice what, you know, like undertaking it is to actually implement all of the different, you know, sort of cases needed to support server components. So let's jump sort of straight into it. So, you know, you work in a work where, you know, you have sort of essentially had to figure out, you know, all of this, you know, for yourself. How has the experience been? Well, is it on? Yes. Okay. So developing React Framework is tough. One of the reasons is that it's not very specified. So I went through all examples and try out many, many things and see, understand the behavior, not from the document, not from the source code and, yeah, build a mental model and create a framework, which is still a tough task. But yeah, I've done it. You've done it. Yes. Yes. A round of applause. And I understand Tobi, you are in the process of doing it. You haven't quite yet done it, but you are close to having done it. Is that right? I'm trying to... saying close is difficult, but yeah. No, I feel like we're finally getting close to having something that we can ship for users to play with for sure. Yeah, right. So Redwood is making the sort of migration, you know, like before you would, you know, like I guess Redwood would be considered sort of like centered around GraphQL and now in the future, the next version of Redwood will be...

So next version, coming back to what are our major versions, we try to, like we are on version 8. We're probably going to be version 9, 10, maybe before doing the big release with React Serial Components. So we try to speak in epochs instead, but we'll see. The messaging is difficult around major versions for sure because people have heard, expect big things, but just because it's a major version break. But yeah, so next version may probably not, but yeah, next epoch definitely going to be React Serial Components. Yeah. And Dominik, you know, you're working on React Query, which is sort of like a client library, right. But are you surprised at all that you're kind of finding your library in a very pivotal position in this sort of like, you know, migration? Like, you know, in my job we use Next.js App Director and we use server components and we use React Query, you know, as the kind of like client-side cache.

2. Challenges in Adopting React Server Components

Short description:

React Query limitations in server components. State management libraries adaptation challenges. Alexander's perspective on RSC transformation and its impact on development practices.

So you must be like seeing a lot of the like actual live end-user, you know, sort of problems and challenges. Is there, you know, anything like what's been your experience as a maintainer of a project sort of, you know, perceiving people adopting server components using React Query? Yeah, it's a bit of an awkward position to be in because as you said, React Query is like fundamentally a client library, right. So all the hooks that we expose cannot be used on the server. So sometimes we get questions like, can we use this in server components? And the answer is like fundamentally no, you can't use it in a server component. You can't use it in a framework that leverages server components for rendering if you want some client-side interactivity or if you want to start the fetch on the server and then send data or even send the promise to the client and then put it into the client cache and then continue with client-side interactivity there. But in server components themselves, React Query doesn't actually export any components apart from the context provider. So there is really nothing that you could use in a server component. Yeah, but yet it's like a pivotal part of it and actually similar, your previous effort, you are well known to be a maintainer of many state management libraries. Again, like the people that you have interacted in the past, maintaining these libraries have now sort of facing this monumental sort of like rethink. Are you seeing any sort of churn there? Yeah, exactly. For people who has used my state management library, want to use server RSC, server component, but it's not possible because it's a client-side state management library. So I have had a hard time explaining why this is not possible or how should we do. So that's one of my motivations to start developing Waku so that I can eventually support those state management libraries. So yeah, that's the thing, how it goes. Yeah. And I think that's kind of like, we were yesterday talking about this and I think some mindset shift is sort of like a big thing and we'll probably spend a lot of time talking about it. So before we jump into it, Alexander, I also wanted to sort of ask you, you just gave a presentation where you showed sort of the timeline of the things that you have sort of worked on in the context of data. And it was very interesting in the context of React server components because you were in a way like a trailblazer with Blitz, kind of this early model of being able to import server code into client code, even though it wasn't based on RSC. So how do you sort of see this transformation? Like if you were working on that project or your next project in that space, do you think RSC would be the way to go for you? Yes, I think so. Like something that we try to do is to like minimize this API layer to bring server closer to the client, which is also something that RSC enable. And basically it was this framework that would let you run server code or access your database directly in your client components. And yes, it did not use RSC. We spent some time thinking like, okay, so how do we deal with that? How do we not copy the code? Like how do we not have it in two places on the server and on the client? How does it communicate? So yes, I definitely feel that RSCs are the way. It's a shame that we didn't have them back then, but it's good that we had Blitz. Well, that is always the pain of the early adopter of the trailblazer. You have to figure out a lot of things that the later generations get for free, essentially. So let's jump into this kind of mindset shift. This seems to be something that like, was it yesterday, we were having a bit of conversation about what we should talk about. And Dominik said something like, well, there are these developers who just don't want to update their thinking. And I was like, wait a minute.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Simplifying Server Components
React Advanced 2023React Advanced 2023
27 min
Simplifying Server Components
Top Content
Watch video: Simplifying Server Components
React server components simplify server-side rendering and provide a mental model of components as pure functions. Using React as a library for server components allows for building a basic RSC server and connecting it to an SSR server. RSC responses are serialized virtual DOM that offload code from the client and handle interactivity. The client manifest maps serialized placeholders to real components on the client, enabling dynamic rendering. Server components combine the best of classic web development and progressive enhancement, offering the advantage of moving logic from the client to the server.
Exploring React Server Component Fundamentals
React Day Berlin 2023React Day Berlin 2023
21 min
Exploring React Server Component Fundamentals
Top Content
Watch video: Exploring React Server Component Fundamentals
This Talk introduces React Server Components (RSC) and explores their serialization process. It compares RSC to traditional server-side rendering (SSR) and explains how RSC handles promises and integrates client components. The Talk also discusses the RSC manifest and deserialization process. The speaker then introduces the Waku framework, which supports bundling, server, routing, and SSR. The future plans for Waku include integration with client state management libraries.
And Now You Understand React Server Components
React Summit 2024React Summit 2024
27 min
And Now You Understand React Server Components
Top Content
In this Talk, Kent C. Dodds introduces React Server Components (RSCs) and demonstrates how to build them from scratch. He explains the process of integrating RSCs with the UI, switching to RSC and streaming for improved performance, and the benefits of using RSCs with async components. Dodds also discusses enhancements with streaming and server context, client support and loaders, server component rendering and module resolution, handling UI updates and rendering, handling back buttons and caching, and concludes with further resources for diving deeper into the topic.
A Practical Guide for Migrating to Server Components
React Advanced 2023React Advanced 2023
28 min
A Practical Guide for Migrating to Server Components
Top Content
Watch video: A Practical Guide for Migrating to Server Components
React query version five is live and we'll be discussing the migration process to server components using Next.js and React Query. The process involves planning, preparing, and setting up server components, migrating pages, adding layouts, and moving components to the server. We'll also explore the benefits of server components such as reducing JavaScript shipping, enabling powerful caching, and leveraging the features of the app router. Additionally, we'll cover topics like handling authentication, rendering in server components, and the impact on server load and costs.
Server Components: The Epic Tale of Rendering UX
React Summit 2023React Summit 2023
26 min
Server Components: The Epic Tale of Rendering UX
Top Content
Watch video: Server Components: The Epic Tale of Rendering UX
This Talk introduces server components in React, which provide an intermediate format for rendering and offer advantages for both client-side and server-side rendering. Server components reduce bundle size on the client and improve search engine optimization. They abstract the rendering process, allowing for faster rendering and flexibility in choosing where to render components. While server components are still in the experimental stage, Next.js is a good starting point to try them out.
RSCs In Production: 1 Year Later
React Summit 2024React Summit 2024
24 min
RSCs In Production: 1 Year Later
This Talk explores the experience of shipping server components in production and highlights the benefits and challenges of using Server Components in Next.js apps. The Talk discusses the deployment of UploadThing and the use of AppRouter for safe production usage. It delves into the implementation of different layouts, data fetching, and code centralization for improved performance. The Talk also covers the use of server components for performance optimization and latency handling. Additionally, it explores the use of Edge and Lambda for partial pre-rendering and the challenges faced with webpack performance and hydration. Overall, the Talk emphasizes the benefits and challenges of working with Server Components in Next.js applications.

Workshops on related topic

Mastering React Server Components and Server Actions in React 19
React Summit US 2024React Summit US 2024
150 min
Mastering React Server Components and Server Actions in React 19
Featured Workshop
Maurice de Beijer
Maurice de Beijer
Calling all React developers! Join us for an immersive 4-hour workshop diving deep into React Server Components and Server Actions. Discover how these game-changing technologies are revolutionizing web development and learn how to harness their full potential to build lightning-fast, efficient applications.

Explore the world of React Server Components, seamlessly blending server-side rendering with client-side interactivity for unmatched performance and user experience. Dive into React Server Actions to see how they combine client-side interactivity with server-side logic, making it easier to develop interactive applications without traditional API constraints.

Get hands-on experience with practical exercises, real-world examples, and expert guidance on implementing these technologies into your projects. Learn essential topics such as the differences between Server and Client Components, optimizing data fetching, passing data effectively, and maximizing performance with new React hooks like useActionState, useFormStatus and useOptimistic.

Whether you're new to React or a seasoned pro, this workshop will equip you with the knowledge and tools to elevate your web development skills. Stay ahead of the curve and master the cutting-edge technology of React 19. Don't miss out - sign up now and unleash the full power of React!
Next.js 13: Data Fetching Strategies
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Data Fetching Strategies
Top Content
Workshop
Alice De Mauro
Alice De Mauro
- Introduction- Prerequisites for the workshop- Fetching strategies: fundamentals- Fetching strategies – hands-on: fetch API, cache (static VS dynamic), revalidate, suspense (parallel data fetching)- Test your build and serve it on Vercel- Future: Server components VS Client components- Workshop easter egg (unrelated to the topic, calling out accessibility)- Wrapping up
The Gateway to Backend: A Frontend Developer's Guide to Full-Stack Development
React Summit US 2023React Summit US 2023
160 min
The Gateway to Backend: A Frontend Developer's Guide to Full-Stack Development
Top Content
WorkshopFree
Amy Dutton
Amy Dutton
This workshop will guide you through the product development life cycle of creating a real-world web application. You will learn about React Server Components, building a design system within Storybook, and using frontend development to approach becoming a full-stack developer. The workshop will cover increasing confidence in your application with unit tests and implementing authentication and authorization. You'll have the opportunity to work through product features and examine a real-world RedwoodJS project, gaining valuable experience in real-world product development. RedwoodJS makes it simple to approach full-stack development, and this workshop will give you the skills you need to create your own real-world web applications.
Advanced Application Deployment Patterns with React Server Components (feat. a DIY RSC Framework)
React Summit US 2023React Summit US 2023
104 min
Advanced Application Deployment Patterns with React Server Components (feat. a DIY RSC Framework)
Top Content
Workshop
 Greg Brimble
Greg Brimble
The developer ecosystem is always moving fast and this year has proved no exception. React Server Components can offer a significant improvement to developer experience and to application performance. But I think it's fair to say that this new server-first paradigm can be tricky to wrap your head around!In the first half of this workshop, we'll explore React Server Components from the ground-up: building our own mini meta-framework to help us understand how RSCs work. We'll discover exactly what is produced by an RSC build and we'll connect those pieces together to form a full application.Next, we'll deploy it! Cloudflare have also had a busy year too — Smart Placement, in particular, is a new technology that we've developed which fits the RSC model perfectly. We'll explore why that makes sense for our workshop app, and we'll actually deploy it onto the Cloudflare Developer Platform.Finally, we'll build out our app a little further, using D1 (our serverless SQL database) to really show off the React Server Component's power when combined with Smart Placement.You should come away from this workshop with a greater understanding of how React Server Components work (both behind-the-scenes and also how you as a developer can use them day-to-day), as well as insight into some of the new deployment patterns that are now possible after recent innovations in the platform space.
Building Reusable Server Components in NextJS
React Summit US 2023React Summit US 2023
88 min
Building Reusable Server Components in NextJS
Workshop
Will Bishop
Mettin Parzinski
2 authors
React continues to evolve their beta capability, React Server Components, and they're continuing to further develop them in partnership with frameworks like NextJS.In this workshop, attendees will learn what React Server Components are, how to effectively build and use them in NextJS, and focus on one of the major advantages of React/NextJS: reusability through components.We will also cover related beta technologies enabled by the `app` directory, such as nested layouts and server actions (alpha/experimental capability).Join us for this hands-on, 120 minute workshop!Technologies:
React, JavaScript/Typescript, NextJS, Miro
React Server Components Unleashed: A Deep Dive into Next-Gen Web Development
React Day Berlin 2023React Day Berlin 2023
149 min
React Server Components Unleashed: A Deep Dive into Next-Gen Web Development
Workshop
Maurice de Beijer
Maurice de Beijer
Get ready to supercharge your web development skills with React Server Components! In this immersive, 3-hour workshop, we'll unlock the full potential of this revolutionary technology and explore how it's transforming the way developers build lightning-fast, efficient web applications.
Join us as we delve into the exciting world of React Server Components, which seamlessly blend server-side rendering with client-side interactivity for unparalleled performance and user experience. You'll gain hands-on experience through practical exercises, real-world examples, and expert guidance on how to harness the power of Server Components in your own projects.
Throughout the workshop, we'll cover essential topics, including:- Understanding the differences between Server and Client Components- Implementing Server Components to optimize data fetching and reduce JavaScript bundle size- Integrating Server and Client Components for a seamless user experience- Strategies for effectively passing data between components and managing state- Tips and best practices for maximizing the performance benefits of React Server Components