React Conf 2025 Takeaways: Learn once. Write once.

On October 7th and 8th, 2025, the React team hosted React Conf 2025, a two-day event filled with exciting announcements and updates about the React ecosystem. I had the opportunity to attend the conference, and I’m here to share some key takeaways and highlights from the event.

Day 1

The first day of the conference focused on the core React library and its new features. With great announcements like the React Foundation and the React Compiler reaching version 1.0, it was an exciting day for React developers. Here are some of the main highlights:

React Foundation Announcement

This is a significant step towards ensuring the long-term sustainability and growth of the React ecosystem. It’s been 10 years since Facebook open-sourced React, and during this time, it has become the most popular JavaScript library for building user interfaces.

Many contributors outside of Meta have played a crucial role in its development, and the formation of the React Foundation aims to provide a more structured and community-driven approach to its governance.

Even though we didn’t get many details about the foundation during the conference, I’m excited to see how it will shape the future of React and React Native and foster collaboration among developers and organizations.

React Compiler 1.0

The React Compiler reached version 1.0 and is now stable for production use. Thanks to early adopters and contributors, it has been improved significantly (and has been rewritten) since its initial release.

The React Compiler offers several benefits, including:

  • automatic memoization of components and hooks;
  • it’s compatible with existing React 17, 18, and 19 codebases;
  • no need to change your code to benefit from it.

With the linter, the Compiler will teach you best practices and help you write better React code.

The official recommendation is that all new React apps use the Compiler and existing apps use the linter. As you get comfortable, you can incrementally migrate to the Compiler.

The Meta Quest Store’s numbers show up to 2.5x faster interactions and 12% faster initial load + navigations with a neutral impact on memory usage.

What’s New in React

A few days before the conference, React 19.2 was released, bringing several new features and improvements to the library. Some of the highlights include:

The React Compiler is now stable and ready for production use. It offers several benefits, including faster builds, smaller bundle sizes, and improved performance. The Compiler is designed to optimize React code during build, resulting in more efficient and performant applications.

<Activity />

This new component allows you to easily break down your UI into smaller, more manageable pieces and define different "activities" within your application.

// Before
{isVisible && <Page />}

// After
<Activity mode={isVisible ? 'visible': 'hidden'}>
  <Page />
</Activity>

Activity supports visible and hidden modes. When set to hidden, effects are unmounted, and updates are deferred until React has nothing left to work on.

This means you can prerender and keep rendering hidden parts of the app without impacting the performance of anything visible on screen.

useEffectEvent

function ChatRoom({ roomId, theme }) {
  useEffect(() => {
    const connection = createConnection(serverUrl, roomId);
    connection.on('connected', () => {
      showNotification('Connected!', theme);
    });
    connection.connect();
    return () => {
      connection.disconnect()
    };
  }, [roomId, theme]);
  // ...

The code above has a problem: if the theme changes, the effect will re-run, and the user will see a "Connected!" notification again. This is not the intended behavior.

The useEffectEvent hook solves this problem by allowing you to split the event handler from the effect itself. This way, you can declare only the necessary dependencies for the effect, while the event handler can access the latest values of props and states.

function ChatRoom({ roomId, theme }) {
  const onConnected = useEffectEvent(() => {
    showNotification('Connected!', theme);
  });

  useEffect(() => {
    const connection = createConnection(serverUrl, roomId);
    connection.on('connected', () => {
      onConnected();
    });
    connection.connect();
    return () => connection.disconnect();
  }, [roomId]); // ✅ All dependencies declared (Effect Events aren't dependencies)
  // ...

Performance Tracks

With the power of extensibility APIs, the React team
brings React-specific insights directly into the Chrome DevTools Performance panel. Two tracks are available: Scheduler
and Components.

Scheduler

The Scheduler track shows what React is working on for different priorities, such as "blocking" for user interactions, or "transition" for updates inside startTransition. Inside each track, you will see the type of work being performed, such as the event that scheduled an update, and when the render for that update happened.

Components

The Components track shows the tree of components that React is working on either to render or run effects. Inside, you’ll see labels such as "Mount" for when children mount or effects are mounted, or "Blocked" for when rendering is blocked due to yielding to work outside React.

Only the Scheduler track is available by default. For Components, you need either the React Developer Tools Extension or wrap your app with the <Profiler /> component.

React and AI

On this AI topic, James Swinton’s talk Building an MCP Server for a React component was particularly interesting. They walked through the process of creating an MCP server for dealing with the 360k pieces of documentation they have for their products.

LLMs seemed a good fit for this task, but they had to overcome some challenges, such as the model’s tendency to the average and version awareness. They solved these issues by using embeddings and PostgreSQL to store and query the documentation effectively.


Day 2

The second day of the conference was dedicated to exploring React Native and its new features. Here are some of the key
takeaways:

What’s New in React Native

DOM Node APIs

This release brings several DOM Node APIs to React Native, accessed through refs, making it easier to build cross-platform applications. The effort on Learn once, write once is clear.

function MyComponent(props) {
  const ref = useRef();

  useEffect(() => {
    const element = ref.current;

    // New methods
    element.parentNode;
    element.parentElement;
    element.childNodes;
    element.children;
    const bounds = element.getBoundingClientRect();
    const doc = element.ownerDocument;
    const maybeElement = doc.getElementById('some-view');

    // Legacy methods are still available
    element.measure((x, y, width, height, pageX, pageY) => {
      /* ... */
    });
  }, []);

  return <View ref={ref} />;
}

React Strict DOM

React Strict DOM (RSD) defines a subset of React DOM and Web APIs that can render components on both web and native platforms, with the look and feel of the host platform. This reduces the friction of learning and using React Native, reducing development costs and time to market.

RSD has a built-in way to create and use styles, variables, and themes. This is good. I firmly believe the framework should make some decisions to avoid fragmentation.

Hermes v1

Hermes is a JavaScript engine optimized for React Native, and React Native 0.82 brings Hermes v1 as an option. Some internal experiments showed up to 9% less bundle loading time and up to 7% less time to Interactive (TTI).

This version of Hermes supports modern JavaScript features such as ES6 classes, public and private fields, and async
functions.

What else?

  • Expo Go is available on Horizon Store. You can start building VR apps using React Native and Expo.
  • enables you to benefit from main thread rendering while mitigating the disadvantages of dropped frames by rendering earlier before it is needed.

Conclusion

React Conf 2025 was an exciting event showcasing the latest React ecosystem advancements. With the introduction of the React Foundation, the stabilization of the React Compiler, and new features in both React and React Native, developers have plenty to look forward to.

I look forward to exploring these new features and seeing how they can enhance my projects. If you missed the conference, check out the recorded sessions and blog posts to stay up-to-date with the latest in React development.

That’s all, see you next time!

We want to work with you. Check out our Services page!

Edy Silva

I own a computer

View all posts by Edy Silva →