Mobile app
The cross-platform Expo app gated by config.mobile - what it ships, how to enable it, the accounts it needs, and what they cost.
A native iOS and Android app at apps/mobile, built with Expo and gated by config.mobile. It signs in against the same backend as your website, shares logic through @repo/app-core, and ships off by default.
| Location | apps/mobile |
| Stack | Expo SDK 57 + Expo Router + React Native 0.86 + Uniwind + React Native Reusables |
| Theme | generated from tooling/styles/theme.css into apps/mobile/global.css |
| Config | @repo/config/mobile - plain JS, read by app.config.ts, EAS, Metro and the bundle |
| Backend | the same @repo/api the web app calls, over EXPO_PUBLIC_API_URL |
The mobile app requires a Pro (or Agency) license. The CLI hides the option for Solo licenses, and the license server rejects it.
Enabling it
Scaffold with --mobile on the init command; --no-mobile is the explicit off.
generatesaas init --mobile| Piece | --mobile on | --mobile off |
|---|---|---|
apps/mobile and its i18n scope | kept | stripped |
One workflow, Mobile release, dispatch-only | kept | stripped |
The .well-known universal-link routes on your site | kept | stripped |
| The Expo push channel - routes, jobs, device writes | kept | stripped |
Sign in with Apple, the GetTheApp section, the push tables | kept | kept (inert) |
config.mobile in @repo/config | enabled: true | kept, enabled: false |
config.mobile is written for every project, so every surface reads config.mobile.enabled with no ?.. The GetTheApp section stays inert until config.mobile.stores carries a listing URL, the last step of a release.
What ships
- Auth - password, magic link, TOTP, passkeys, Sign in with Apple, Google
- AI - chat with camera, files and voice; automations
- Notifications - the inbox, per-type preferences, deep links
- Workspace - organizations, projects, the member invite
- Settings - profile, security, appearance, privacy, App lock, account deletion
- Reporting - crashes and product analytics behind the privacy switches, see Error Reporting
- Billing - the plan, credits and history; store purchases where enabled
Setup
Toolchains, the development build, a real device.
Architecture
Routing, seams, storage, theme, import rules.
Auth
Sign-in, universal links, passkeys, app lock, deletion.
AI
Chat, attachments, voice, automations.
Notifications
Push registration, preferences, and deep links.
Billing
Store purchases through RevenueCat, and the web-billing shape.
Release
EAS profiles, OTA rules, versioning, the workflow.
Testing
The jest-expo suite and the Maestro device flows.
Accounts you need
Open each under your own organization before release.
| Account | Needed for | Cost |
|---|---|---|
| Expo + an EAS project | Builds, OTA updates, push credentials | Free tier; paid plans buy concurrency |
| Apple Developer Program | iOS builds, the App Store listing, Sign in with Apple | 99 USD / year |
| Google Play Console | Android builds and the Play listing | 25 USD once |
Store purchases add one more:
| Account | Needed for | Cost |
|---|---|---|
| RevenueCat | In-app purchases and the Customer Center | Free under 2,500 USD monthly tracked revenue |
APNs and FCM V1 credentials upload once through eas credentials - see Release.