// the find
roninoss/create-expo-stack
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, Restyle, Unistyles, StyleSheets, or Tamagui, and/or backend as a service such as Firebase and Supabase.
create-expo-stack is a CLI scaffolder for Expo/React Native projects that lets you pick your routing (Expo Router or React Navigation), styling (Nativewind, Unistyles, Tamagui, etc.), and backend (Firebase, Supabase) upfront and generates a working project with all the wiring done. It's the `create-t3-app` equivalent for the React Native world. Aimed at developers who want to skip the 2-hour setup dance every time they start a new mobile project.
- Per-file EJS template composition rather than cloning one monolithic boilerplate and deleting stuff — this means combinations like Expo Router + Nativewind + Supabase actually generate correctly wired files rather than leaving dead code everywhere.
- Solid integration test coverage via snapshot testing of the generated output, which is the right way to catch regressions in a template tool like this.
- Actively maintained and tracking recent library versions (Expo SDK 54, RN 0.81, React 19, Expo Router v6, React Navigation v7) — this matters a lot in the Expo ecosystem where things move fast and old scaffolders quickly become liabilities.
- The separate `rn-new` package as a short alias is a small but appreciated DX touch, and support for all four major package managers (npm/yarn/pnpm/bun) is handled correctly rather than hardcoded.
- The `www/demo/node_modules` directory is committed to the repo — that's a red flag in code hygiene and inflates repo size unnecessarily.
- No testing of the actual generated app builds (just snapshot tests of file content), so a template could generate syntactically valid but broken code that won't be caught until a user runs it.
- Backend integrations (Firebase, Supabase) generate only a minimal client init file with `.env` placeholders — there's no auth flow, no example query, nothing that gets you past 'SDK is initialized'. For Supabase in particular, users still have to figure out auth setup themselves.
- The combination matrix (3 nav options × 5 styling options × 2 backends) creates a large number of possible outputs, and it's unclear how many of these combinations are actually tested end-to-end. The snapshot tests cover structure but not runtime validity of every combination.