These pages get you running and shipping. The deep material lives inside the repository: 9 guides in docs/ and 27 recipes in docs/recipes/. This is the index.
When you need X, read Y
| What you are doing | Read |
|---|---|
| Understanding the whole architecture | CLAUDE.md |
| Every env var explained | docs/env-setup.md |
| Implementing your own backend | docs/backend-contract.md |
| Moving off SQLite | docs/swap-to-postgres.md |
| Auth provider details | docs/auth-providers.md |
| Building and submitting | docs/deploying.md |
| Preparing for App Store review | docs/privacy-manifest.md |
| Testing before you ship | docs/manual-test-checklist.md, docs/testing-e2e.md |
Recipes by task
Data and state: client-state, optimistic-updates, offline-queue, infinite-scroll, large-lists, pull-to-refresh, search-and-filter
Screens and interaction: modals-and-dialogs, empty-states, error-boundary, toasts, forms-with-images, demo-screens
Native features: camera-and-scanner, maps-and-location, background-fetch, background-location, local-notifications, file-uploads, deep-linking
Money and growth: non-iap-payments, analytics-events, feature-flags, app-store-listing, app-icons-and-splash
Operations: backend-observability, sentry-advanced
Getting updates
New features and fixes land on main. If you set up an upstream remote in Get the Code:
git fetch upstream
git merge upstream/mainRead CHANGELOG.md first. Merge conflicts land in files you have edited, which is normal once you have made the app yours.
When something does not work
- Check the recipe for that feature. Most questions are answered there.
- Re-read the "what needs something from you first" table in What You Just Bought. Features that need a device or a key are the most common surprise.
- Run
pnpm test. If the 85 tests pass, the boilerplate is intact and the problem is in your change or your configuration.
Read CLAUDE.md and the recipe for