Skip to content

Conclusion

What a great time to be a React developer!

This year started with a React Labs update and a tweet from Andrew Clark promising we’d never need to use forwardRef again — the most disliked React feature. Fast forward, and this promise has been largely fulfilled, with React 19 introducing exciting new features to play with along the way.

It was a close call, though: the new version was set to launch in June, when the Suspense drama unfolded, delaying the release until December. An optimization to render Suspense fallbacks sooner inadvertently introduced a Suspense siblings waterfall issue in many client-side apps. Fortunately, the React team went the extra mile to preserve the optimization while preventing waterfalls by introducing a new Suspense siblings pre-warming feature.

Aside from the long wait, the adoption of this version has been relatively smooth from my perspective. The 18.3 release introduced extra warnings to help prepare our apps ahead of time, and the React team did an outstanding job minimizing breaking changes and documenting them thoroughly in the upgrade guide. Of course, we're still wrapping our heads around all the new features and APIs, but client-side React, as we know and love it, is now better than ever.

The introduction of React Server Components and Server Actions brings us new, powerful primitives tightly integrated into frameworks. Next.js, the leading implementation, demonstrates their benefits but also highlights new challenges in routing and caching, which have led to pushback in the community. Personally, I think it’s perfectly fine to continue using React on the client side and eventually adopt server-side features if they make sense for your project, once best practices become clearer.

But this year wasn’t just about React 19 — it was also the year React Native’s New Architecture became ready for production, marking a significant leap forward for the cross-platform ecosystem. We also got the React Compiler in beta. Initially presented as an auto-memoizing compiler, it’s actually a fully fledged optimization platform for React, set to become much more powerful in the future.

These new foundations lay the groundwork for a bright future in 2025. We’ve only begun to tap into their potential, with many impactful features and integrations ahead. Similar to the introduction of hooks, we could be on the brink of a React renaissance.