Applications
Shipped packages
The workspace TypeScript configuration still contains aliases for additional package names, but no corresponding directories are shipped. Do not import an alias unless its package exists under
packages/.
Mobile composition
apps/mobile/app/_layout.tsx composes the runtime providers and startup services. At a high level it:
- Loads fonts and controls the native splash screen.
- Resolves auth, subscription, notification, and analytics adapters.
- Composes i18n, safe-area, theme, auth, analytics, subscriptions, and UI providers.
- Handles Firebase email-verification deep links.
- Enforces authentication, verification, security setup, onboarding, and unlock redirects.
- Renders the route stack from
apps/mobile/src/stacks/main.tsx.
Configuration layers
apps/mobile/app.jsoncontains static Expo and native plugin configuration.apps/mobile/app.config.jsderives environment-specific names, identifiers, schemes, native Firebase files, and OneSignal mode.apps/mobile/eas.jsondefines build, submit, environment, and update-channel profiles.amisi.config.jsonselects adapters and contains security and theme configuration.packages/config/src/env.tsvalidates public runtime environment variables.
Engineering boundaries
- Keep route files focused on route composition.
- Keep reusable domain behavior in existing packages.
- Access environment values through
@amisi-mobile-starter/configin app/package code. - Keep provider SDK imports inside their adapter package.
- Reuse
@amisi-mobile-starter/core,@amisi-mobile-starter/theme, and@amisi-mobile-starter/uibefore creating equivalents. - Use TanStack Query for server state and Zustand for client state when adding those concerns.