Mobile Starter Kit

Change screens and navigation

Reshape the Expo Router app without burying product logic in routes.

Routes live in src/app. The default structure is:

onboarding
auth + OTP
Today / Scan / Coach / Profile tabs
Activity
Notifications
Paywall
Settings
Account deletion
Deep-link destination
State gallery

Rename or replace a tab

Replace the Scan tab with a Projects tab. Keep four primary tabs. Make the
route file thin and put the reusable screen behavior in components/hooks.
Update icons, labels, analytics event types, deep-link allow-lists, tests, and
both languages. Preserve the old Scan integration contracts only if another
flow still uses them; otherwise remove them cleanly and run pnpm seams.

Remove a feature

Removing a button is not enough. Ask the agent to inventory:

  • route and navigation entry,
  • components and hooks,
  • mock data and tests,
  • integration contract and adapter,
  • environment/config values,
  • permissions and native capabilities,
  • analytics events and deep links,
  • legal/store disclosures.

Example:

Remove voice input completely. Remove its UI, adapter selection, microphone
permission/config, temporary audio backend resources, tests, analytics, privacy
disclosure, and store declaration. Keep text chat complete. Run all seam and
native config checks after the change.

Add a new screen

Describe its user goal and states, not just its title:

Add a Progress screen reachable from Today. It needs week/month tabs, loading,
empty, error, and populated states, a screen-reader summary for charts, large
text support, and mock data. Reuse existing cards and chart patterns. Do not
add a provider yet.

After route changes, restart Expo if the file-based router looks stale. Do not put provider SDK calls directly inside a route.

On this page