Awesome Universal React
A collection of awesome universal React and React Native frameworks, libraries, design systems, apps and resources.
What is Universal React?
Universal React apps are cross-platform React and React Native apps using "React Native for Web" to use the same API for UI components. They run on iOS, Android and Web. They share the same navigation, styles, state management and business logic -- but they run natively on each platform and respect the platform conventions and best practices.
Frameworks
- Expo - An open-source platform for making universal native apps with React. Expo runs on Android, iOS, and the web.
- Next.js - The React Framework
- React Native for Web - Cross-platform React UI packages
- Solito - React Native + Next.js, unified
Libraries
UI Components
- Expo Image - A cross-platform, performant image component for React Native and Expo
- Zeego - Menus for React (Native) done right
- Burnt - Crunchy toasts for React Native
- React Native Bottom Sheet - A performant interactive bottom sheet with fully configurable options
- Infinite Scroll List - FlashList on native, React Virtual on web
- Tab View - A React Native TabView component that support collapse header and custom refresh control, powered by Reanimated & Gesture Handler
- Universal Tooltip - Cross-platform Tooltip component for React Native, powered by Expo Modules
Renderers
- React Native Skia - High-performance React Native Graphics using Skia
- React Three Fiber - A React renderer for Three.js
Others
- React Native Reanimated - React Native's Animated library reimplemented
- Moti - The React Native (+ Web) animation library, powered by Reanimated 3
- React Native Gesture Handler - Declarative API exposing platform native touch and gesture system to React Native
- React Native MMKV - The fastest key/value storage for React Native. ~30x faster than AsyncStorage
Design Systems
- Tamagui - Style React Native and Web with an optimizing compiler
- NativeWind - React Native utility-first universal design system, powered by Tailwind CSS
- Gluestack UI - Universal headless components for React Native, Next.js & React with beautiful & optional styling
- Universal UI - Universal UI components using Tailwind
Apps
- Bluesky - Open-source
- Showtime - Open-source
- Beatgig - Closed-source
- Diversified - Closed-source
Resources
Talks
- Is React Native + Next.js production-ready? - Fernando Rojo
- Building Cross-Platform Apps with React Native + Next.js - Fernando Rojo
- Zero to $10 Million with React Native + Next.js - Fernando Rojo
- How to Build a Universal Design System or How to Build a Universal Design System - Axel Delafosse
- Twitter Lite, React Native, and Progressive Web Apps - Nicolas Gallagher
- Building a βUniversalβ CSS-in-JS library - Sanket Sahu
- 'Move fast and build things', with Zod, Expo & Next.js - Thorr Stevens
Guides
- Use Next.js with Expo for Web - Get started with Expo and Next.js
- Tamagui Next.js Guide - Get started with Tamagui and Next.js
- How to choose cross-platform tech - When Expo + Next.js makes sense over other strategies
Learning more about React Native as a Web Developer
- Native for React Developers - a webinar by Lydia Hallie and Evan Bacon - Learn about the different APIs between React DOM and React Native
- Layout with Flexbox - Learn about how Flexbox is used in React Native
Starter Kits
- Solito + NativeWind Example Monorepo - Get started with Expo and Next.js + Solito and NativeWind
- Universal Medusa - Multi platform e-commerce development using React Native + Next.js + Medusa.js
- T4 Stack - Interactive CLI to start a full-stack, typesafe, universal Expo & Next.js app on Cloudflare's edge platform
- Tamagui Takeout - Takeout is a template repo with a GitHub bot that lets us send PRs easily thanks to a pluggable, well-isolated architecture
- Aetherspace - Expo + Next.js template repo + Zod for Single Sources of Truth, automated Storybook Docs and write-once data resolvers for REST & GraphQL
Contributing
- Default to GitHub links when possible
- Sort by popularity and relevance
- No emojis