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 Strict DOM: Writing Once for Web & Native
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.
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.
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.
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.
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
- works atNicolas Gallagher works at
Meta
“the speaker from the Meta React team, Nicolas Gallagher”
YouTube Unverified1 source· Talk
- built
“I first got familiar with your name and avatar through React Native for Web”
YouTube Unverified1 source· Talk
- uses
“you ended up using it at Twitter”
YouTube Unverified1 source· Talk
- uses
Meta uses React Strict DOM
“it has continued to be used and adopted at Meta”
YouTube Unverified1 source· Talk
- uses
“The more design system components we build this way, or migrate over with automated tooling”
YouTube Unverified1 source· Talk
- featureReact Strict DOM: Babel plugin translates its syntax back to standard HTML elements such as div
“we have a Babel plugin that flattens that away, and we go straight back to div”
YouTube Unverified1 source· Talk
- featureReact Strict DOM: Allows design system components to be shared across Meta products through styling interop
“A component written for a design system at Facebook can be used in Instagram, or vice versa”
YouTube Unverified1 source· Talk
- featureReact Strict DOM: Compiler turns styling into static CSS on the web
“processed by a compiler and turned into static CSS”
YouTube Unverified1 source· Talk
- uses
Zalando uses React Strict DOM
early adopter“We saw Zalando on stage as an example of an early adopter”
YouTube Unverified1 source· Talk






