Menu
About me Kontakt

In the latest episode from the Fireship channel, the host dives into the controversies surrounding React, the beloved UI library for developers. The video explores the conflict between supporters of simple React tooling and those promoting a more complex infrastructure and hosting services like Next.js. On May 5th, 2025, Fireship breaks down both sides of the debate so viewers can stay informed about the latest React drama while waiting in line for soup. Initially, React gained popularity for allowing developers to focus on application state rather than the complexities of rendering. However, over time, React has evolved, introducing server components that fundamentally change how developers interact with the library and enhance user experiences.

Server components represent an innovative approach that allows React applications to take control not just on the client side but also on the server side. Fireship explains that server components enable sending only the final result of computations to the client, rather than entire JavaScript libraries. This makes applications significantly more efficient by delivering functionality to users much faster, altering the experience of working with React. While the core idea of composition in React remains, these new features can introduce additional technical challenges, frustrating some developers who may not fully understand the requirements.

In light of this new model, Fireship notes a shift in collaboration between the React team and Next.js. While Next.js provides the necessary infrastructure, there are concerns within developer circles that dependence on Vercel might be problematic. Users who are not in favor of this trend may feel pressured to move their applications server-side. To address this issue, Fireship points out alternatives like React Router version 7 and TanStackStart, which can be less complex and more independent.

Another interesting aspect highlighted is the sponsored course from React.gg, designed to offer an engaging and interactive experience with practical challenges for learners. This course caters to both beginners and those looking to catch up with the latest features in React 19. Fireship encourages viewers to take advantage of a 25% discount during the launch sale, making this course an even more attractive option. From the perspective of the programming community, such courses hold immense value as they teach not just theory but also practical applications of new React features, enhancing developers' skills.

At the time of writing this article, Fireship's video has accumulated 675,447 views and 23,059 likes. These statistics reflect a growing interest in the subject and the ongoing controversy surrounding React's new approach. It seems the discussion is far from over, and developers are still searching for solutions that simplify application development within the React ecosystem. Fireship thus provides not only knowledge but also tools to better understand the evolving landscape in the programming world.

Toggle timeline summary

  • 00:00 Introduction to the tension in the React developer community.
  • 00:06 Overview of two sides in the React debate.
  • 00:20 Set up of video content focusing on recent changes in React.
  • 00:30 Discussion about the evolution of React and its growing complexity.
  • 00:42 Explanation of how React simplifies managing UI state.
  • 00:49 Introduction of React server components and their benefits.
  • 01:44 Discussion on the benefits of component composition in React.
  • 02:12 Explanation of how server components work with prioritization.
  • 02:25 Introduction to the community's frustrations with server components.
  • 02:40 Details on the challenges of implementing server components.
  • 03:13 Exploration of React's partnership with Next.js for architecture.
  • 03:56 Discussion on the difficulties in separating React from Next.js.
  • 04:05 Mention of Vercel's influence on React's direction.
  • 04:18 Alternative options for developers wanting to avoid Vercel.
  • 04:53 Introduction of React.gg as a learning resource.
  • 05:30 Final thoughts on learning React and the discount offer from React.gg.

Transcription

