For the complete documentation index, see llms.txt. Prefer markdown by appending.mdto documentation URLs or sendingAccept: text/markdown.
Introduction
Start building with the TurboStarter mobile kit. Expo, React Native, auth, billing, and shared API patterns for iOS and Android apps.
Welcome to the TurboStarter mobile documentation. This guide covers the Expo + React Native app - native auth, in-app purchases, push notifications, store publishing, and everything else that lives on the device.
The mobile app talks to the same API and database as web. Shared product features (organizations, plan entitlements, analytics) are documented here with mobile-specific setup; deep backend details live in the web docs when they apply to every platform.
Looking to bootstrap quickly? Check out the TurboStarter CLI guide.
Demo apps
Try the live iOS and Android demos (web and extension demos are available too):
Philosophy
- As simple as possible - easy to understand, easy to use, no overengineering.
- As few dependencies as possible - stay in control of every part of the project.
- As performant as possible - fast and light without unnecessary overhead.
Features
Mobile-first capabilities below. For AI chatbots and agents on native, see TurboStarter AI and the mobile AI guide.
Native authentication
Better Auth powers sign-in on mobile, with deep links and native SSO that store reviewers expect.
Auth overview
Password, magic link, OTP, anonymous, and OAuth - shared with your web app.
Auth flow & screens
Ready-made sign-in, sign-up, recovery, and verification screens.
Sign in with Apple
Native Apple Authentication on iOS with Better Auth verification.
Sign in with Google
Native Google sign-in on Android with identity token verification.
Deep linking
App scheme callbacks for magic links, OAuth, and invite acceptance.
Two-factor authentication
TOTP and recovery flows adapted for native UX.
In-app purchases & billing
Store-compliant billing is the mobile default - RevenueCat and Superwall on top of App Store / Play products, synced with your shared entitlements API.
Billing overview
How mobile billing connects stores, RevenueCat, and your backend.
Store configuration
Create products in App Store Connect and Google Play Console.
RevenueCat
Default IAP provider - entitlements, paywalls, and webhooks.
Superwall
Remote paywalls and experiments without shipping a new binary.
Billing webhooks
Keep server-side plan state in sync with purchase events.
Feature-based access
Gate screens and quotas by plan on the client and API.
Push notifications
Requires a Firebase project for Android FCM (and optionally Google Analytics).
Permissions & push tokens
Request permission, create Android channels, and obtain a device token.
Foreground & tap handling
Show banners while the app is open and react when users tap a notification.
Local & remote testing
Send a local test from settings, or paste the token into the push tool.
FCM & APNs credentials
Wire Android FCM and iOS APNs through EAS for production delivery.
Firebase project
Required for FCM on Android and optional Google Analytics.
Onboarding
First-run flow
Welcome → auth → setup steps → optional paywall → dashboard.
Soft & hard paywalls
Skippable paywall by default, or require a purchase before the product.
Marketing & ASO
Store listing tips, review readiness, and acquisition basics.
Publishing & updates
Publishing checklist
Everything to verify before you submit to Apple and Google.
iOS (App Store)
Certificates, profiles, TestFlight, and App Store submission.
Android (Play Store)
Signing, tracks, and Play Console submission.
Over-the-air updates
Push JS-only fixes instantly via EAS Update without a store review.
Multiple environments
Dev, staging, and production configs for Expo and EAS.
Organizations & API client
Shared multi-tenancy and a typed client - same contracts as web, wired for Expo.
Organizations
Multi-tenant orgs, membership, and active organization on mobile.
Invitations
Accept invites and join teams from the mobile app.
Roles & permissions
RBAC scoped to each organization.
API overview
How the mobile app talks to the shared serverless API.
Typesafe client
Fully typed API client for queries and mutations.
Database
Shared schema via the API - the client never talks to the DB directly.
AI
AI on mobile
Streaming chat and AI SDK patterns wired for Expo.
AI-assisted development
Rules and skills so AI editors follow Expo and monorepo conventions.
Customization & i18n
Styling & themes
Uniwind / Tailwind-on-RN, themes, and dark mode for the mobile UI.
Components
Shared and mobile-specific UI components (RN Reusables).
Internationalization
Device locale, RTL, language switching, and translated screens.
Add a package or app
Extend the monorepo with new packages or Expo apps.
Analytics & monitoring
Analytics overview
Session and event tracking on iOS and Android.
App Tracking Transparency
ATT permissions required before collecting analytics on iOS.
Event tracking
Custom events and user identification.
Monitoring
Crash reporting and performance with Sentry and PostHog.
Source maps
Upload Expo source maps for readable production stack traces.
Security, tests & recipes
Security overview
SecureStore sessions, secrets, billing trust, and API boundaries.
Security checklist
Ship-ready checks before you go to production.
Unit tests
Fast unit tests for hooks, utils, and components.
E2E tests (Maestro)
Device and simulator flows for critical mobile paths.
Build a feature
End-to-end pattern for shipping a new mobile feature.
Use like LEGO blocks
Keep the native pieces you need - push, IAP, onboarding - and drop the rest. The mobile app stays thin; the API and web kit remain the source of truth for accounts, orgs, and entitlements.
Scope of this documentation
Focus here is the Expo app: installation, native auth, store billing, push, publishing, and mobile UX. Shared backend topics (schema design, webhook providers, admin) are covered in depth in the web docs when they apply across platforms.
Enjoy!
Questions? Reach out at hello@turbostarter.dev.
Ship to the stores, iterate with OTA, and have fun! 🚀
Tech Stack
Explore the mobile stack behind TurboStarter: Expo, React Native, shared API client, auth, billing, and monorepo packages.
CLI
Create a new TurboStarter monorepo from the CLI with your preferred apps preconfigured. Fastest path from install to running Expo.
Extras
Launch resources beyond code: Discord, changelog, marketing tips, and workflows that help you ship your mobile SaaS faster.
FAQ
Answers to common TurboStarter mobile questions about Expo setup, auth, billing, publishing, and local development.
How is this guide?
Last updated on