⚡ Lightning-fast CLI to create production-ready React Native apps with modern best practices
Create a new React Native app with one command:
bunx fast-expo-app@latestOr with npm:
npx fast-expo-app@latestThat's it! The CLI will guide you through the setup process and let you choose which features to include.
- ⚡ Expo SDK 54 - Latest Expo with New Architecture enabled
- ⚛️ React Native 0.81 - Modern React Native with Fabric renderer
- 🔥 TypeScript 5.9 - Strict type-safety out of the box
- 📁 Expo Router v6 - File-based routing with typed routes
- 💾 MMKV v4 - Ultra-fast storage with Nitro Modules (~30x faster than AsyncStorage)
- 📱 react-native-edge-to-edge - Modern edge-to-edge display
NativeWind v4 🌊
- Tailwind CSS for React Native
- Utility-first CSS framework
- Dark mode with persistent storage
- Color utilities centralized
Unistyles v3 💎
- Type-safe styling solution
- 3-theme system (light/dark/premium)
- Runtime theme switching
- Breakpoints support
- Better performance
Pick what you need during setup:
- 🌐 TanStack Query v5 - Powerful data fetching with MMKV persistence
- 🔄 Zustand - Lightweight state management with MMKV storage
- 🛠️ expo-dev-client - Enhanced debugging with native logs
- 🧪 Jest - Unit testing framework
- 🌓 Theme System - Light/Dark/Premium modes with MMKV persistence
- 🎯 Absolute Imports - Clean imports with
@/prefix - 📏 Code Quality - ESLint + Prettier pre-configured
- 🔐 New Architecture - Fabric renderer enabled
- 📱 SafeArea - Proper insets handling
- 🎭 Animations - React Native Reanimated ready
- ⌨️ Keyboard - Smart keyboard handling
This monorepo contains:
fast-expo-app/
├── cli/ # CLI source code and templates
│ ├── src/ # CLI TypeScript source
│ ├── templates/ # Project templates
│ │ └── base/ # Base Expo + NativeWind template
│ └── modules/ # Optional modules (coming soon)
├── packages/
│ └── fast-expo-app/ # Published npm package
├── www/ # Landing page (Next.js)
├── docs/ # Documentation
├── get_started.sh # Install all dependencies
└── clean.sh # Clean all build artifacts
The CLI source code, templates, and modules:
- src/ - TypeScript source code for the CLI
- templates/base/ - The React Native template that gets copied
- modules/ - Optional features users can include (future)
The npm package fast-expo-app - the CLI tool that scaffolds new projects. This is what gets published to npm.
The landing page built with Next.js, showcasing the CLI and providing documentation.
- Quick Start Guide - Get started quickly
- CLI Package - CLI documentation
- CLI Source - CLI development guide
- Contributing Guide - How to contribute
- AGENTS.md - Complete project documentation for AI assistants
- Node.js 22+ (LTS recommended)
- Bun (highly recommended) or npm
- Java 17+
- Xcode (for iOS development)
- Android Studio (for Android development)
# Clone the repository
git clone https://github.com/Teczer/expo-react-native-nativewind-typescript-boilerplate.git
cd expo-react-native-nativewind-typescript-boilerplate
# Install all dependencies (root, cli, www, template)
bun run get_started
# or
./get_started.sh# 🚀 Get Started
bun run get_started # Install dependencies in all packages
# 🧹 Clean
bun run clean # Remove all node_modules and build artifacts
bun run clean:cli # Clean CLI package only
bun run clean:www # Clean website only
bun run clean:template # Clean template only
# 🔨 Build
bun run build # Build all packages
bun run build:cli # Build CLI only
bun run build:www # Build website only
# 💻 Development
bun run dev # Run all in dev mode
bun run dev:cli # Watch CLI changes
bun run dev:www # Run website in dev mode
# 📱 Template Testing
bun run template:start # Start Expo in template
bun run template:ios # Run template on iOS
bun run template:android # Run template on Android
# ✨ Code Quality
bun run format # Format all files with Prettier
bun run format:check # Check formatting
bun run lint # Run linters# Test the base template
cd cli/templates/base
bun install
bun start# 1. Build the CLI from source
bun run build:cli
# 2. Test the CLI locally (choose one method):
# Method 1: Use the test script (easiest - recommended)
# From monorepo root:
bun run test:cli
# The CLI will prompt you for project name and options
# Navigate to the directory where you want to create the project first if neededNote: Method 1 (bun run test:cli) is the simplest - just build and run!
# Run website in development
bun run dev:www
# Build website
bun run build:wwwWe welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- 80+ GitHub Stars ⭐
- 26+ Forks 🍴
- v3.0.0 - Major release with Unistyles v3 & enhanced features
- Active Development 🚀
- ✨ Unistyles v3 support with 3-theme system (light/dark/premium)
- 🎨 Choose your styling - NativeWind v4 OR Unistyles v3
- 💾 MMKV mandatory - Now included by default for better performance
- 🎯 Theme persistence - Automatic theme saving with MMKV
- 🔧 Better architecture - Cleaner file structure (
lib/,providers/,utils/) - 🎭 Enhanced components -
ThemeTogglewith haptic feedback - 📦 Modular system - Conditional file generation based on choices
- 🚀 Performance - Optimized with Nitro Modules and Worklets
This project is licensed under the MIT License - see the LICENSE file for details.
- Website: fast-expo-app
- npm Package: npmjs.com/package/fast-expo-app
- GitHub: github.com/Teczer/fast-expo-app
Made with ♥ by Teczer
If you find this project helpful, please consider giving it a ⭐