Skip to content

CLI tool to initialize a React Native application with Expo. Provides options to include Typescript, file-based routing via Expo Router, configuration based routing via pure React Navigation, styling via Nativewind, StyleSheets, or Tamagui, and/or backends as a service such as Firebase and Supabase.

License

Notifications You must be signed in to change notification settings

indiyon/create-expo-stack

 
 

Repository files navigation

Create Expo Stack CLI

Discord NPM version Downloads

An interactive CLI to create a highly configurable, typesafe Expo app.

Get started by running npx create-expo-stack@latest

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website.

Description

This CLI tool is designed to help you get started with React Native and Expo as quickly as possible. The CLI options allow you to configure your project with Typescript, file-based routing with Expo Router, configuration-based navigation via React-Navigation, styling with StyleSheets, Tamagui, or NativeWind, and authentication via Supabase or Firebase.

You can also use flags such as --noInstall, --noGit, and --default in order to customize your project. The CLI will attempt to automatically determine your package manager of choice but you can also pass in your preferred package manager via --npm, --yarn, --pnpm, or --bun. Roadmap coming soon...

Usage

To get started, use npx to run the CLI tool. You will be prompted to opt into the features you want to use.

npx create-expo-stack@latest

Tech Stack for the templates

Currently, all of the templates use the same versions of the following libraries. Not all of the templates include all of the libraries, but they are all available for use.

Each project is generated based on the results of the CLI, on a per-file basis. This approach makes this CLI extremely extendable and easy to use. Common files to all generated projects are stored in the base template folder while files pertaining to additional packages are stored in the packages template folder. Beyond adding files, this project makes use of EJS in order to manipulate existing files as necessary.

Library Category Version Description
React Native Mobile Framework v0.72 The best cross-platform mobile framework
React UI Framework v18 The most popular UI framework in the world
TypeScript Language v4 Static typechecking
React Navigation Navigation v6 Performant and consistent navigation framework
Expo SDK v49 Allows (optional) Expo modules
Expo Font Custom Fonts v11 Import custom fonts
Expo Linking URL Handling v5 Open your app via a URL
Expo Router Navigation v2 File-based routing in React-Native
Expo Splash Screen Splash Screen v0.18 Custom splash screen
Expo Status Bar Status Bar Library v1 Status bar support
Expo System UI System UI Library v2 System UI support
Expo Web Browser Web Browser Library v12 Open links in the browser
NativeWind UI Framework v2 Tailwind CSS for React Native
Tamagui UI Framework v1 Universal UI with a smart optimizing compiler
Safe Area Context Safe Area Library v4 Safe area support
React Native Web Web Support v0.19 React Native for Web
Firebase Backend and Auth v10 Cloud-hosted NoSQL database from Google
Supabase Backend and Auth v2 Open source Firebase alternative

Reporting Bugs & Feedback

If you run into problems or have feedback, first search the issues and discussions in this repository. If you don't find anything, feel free to message me on Twitter or open a new issue.

Contributing

Contributions are welcome! Please open a pull request or an issue if you would like to contribute. There are existing feature requests labeled as [FR] in the issues section of this repo.

Want to move faster? I can help 😎

Getting up-to-speed on a new framework can be cumbersome. If you find that you need to move more quickly, I may be available to help.

If you'd like help with your React Native/Expo app or are just looking for a technical advisor to guide you along your journey, let's chat.

Contributors ✨

Thanks go to these wonderful people:

Dan Stepanov
Dan Stepanov
Ernesto Resende
Ernesto Resende
Hosna Qasmei
Hosna Qasmei
Frank Calise
Frank Calise
Sam Moore
Sam Moore
Catalin Miron
Catalin Miron
catalinmiron
PickleNik
Chris Bautista
Chris Bautista
Andrew Levy
Andrew Levy
Ali Zamani
Ali Zamani
Simon Grimm
Simon Grimm
Mat Warger
Mat Warger
kratos-respawned
Gaurav Bhandari
b0iq
b0iq
Aodhan Hamilton
Aodhan Hamilton

About

CLI tool to initialize a React Native application with Expo. Provides options to include Typescript, file-based routing via Expo Router, configuration based routing via pure React Navigation, styling via Nativewind, StyleSheets, or Tamagui, and/or backends as a service such as Firebase and Supabase.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 47.4%
  • EJS 34.0%
  • Astro 14.6%
  • CSS 2.6%
  • JavaScript 1.4%