Make it yours
The CLI already set the name, slug, scheme and bundle id. Here’s what’s left before you ship.
Checklist
Section titled “Checklist”- Bundle id per environment (optional). All three environments share one bundle id by default, which keeps Firebase, push notifications and signing simple. To install development and production builds side by side, use the commented
PACKAGE_NAMESblock inenv.ts. - App name and slug. The display name for each environment lives in
APP_NAMESinenv.ts, with “(Dev)” and “(Staging)” suffixes so you can tell builds apart. Theslugandschemeare inapp.config.ts. - Icons and splash. Replace
assets/icon.png(used for the app icon, Android adaptive icon and splash screen) andassets/favicon.png(web). - Your API. Set
EXPO_PUBLIC_API_URLin.env.development,.env.stagingand.env.production. Development starts pointed at DummyJSON so the demo works. - Env vars. Add your own variables to
.env.exampleand the Zod schema inenv.ts. See Environments. - Replace the example feature.
src/features/postsand the Home screen are there to show the pattern. Replace them with your own features. - Real authentication.
src/features/auth/api/authenticate.tsis a demo. Point it at your backend, and turn on token refresh in the API client if you need it (see API layer). - EAS project. Run
eas initto link the app to your Expo account, thenyarn env:push:<env>so cloud builds get your env vars. See EAS builds & releases.
Keep the guard rails
Section titled “Keep the guard rails”- Keep the feature folders’
index.tsfiles as their public API. ESLint will stop you importing from inside another feature. - Keep commit messages in Conventional Commits format (
feat:,fix:,chore:…). Commitlint enforces it if you kept Husky. - Run
yarn lint,yarn type-checkandyarn testbefore you push.