FriendChise Docs
Deployment
How FriendChise is built, migrated, and shipped to production
Web app
- Production is deployed at friendchise.app.
- Build:
pnpm buildrunsprisma generate && next build --webpack. - Start:
pnpm start(next start). - Error monitoring, performance tracing, session replay, and server-side logs run through Sentry (
SENTRY_AUTH_TOKENis only needed when build-time source map upload is enabled). See Operations.
Database migrations
- Local/dev:
pnpm prisma migrate dev. - Production:
pnpm migrate:prod, which runsprisma migrate deployagainst.env(not.env.local) withSKIP_DOTENV_LOCAL=1. Do not runprisma migrate deploydirectly in production — use themigrate:prodscript so the correct env file is loaded. - See Migrations and Seeding for the full contributor-facing workflow.
Environment separation
- Next.js commands such as
next devandpnpm buildload both.envand.env.local, with.env.localtaking precedence in local checkouts. pnpm migrate:prodskips.env.local(SKIP_DOTENV_LOCAL=1) and reads.envonly.- Keep production credentials in
.envor your deployment platform's secret store, not in a shared local override file. - See Environment Variables for the full variable reference.
Mobile app (Expo / EAS)
- Builds are managed through EAS (
friendchise-mobile-app/eas.json), withdevelopment,preview, andproductionbuild profiles. - The production build profile points
EXPO_PUBLIC_API_URLathttps://friendchise.appso production mobile builds talk to the production web backend. - iOS bundle identifier / Android package:
com.ivantran2001.friendchisemobileapp. - See Mobile App for how the client talks to the backend, and App Store Review Notes for store-submission specifics.
TODO
- Document the CI/CD pipeline (what runs on push/PR, what gates a deploy) once formalized.
- Document the hosting provider and any infra-as-code for the web app's production environment in more detail.
- Document the EAS submit step (
eas submit) and any required store credentials/secrets.
