WhoBuilt

React Strict DOM: Writing Once for Web & Native

Nov 27, 2025· 9 min· 707 views·Watch on YouTube

Speaker

Meta React team engineer Nicolas Gallagher discusses React Strict DOM’s path from web standards to native apps with a Callstack host at React Conf in Henderson, Nevada.

Why React Native for Web began

At Twitter, Gallagher saw component styles change unpredictably when surrounding containers affected their contents. React Native’s styling and composition offered a way to make components more controlled, so he began exploring that approach for the web. The early goal was web development, though the team also tried bringing web app features to native.

React Native advances make web APIs more viable

Gallagher says React Strict DOM has continued to gain features and use within Meta, though he does not call it stable. React Native’s New Architecture, synchronous APIs, DOM APIs, Intersection Observer, and newer CSS capabilities make it more practical to reproduce web experiences on native.

A web syntax that compiles away

Gallagher describes Meta’s adoption as early and says he cannot discuss products that have not been made public. React Strict DOM syntax is transformed by a Babel plugin into ordinary web elements such as `div`, while its styling is compiled into static CSS. This lets teams use the syntax on the web and keep the option of running the code on native.

Sharing design system components across platforms

Gallagher says the styling approach provides encapsulation and portability, including reuse of design system components between Facebook and Instagram. He envisions developers using React Strict DOM instead of React DOM plus a styling library, with native support available as an option. Component libraries could share most of their code and use platform-specific implementations for features such as virtualized lists.

Web skills can expand into native development

Gallagher names Zalando as an early adopter but does not identify other companies experimenting with the project. He points to momentum in React Native toward closer alignment with the web, including interest from Expo and Callstack. Familiar web APIs could help developers build native apps while tooling handles much of the complexity of shipping them.

Takeaways

  • Start with encapsulated components to reduce styling surprises as applications grow.
  • A compiler can translate shared component syntax into standard web elements and CSS.
  • Shared design system components can make later native support more accessible.
  • Keep platform-specific implementations for features that need them, such as virtualized lists.
  • Web API familiarity can help developers move into native app work.

Mentioned in this talk

Search inside this talk

What was claimed 9

Related talks