A powerful CLI tool to create React Native projects with multiple architecture options. Quickly scaffold production-ready apps with Redux or Zustand, TypeScript, multi-environment support, and NativeWind styling.
create-rn-project is a command-line tool that helps you quickly set up a new React Native project with a production-ready structure and configuration. It supports multiple architecture options:
- Redux + Redux Saga - Based on new-react-native template
- Zustand + React Query - Based on new-react-native-zustand-react-query template
Each architecture includes:
- TypeScript for type safety
- NativeWind for styling with Tailwind CSS
- Multi-environment support (Development, Staging, Production)
- Pre-configured folder structure
- Gluestack UI components
- And much more!
# Install globally from the official repository
npm install -g https://github.com/linhnguyen-gt/create-rn-project.gitMake sure you have the following installed:
- Node.js (v20+ or newer)
- npm or yarn
- Git
- React Native development environment set up (for running the generated project)
# Basic usage with interactive architecture selection
create-rn-project MyApp
# You'll see a menu like:
# ? Choose an architecture: (Use arrow keys)
# β― Redux + Redux Saga - State management with Redux and Redux Saga
# Zustand + React Query - State management with Zustand and data fetching with React QueryYou can also specify the architecture directly using the -a or --arch flag:
# Directly specify Zustand + React Query architecture
create-rn-project MyApp -a zustand
# Directly specify Redux + Redux Saga architecture
create-rn-project MyApp -a reduxAdditional options:
# With specific React Native version branch
create-rn-project MyApp@rn-0.79.xx
# With custom bundle ID
create-rn-project MyApp -b com.example.myapp
# With all options
create-rn-project MyApp@rn-0.79.xx -b com.example.myapp --repo https://github.com/yourusername/your-repo.git --skip-install --use-npmβ Note: To set a custom bundle identifier, you must use the -b or --bundle-id flag. For example:
- β
Correct:
create-rn-project MyApp -b com.example.myapp - β Incorrect:
create-rn-project MyApp com.example.myapp
main- Latest stable version (default)rn-0.78.xx- React Native 0.78.xrn-0.79.xx- React Native 0.79.x
Examples:
# Use React Native 0.78.x
create-rn-project MyApp@rn-0.78.xx
# Use React Native 0.79.x
create-rn-project MyApp@rn-0.79.xx
# Use latest stable version
create-rn-project MyApp-a, --arch <architecture>: Choose architecture (redux, zustand)-b, --bundle-id <id>: Set custom bundle identifier (default: "com.example.app")-r, --repo <url>: Specify GitHub repository URL--skip-install: Skip installing dependencies--use-npm: Use npm instead of yarn for installing dependencies--skip-env-setup: Skip environment setup--skip-git: Skip git initialization--help: Show help information
Once your project is created, you can:
# Navigate to your project
cd MyApp
# Start the development server
yarn start
# Run on iOS
yarn ios
# Run on Android
yarn android
# Run on specific environments
yarn ios:stg # Staging environment for iOS
yarn android:pro # Production environment for AndroidThe generated project comes with:
- ποΈ TypeScript Integration: Full TypeScript support for type safety
- π State Management: Choose between Redux Toolkit with Redux Saga or Zustand
- π Data Fetching: React Query available in Zustand architecture
- π¨ Styling: NativeWind (Tailwind CSS for React Native)
- π Multi-Environment: Development, Staging, and Production environments
- π± Cross-Platform: iOS and Android support with environment-specific configurations
- π οΈ Developer Tools: Reactotron integration for debugging
- π¦ Organized Structure: Pre-configured folder structure following best practices
- π Code Quality: ESLint and Prettier pre-configured
The generated project supports multiple environments:
- Development: Default environment for development
- Staging: For testing before production
- Production: For production releases
Each environment has its own configuration files and build scripts.
This project is licensed under the MIT License - see the LICENSE file for details.
Linh Nguyen - GitHub
Made with β€οΈ by Linh Nguyen