A faith-centered, intentional introduction and community platform for Christian singles. Three applications, one shared backend.
discern-match/
├── apps/
│ ├── web/ Next.js · marketing site (public, static)
│ ├── mobile/ React Native · core product (iOS + Android)
│ └── admin/ Next.js · internal operations dashboard
├── services/
│ └── backend/ NestJS · API + WebSockets + workers
├── packages/
│ ├── types/ Shared TypeScript types & enums (DTOs)
│ └── config/ Shared lint/tsconfig/prettier presets
└── docs/ ARCHITECTURE.md, API.md, DATA_MODEL.md
| App | Framework | Hosting |
|---|---|---|
apps/web |
Next.js 15.5 (App Router, React 19) | Vercel · static + ISR |
apps/mobile |
React Native 0.81 + Expo SDK 54 | App Store, Play Store via EAS |
apps/admin |
Next.js 15.5 (App Router) | Vercel (private deployment); admin auth via backend JWT + TOTP 2FA |
services/backend |
NestJS 11 (Express 5) + Prisma + Postgres + Redis + Socket.io | Railway (Docker) |
pnpm install
pnpm dev:infra # postgres + redis (docker compose)
pnpm db:migrate:dev
pnpm db:seed
pnpm dev # runs web, admin, backend in parallel
pnpm dev:mobile # in a separate terminal: starts MetroEach app keeps its own .env.local (copy from each app's .env.local.example). The backend reads from services/backend/.env (template in services/backend/.env.example). Production templates live alongside as .env.production.example in each package.
docs/ARCHITECTURE.md— full system architecturedocs/API.md— REST + WebSocket endpoint referencedocs/DATA_MODEL.md— database schema and ERD