Don't tell anyone, but while AI has been taking their jobs, React devs have been too busy fighting their own civil war to even notice. On one side of the battlefield, you have the rebels, fighting for their women, children and the simplicity of React tooling. On the other, you have Team Iceland from the Mighty Ducks, trying to sell you cloud infrastructure and hosting services. In today's video, we'll break down both sides of the debate, so you can be informed on all the latest React drama when you're standing in line at the soup kitchen. It is May 5th, 2025, and you're watching the Code Report. If you've been feeling happy or fulfilled over the last few years, you probably missed that React, everyone's favorite fun and flirty UI library hit puberty, started rage listening to Limp Bizkit, and seemingly changed its whole identity. When React first launched, despite some early hate, it quickly grew in popularity because it made the view a function of your application's state, and all you had to do was worry about how the state of your application changed and React would handle the rest. React today follows the same ethos, but that's only half of the picture now. What used to be a client-only library has metastasized across the network to take over the server. Take this code for example. This is a perfectly valid React server component. It doesn't need to follow the traditional rules of React, like not fetching data during render, because it doesn't have the same constraints as a typical React component. In a way, you can think of server components as fancy serializable HTML template generators. Their entire job is to compute the UI and ship it to the client. Conceptually, this is pretty simple, but it enables some pretty cool stuff. Take this one for example. If this were a traditional React component, the entire popup library would be included in the JavaScript bundle, that the user would need to download before sending anything on the screen. With server components, all that's shipped to the client is the end result of the computation, in this case just the final table and some instructions for React to follow during hydration. And more important than the bundle may be the compositional benefits. Again, React pioneered the idea of bringing composition to the front end by allowing you to create a UI by composing different components together, all of which could be isolated from one another and each manage their own state. If done correctly, composition can lead to a more flexible, more maintainable, and more scalable codebase. It's what allows you to build complex UIs out of simple building blocks, and it's what allows you to then reuse those building blocks in a variety of different contexts. Combined with suspense, which is a React component that allows you to display a fallback UI while React works on rendering its children, the server components allow you to prioritize showing the user something immediately, and then stream the rest of it as it becomes available. Composition across the network. This sounds awesome, so why is everyone so upset? Well mostly because they contain more magic than that night in Las Vegas when David Blaine hypnotized me and told me to make JavaScript tutorials. When a new React feature comes out, you can usually just npm install react-at-latest and you're good to go. With server components though, that's not the case. In reality, you need three things to make them work. One, a bundler that can process and differentiate between server components and client components. Second, a server that can take the bundle that the bundler generates and stream it into the client. And third, a client-side router that can request and process the stream from the server. Since the average JavaScript developer doesn't understand what a bundler is without asking chat GPT, they usually can't get past number one. So how did the React team solve this? By partnering with the Next.js team and making a multi-year long bet that this new server components architecture would become the primary way to use React, and therefore so would Next.js. However, that bet, according to many in the React ecosystem, has failed. And there are really two separate problems here, depending on which camp you fall into. If you're a developer, it's not so much that Next.js is bad, it's that it's an implementation of the React team's full stack architecture vision, and unless you're building a web app that benefits from that architecture, it might not be worth the complexity. And if you're a framework author in the React ecosystem, the partnership between React and It kind of feels like that winter your dad kept missing visitation days only to be seen with your step-brother on Instagram skiing in Tahoe. But really both problems stem from the same place. It's becoming increasingly difficult to separate React from Next.js, and even harder to separate Next from Vercel. If you don't like that Vercel's ultimate goal is to sell you Next.js hosting services, you probably also don't like that React's new goal is to have you move as much of your app to the server as possible, regardless of how unrelated those two things may or may not be. If you're building a React app today and want to avoid the Vercel money machine, what are your options? Well, first you've got React Router version 7, formerly known as Remix. With a focus on web standards, React Router is the most popular routing library for React, and it can be paired with Vite to create a full stack React framework, if that's your thing. Next, you've got TanStackStart. Powered by TypeScript and the man who single-handedly put the whole React ecosystem on his back for the last five years, TanStackStart comes with full document SSR, streaming, server functions, bundling, and much, much more. It's still in beta, but that never stopped me from shipping to prod. And finally, if your app has constraints not well served by existing frameworks, at least according to the React team, you might just want to build your own. And the best way to learn how to do that is with the sponsor and provider of the visuals for today's video, React.gg. I've seen a lot of programming courses in my time, and React.gg may be the best. It's so good because the entire thing has been developed to be as interactive as possible. For every topic, you get a video, some text, and visuals that represent core React topics, in addition to a bunch of practical challenges that you can work through, like leet code for React. And just to make the course as real-world as possible, the sickos even built and published a hooks library called use-hooks that now gets over 300,000 downloads per week, and you'll recreate it throughout the course. Whether you're new to React or just need to learn all the latest React 19 features like server components, actions, and transitions, I don't think there's a better way to do it than React.gg. And for the next week, you can get 25% off during their launch sale. This has been The Code Report, thanks for watching, and I will see you in the next one.