Open Source · Expo SDK 52

Init Expo App

The fastest way to bootstrap production-ready Expo React Native apps.

Stop wasting hours on setup. Start building features in minutes.

✔ Initializing project...
✔ Expo Router & NativeWind v4
✔ Configuring TypeScript & ESLint
✔ Installing deps with pnpm
✔ Setting up Zustand stores
✔ Creating auth screens
✔ Configuring Axios API layer
ℹ Structure created:app/ hooks/ stores/
9:41

npx init-expo-app

My New App

Ready in 30 seconds!

Your production-ready app is configured

Tech Stack Included

NativeWind

Tailwind CSS

Expo Router

File-based

Zustand

State mgmt

Axios

API client

Auth Screens Ready

Login

Email & password auth

Sign Up

Registration flow

Home

Dashboard screen

Home
Files
Settings

200+ downloads

in first week

Open Source

MIT License

Expo SDK 52

Latest stable

Built for

indie devs & teams

Stop reinventing the wheel

Every new Expo project shouldn't require the same repetitive setup.

Without Init Expo App

  • 2–4 hours wasted on boilerplate setup
  • Repeating auth screens for every project
  • Manual NativeWind configuration
  • Inconsistent folder structure
  • State management setup from scratch

With Init Expo App

  • 30 seconds to start building
  • Pre-configured auth-ready screens
  • NativeWind v4 out of the box
  • Clean, scalable architecture
  • Zustand already integrated

Production-ready from day one

Everything you need to build and ship a React Native app, already configured.

NativeWind v4

Tailwind CSS for React Native, pre-configured and ready to use.


                                <View className="flex-1 bg-white">
  <Text className="text-lg font-bold">
    Hello World
  </Text>
</View>
                            

Expo Router

File-based routing with typed routes and deep linking support.


                                app/
├── (tabs)/
│   ├── index.tsx
│   └── profile.tsx
├── auth/
│   └── login.tsx
└── _layout.tsx
                            

Zustand

Lightweight state management with persistence built-in.


                                const useStore = create((set) => ({
  user: null,
  setUser: (user) => set({ user }),
}));
                            

Axios Instance

Pre-configured API layer with interceptors and error handling.


                                export const api = axios.create({
  baseURL: API_URL,
  timeout: 10000,
});
                            

Auth-Ready Screens

Login, register, and forgot password screens ready to connect. Includes form validation, error handling, and loading states.


                                // Pre-built auth screens
app/auth/
├── login.tsx      // Email & password
├── register.tsx   // Full signup flow
└── forgot.tsx     // Password reset
                            

Environment Variables

Expo's env system configured with TypeScript support.


                                // app.config.ts
extra: {
  apiUrl: process.env.API_URL,
}
                            

Clean architecture

A scalable folder structure that grows with your project.

my-app/
├── app/
│   ├── (tabs)/
│   │   ├── _layout.tsx
│   │   ├── index.tsx
│   │   └── profile.tsx
│   ├── auth/
│   │   ├── login.tsx
│   │   ├── register.tsx
│   │   └── forgot-password.tsx
│   ├── _layout.tsx
│   └── +not-found.tsx
├── components/
│   ├── ui/
│   │   ├── Button.tsx
│   │   ├── Input.tsx
│   │   └── Card.tsx
│   └── common/
│       └── Header.tsx
├── hooks/
│   ├── useAuth.ts
│   └── useApi.ts
├── lib/
│   ├── api.ts
│   ├── storage.ts
│   └── utils.ts
├── stores/
│   ├── authStore.ts
│   └── appStore.ts
├── types/
│   └── index.ts
├── constants/
│   └── index.ts
├── app.config.ts
├── tailwind.config.js
└── package.json
TypeScript

Get started in seconds

Three steps. That's all it takes.

01

Run one command

Just run npx init-expo-app my-app in your terminal.

$ npx init-expo-app my-app
02

Choose features

Interactively select the features you need for your project.

03

Start building

Your production-ready app is ready. Focus on features, not setup.

Is this for you?

We're transparent about what Init Expo App is—and isn't—designed for.

Perfect for

  • Indie developers shipping fast
  • Startups building MVPs
  • Hackathon participants
  • Freelancers starting new projects
  • React Native learners

Not designed for

  • Heavily custom navigation needs
  • Non-Expo React Native apps
  • Brownfield integrations
  • Projects requiring bare workflow

Quick start

Get up and running in under a minute.

bash — 80x24
~ Create a new app
$ npx init-expo-app my-app
~ Navigate to your app
$ cd my-app
~ Start the development server
$ npx expo start

Need more info? Check out the full documentation on GitHub .

Open source, always

Init Expo App is MIT licensed. Contributions are welcome and appreciated.

How to contribute

  1. 1 Fork the repository
  2. 2 Create a feature branch
  3. 3 Make your changes
  4. 4 Submit a pull request

We follow Conventional Commits for all contributions.

View Repository