apps/mobile directory contains a React Native app built with Expo. It shares packages with the web apps so an agent writes a feature once and it runs on both platforms.
Overview
A cross-platform mobile app that consumes the same backend, auth, analytics, and observability packages as the web apps. One Convex backend serves both web and mobile.Features
- Authentication: Clerk sign-in, sign-up, and OAuth via
@repo/auth. - Backend: Real-time data from Convex via
@repo/convex/provider.native. - Analytics: PostHog event tracking via
@repo/analytics. - Observability: Sentry error tracking via
@repo/observability. - Notifications: Push notifications via Expo + Knock.
- In-app purchases: RevenueCat for Apple and Google subscriptions.
Styling
The mobile app uses NativeWind with components from@repo/design-system-native. These are React Native equivalents of the web design system, generated by React Native Reusables.
Environment variables
Set inapps/mobile/.env.example:
| Variable | Required | Description |
|---|---|---|
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY | Yes | Clerk publishable key |
EXPO_PUBLIC_CONVEX_URL | Yes | Convex deployment URL |
EXPO_PUBLIC_SENTRY_DSN | No | Sentry DSN |
EXPO_PUBLIC_POSTHOG_KEY | No | PostHog project key |
EXPO_PUBLIC_POSTHOG_HOST | No | PostHog host |
EXPO_PUBLIC_REVENUECAT_APPLE_KEY | No | RevenueCat Apple API key |
EXPO_PUBLIC_REVENUECAT_GOOGLE_KEY | No | RevenueCat Google API key |