The State of React in 2024
Drawing insights from my "State of React 2024" video, I'll explore the current state of React and its implications.
React's Releasing Differently Now
Do you recall the days when React updates were introduced through conferences or blog posts?
When new features like React Hooks were released so that every React developer could use them in their projects?
It appears those days are behind us, at least for now. The last stable React release (React 18.2) was almost two years ago.
Though, strangely enough, this does not mean that React has been stagnant. Quite the opposite is the case: React's development has been vibrant, albeit with a different focus.
There hasn't been a new stable version in two years because React's now publishing frequent "canary" and "experimental" versions of the library - versions that are primarily meant to be used by frameworks like NextJS or Remix.
But I'll get back to that point. Let's first take a look at what changed in 2023 - and what we can expect for 2024.
Embracing Full-Stack Development
One of the most notable shifts in the React ecosystem is its move towards full-stack applications.
I already hinted at that in my "State of React 2023" video. And indeed, that is what's been happening over 2023.
With Next.js version 14, we witnessed the addition of stable support for "Server Actions" (explained in great depth in my course: "NextJS 14 - The Complete Guide"), paving the way for complete full-stack React applications without the need for separate APIs.
This is a significant step towards using React in full-stack development, rather than solely for client-side applications.
Frameworks like Next.js and Remix have embraced (and accelerated) this trend, but it's not without its complexities.
Features like React Server Components, stable in Next.js, are challenging to implement outside of such frameworks. This shift indicates React's increasing dependency on frameworks for its full capabilities.
Gone seem the days where you could use "just React" and leverage all its features with ease.
React's Changing Role and Recommendations
Interestingly, React seems to be evolving from a standalone library to a framework dependency. The new React documentation, launched last year, suggests starting with a framework like Next.js rather than creating a standalone React project with Vite or the traditional Create React App.
This shift in recommendation is a significant departure from the past and reflects React's changing role in the development ecosystem.
Personally, I'm not convinced by that recommendation, though.
There are thousands of standalone React apps out their, and hundreds of jobs where React developers must work on such kinds of apps.
Therefore, I strongly recommend learning "just React" first before diving into a framework like NextJS or Remix.
That's why I also got separate (in-depth!) courses for all three topics:
The Impact of Release Strategies and Team Dynamics
But, as explained, React's development team, now to significant parts employed at Vercel (the company behind Next.js), seems to be steering React to function more as a framework dependency.
This is further evidenced by their new release strategy, focusing on "canary" and "experimental" releases.
These versions, containing a mix of stable and unstable features, are intended primarily for use by frameworks built on React.
This approach is explained in detail in an official blog post - it allows the React team to release new stable features faster without being constrained by the need for every feature to be stable in the stable branch.
React's Future: The Full Stack and Beyond
React's journey seems to be slightly divergent, with a focus on being a part of full stack solutions rather than a standalone library.
However, there's still a considerable need for pure React skills in the industry, especially in projects that don't require full-stack capabilities like Next.js.
The current state may feel odd for long-time React enthusiasts, but it might just be the new normal we need to adapt to.
React in 2024 is at a crossroads, balancing its identity as a standalone library and its evolving role in full-stack development frameworks.
While this may be a bit unsettling for some, it's also an exciting time - after all, being able to build fullstack web apps with React (and NextJS or Remix) is a huge step forward!