create-zachstack-app
v0.1.0
Published
Scaffold a production-ready React Native (Expo) + Express monorepo with Better Auth, Drizzle, NativeWind, React Native Reusables, BullMQ, Socket.IO and Cloudflare R2.
Maintainers
Readme
create-zachstack-app
Scaffold a production-ready full-stack mobile app in one command.
npx create-zachstack-app my-appcreate-zachstack-app generates a batteries-included monorepo with a React Native
(Expo) client and an Express server already wired together — passwordless auth,
real-time cache invalidation, background jobs, file storage and more. It's the
boilerplate I (Zach McMullen) reach for when starting a new mobile product, minus
all the app-specific code.
The stack
Client (client/)
- Expo + Expo Router (typed routes)
- Better Auth with the Expo plugin — email OTP, passwordless
- NativeWind + React Native Reusables (default theme)
- lucide-react-native icons
- TanStack Query with real-time cache invalidation over Socket.IO
@gorhom/bottom-sheet,sonner-nativetoaster, portal host, protected routing
Server (server/)
- Express 5
- Better Auth — email OTP via Resend
- Drizzle ORM + PostgreSQL
- BullMQ queues/workers + cron jobs on Redis
- Socket.IO for pushing query invalidations to clients
- Cloudflare R2 (S3-compatible) uploads
- Expo push notifications, structured JSON logging, Redis-backed rate limiting
What you get
my-app/
├─ package.json # run both apps with one command (concurrently)
├─ client/ # Expo app
├─ server/ # Express API
├─ AGENTS.md # guide for you and your AI agents
└─ README.mdAfter scaffolding:
cd my-app
npm run install:all # installs client + server deps
# fill in server/.env and client/.env
npm run dev # starts server + client togetherOptions
| Flag | Description |
| --------------- | ------------------------------------------------------ |
| -i, --install | Run npm install in client/ and server/ for you |
| --no-git | Don't initialize a git repository |
| -h, --help | Show help |
Author
Built by Zach McMullen. If this saved you time, follow along and star the repo:
- GitHub: @ZachMcM
License
MIT
