The Matchids mobile app for Android and iOS (Expo / React Native). Uses
the exact same matchids-backend API as the website — no separate mobile
backend, no duplicated business logic.
Per the project's own priorities, this repo is built after the web
foundation (matchids-web, matchids-backend, matchids-database,
matchids-payments) is solid, not in parallel with it — see
matchids-docs/architecture/PROJECT_VISION.md.
- Books (browse + detail), Kids Art, Library, Give Back/donations, and a
basic sign-in screen — all calling
matchids-backenddirectly. - Same design tokens as
matchids-design-system(colors, spacing), duplicated insrc/lib/theme.tssince React Native can't consume the web Tailwind preset directly — see that file's comment for the "keep in sync manually" caveat.
- Web3 / CeloHT payments. See
docs/WEB3_INTEGRATION.mdfor exactly what's needed and why it's sequenced after the web CeloHT integration is proven out. - Push notifications.
matchids-backend's/api/notificationsendpoint is itself a placeholder — nothing to build against yet. - Card payment UI. Donations currently post directly with
provider: "card"; a real card-entry flow (e.g. via the processor's mobile SDK) is a follow-up oncematchids-payments'CardProvideris wired to a real processor.
See docs/GETTING_STARTED.md. Short version:
npm install
cp .env.example .env # MATCHIDS_API_URL → your running matchids-backend
npx expo startApp.tsx Navigation (bottom tabs + a stack for Books)
src/
screens/ One file per screen
components/ Shared UI (BookCard, etc.)
lib/
api.ts matchids-backend client — token stored in SecureStore, not AsyncStorage
theme.ts Design tokens (kept in sync with @matchids/design-system manually)
docs/
GETTING_STARTED.md
WEB3_INTEGRATION.md