Skip to main content
The 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.
turbo dev:mobile
Or directly:
cd apps/mobile && bunx expo start

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 in apps/mobile/.env.example:
VariableRequiredDescription
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEYYesClerk publishable key
EXPO_PUBLIC_CONVEX_URLYesConvex deployment URL
EXPO_PUBLIC_SENTRY_DSNNoSentry DSN
EXPO_PUBLIC_POSTHOG_KEYNoPostHog project key
EXPO_PUBLIC_POSTHOG_HOSTNoPostHog host
EXPO_PUBLIC_REVENUECAT_APPLE_KEYNoRevenueCat Apple API key
EXPO_PUBLIC_REVENUECAT_GOOGLE_KEYNoRevenueCat Google API key