// the find
necolas/react-native-web
Cross-platform React UI packages
React Native for Web lets you run React Native components in a browser by mapping RN primitives to DOM elements and CSS. It's the foundation of Twitter/X's web app and Expo Web. If you're building a product that needs to run on both native mobile and the web without forking your component tree, this is the serious option.
The styling engine is genuinely clever — it generates atomic CSS classes at runtime via styleq, which means you get near-zero specificity conflicts and the stylesheet grows slowly as you add components, not linearly with component count. Accessibility is first-class: View maps to appropriate ARIA roles, Pressable handles focus rings correctly, and they've put real work into pointer/touch event normalization across devices. The benchmark package is included in the repo itself, so you can see exactly how it compares against plain CSS modules and inline styles — that's a level of honesty you don't see often. SSR works without hacks because the atomic CSS approach doesn't depend on insertion order.
The last meaningful commit was mid-2025 and Meta's investment is clearly winding down — React Native's new architecture (Fabric, JSI) isn't something this library tracks, and the gap between what RN supports and what RNW supports has been widening for years. Flow types throughout the codebase means TypeScript users get declaration files but not source-level type safety; the TypeScript support docs acknowledge it's incomplete. FlatList and SectionList on web will disappoint anyone expecting virtualization to work like it does on native — scroll performance in large lists is noticeably worse because the DOM windowing approach has inherent overhead. If you're starting a new cross-platform project today, Expo Web with its React Native New Architecture support is the more forward-looking path; RNW is increasingly a maintenance-mode library.