Forge modern Expo apps with battle-tested architecture.
Initialize complete projects and features with TanStack Query, Zustand, Axios, and NativeWind in seconds.
No setup required. Just run and forge:
npx create-expo-forge-app my-awesome-appThat's it. ✅ Your fully configured Expo project is ready.
# Install once
npm install -g expo-forge
# Forge a new project
expo-forge init my-epic-app
# Add features
cd my-epic-app
expo-forge generate feature booking
expo-forge generate feature payment| Command | Description |
|---|---|
npx create-expo-forge-app <name> |
Fastest way to forge a new project |
expo-forge init <name> |
Initialize a new project (after global install) |
expo-forge generate feature <name> |
Scaffold a complete feature module |
expo-forge --version |
Show the current version |
expo-forge --help |
Show available commands |
When you initialize a project, Expo Forge sets up a production-ready environment:
- 🏗️ Bulletproof Structure — Feature-based architecture (
src/features,src/api,src/hooks). - 🌐 Pre-configured Axios — API client with interceptors, auth headers, and error handling.
- 🔄 TanStack Query v5 — Async state with caching, background refetch, and optimistic updates.
- 🧠 Zustand Stores — Lightweight, predictable global state management.
- 🎨 NativeWind (Tailwind CSS) — Utility-first styling with
global.csspre-configured. - 📱 Expo Router — File-based navigation with layouts and type safety.
- 🛡️ Safe Area Ready —
SafeAreaProviderintegrated for notched/modern devices. - 🎯 Environment Ready —
.env.example& TypeScript path aliases (@/*) configured.
The generate feature command scaffolds a self-contained module:
src/features/booking/
├── api/ # TanStack Query custom hooks (CRUD)
├── components/ # UI components (e.g. BookingCard.tsx)
├── hooks/ # Feature-specific business logic
├── services/ # Pure API calls via Axios
├── store/ # Zustand store for this domain
├── types/ # TypeScript interfaces & DTOs
├── utils/ # Domain-specific helpers
├── BookingScreen.tsx # Main entry screen for this feature
└── index.ts # Clean public API
Import instantly:
import { BookingScreen, useBookings } from "@/features/booking";| Layer | Technology |
|---|---|
| Runtime | Expo + React Native |
| Navigation | Expo Router |
| Data Fetching | TanStack Query v5 |
| State Management | Zustand |
| HTTP Client | Axios |
| Styling | NativeWind (Tailwind CSS) |
| Language | TypeScript (strict) |
- ⚡ Demo & Quickstart — Step-by-step walkthrough.
- 🏗️ Architecture Guide — Under-the-hood deep dive.
- 🛠️ Contribution Guide — Extend and customize the Forge.
- 🛣️ Roadmap — The future of Expo Forge.
- 📦 Publish Guide — NPM publication workflow.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
MIT License — see the LICENSE file for details.
Forged with ❤️ by moasko ⚒️✨