> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobile-starter.amisi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Architecture overview

> Understand the Nx monorepo layout and route-to-screen boundaries

# Architecture overview

This starter is organized as an Nx monorepo:

* `apps/mobile`: the Expo app (Expo Router)
* `packages/*`: domain and shared packages (contracts + implementations)
  * `packages/core`: shared runtime utilities, errors, platform helpers, and common primitives.
  * `packages/config`: typed app configuration parsing and normalized runtime config access.
  * `packages/contracts`: domain contracts, interfaces, and schema boundaries between modules.
  * `packages/i18n`: localization setup, translation helpers, and locale resource handling.
  * `packages/ui`: reusable design system components used across mobile screens.
  * `packages/navigation`: app navigation abstractions and route-level integration helpers.
  * `packages/theme`: theme token mapping and UI theme composition utilities.
  * `packages/api`: API client boundaries and backend integration utilities.
  * `packages/auth`: adapter-based authentication flows and identity lifecycle handling.
  * `packages/app-lock`: app security lock features such as PIN and biometric flows.
  * `packages/subscriptions`: subscription state, entitlements, and billing integration boundaries.
  * `packages/analytics`: adapter-based analytics tracking and event instrumentation.
  * `packages/notifications`: adapter-based push notification runtime and provider integrations.
  * `packages/onboarding`: onboarding flow building blocks and startup experience state.
  * `packages/security`: shared security-focused utilities used by protected flows.
  * `packages/chat`: chat-domain module for conversation features and related orchestration.
* `tools/generators`: local Nx generators

## Key convention

* Route files live in `apps/mobile/app` and should be *route-only*.
* Screen implementations live in `apps/mobile/src/screens` and should contain screen specific logic to connect domain contracts with UI.

This keeps routing concerns separate from domain UI and makes features portable.
