Mobile Overview
iOS and Android apps powered by Expo
Mobile
EasyStarter's mobile app is built with React Native and Expo, located in apps/native. It shares authentication logic, API contracts, configuration, and i18n resources with the web app — but has its own screen structure, native capabilities, and payment stack.
The mobile app uses RevenueCat to manage iOS and Android subscriptions and in-app purchases. Authentication is handled by Better Auth with deep-link support, including native Apple Sign-In. The UI layer is built on HeroUI Native with a Tailwind-style system (Uniwind).
Tech Stack
| Layer | Technology |
|---|---|
| Framework | React Native + Expo |
| Routing | Expo Router (file-based) |
| UI | HeroUI Native + Uniwind (Tailwind v4) |
| API | oRPC + TanStack Query |
| Auth | Better Auth + @better-auth/expo |
| Payments | RevenueCat (iOS/Android subscriptions & IAP) |
| Build & Submit | EAS Build + EAS Submit |
| i18n | @repo/i18n |
Recommended Reading Order
New to the project:
- Getting Started — Run the Expo app locally
- Project Structure — Understand the directory layout and key files
Integrating external services:
- Cloudflare — Account credentials, foundation for all services
- Database — D1 configuration
- Authentication — Better Auth + OAuth setup
- RevenueCat — Mobile subscriptions and in-app purchases
Getting ready to ship:
- Deploy Server — Deploy the backend first
- Publish App — EAS Build + App Store / Google Play submission
Looking for Web docs?
Switch to the Web documentation.