Tool Integration
Integrate essential services like Firebase, Supabase, RevenueCat, and Expo Dev into your mobile app
Tool Integration
The AI Mobile Launcher boilerplate comes with Firebase, Supabase, and RevenueCat already integrated and configured. This section shows you how to connect your own project credentials and start using these production-ready services.
Overview
The boilerplate includes these pre-integrated services:
- Supabase - PostgreSQL database, authentication, and storage (v2.84.0)
- Firebase - Analytics, Crashlytics, Remote Config, and push notifications
- RevenueCat - In-app purchases and subscription management (v9.6.7)
- Expo Dev - Build, deploy, and update your apps (EAS integration)
What's Already Implemented
The boilerplate includes production-ready implementations of:
Supabase Integration
- ✅ Authentication with email/password and social logins (Apple, Google)
- ✅ PostgreSQL database with TypeScript type safety
- ✅ Row Level Security (RLS) policies
- ✅ Storage for file uploads (avatars, media)
- ✅ Data synchronization via custom RTK and Redux Toolkit approach
- ✅ Token management with auto-refresh
Firebase Integration
- ✅ Firebase Analytics for user behavior tracking
- ✅ Crashlytics for crash reporting and debugging
- ✅ Remote Config for feature flags and A/B testing
- ✅ Cloud Messaging (FCM) for push notifications
- ✅ Token management with auto-refresh
- ✅ Analytics events throughout the app
RevenueCat Integration
- ✅ Subscription management (monthly/yearly tiers)
- ✅ Paywall UI with A/B testing support
- ✅ Purchase restoration across devices
- ✅ Receipt validation and security
- ✅ Trial period support
- ✅ Localized pricing by region
- ✅ Customer lifecycle tracking
Expo Dev Services
- ✅ EAS Build configuration (dev, staging, production)
- ✅ Build scripts for iOS and Android
- ✅ Deep linking support
- ✅ Over-the-air (OTA) updates ready
- ✅ Environment profiles for different stages
Setup Checklist
To connect your own services, you'll need:
- Boilerplate cloned and dependencies installed (using yarn)
- Account created on Supabase.com
- Firebase project created
- RevenueCat account and app configured
- Environment variables file created (
.env) - iOS and Android apps registered with services
Cost Considerations
Firebase
- Free tier: Generous limits for development
- Pricing: Pay-as-you-go (Blaze plan required for Cloud Functions)
Supabase
- Free tier: 500MB database, 1GB storage, 2GB bandwidth
- Pro plan: $25/month for production apps
RevenueCat
- Free tier: Up to $2,500 monthly tracked revenue
- Paid plans: Starting at $299/month for higher volume
Expo Dev
- Free tier: Limited builds per month
- Production plan: $29/month for unlimited builds
Configuration Order
Since everything is already integrated, follow this order to configure with your credentials:
- Supabase - Set up your database and auth first (primary backend)
- Firebase - Add your Firebase project for analytics and push notifications
- RevenueCat - Configure when ready to test in-app purchases
- Expo Dev (EAS) - Set up for building and deploying to stores
Boilerplate Architecture
The AI Mobile Launcher uses a feature-first architecture. Each service integration is organized within relevant features:
src/
├── features/
│ ├── auth/ # Supabase auth integration
│ │ ├── services/
│ │ │ ├── auth.service.ts # Supabase auth methods
│ │ │ └── oauth.service.ts # Apple/Google sign-in
│ │ ├── hooks/
│ │ │ └── useAuth.ts # Auth state management
│ │ └── store/
│ │ └── auth-slice.ts # Redux state
│ ├── todos/ # Example feature with Supabase
│ │ ├── api/
│ │ │ └── todos-api.ts # RTK Query + Supabase
│ │ ├── hooks/
│ │ │ └── useTodos.ts # Offline-first sync
│ │ └── services/
│ │ └── todos-sync.ts # Sync service
│ ├── analytics/ # Firebase Analytics
│ │ ├── services/
│ │ │ ├── firebase-analytics.ts
│ │ │ └── crashlytics.ts
│ │ └── hooks/
│ │ └── useAnalytics.ts
│ ├── notifications/ # Firebase FCM
│ │ ├── services/
│ │ │ ├── fcm.service.ts
│ │ │ └── local-notifications.ts
│ │ └── hooks/
│ │ └── useNotifications.ts
│ ├── paywall/ # RevenueCat integration
│ │ ├── services/
│ │ │ └── revenue-cat.service.ts
│ │ ├── components/
│ │ │ └── PaywallScreen.tsx
│ │ └── hooks/
│ │ └── useSubscription.ts
│ └── remote-config/ # Firebase Remote Config
│ ├── services/
│ │ └── remote-config.service.ts
│ └── hooks/
│ └── useRemoteConfig.ts
├── services/
│ ├── sync/ # Offline-first sync manager
│ ├── storage/ # MMKV + SecureStore
│ └── api/ # Base API config
└── ui/
└── components/ # 52+ reusable componentsSecurity Considerations
- API Keys: Use environment variables, never hardcode
- Authentication: Implement secure auth flows
- Data Validation: Validate all user input
- Access Control: Implement proper permissions
- HTTPS Only: All API calls over HTTPS
- Secrets Management: Use Expo Secrets or similar
Getting Started
The integrations are already set up in the code. You just need to add your credentials.
Quick Start
- Create a
.envfile in the project root with your Supabase, Firebase, and RevenueCat credentials (each guide below tells you exactly what to add) - Follow the detailed guides for each service:
- Supabase Setup - Connect your database and auth
- Firebase Setup - Add analytics and push notifications
- RevenueCat Setup - Configure subscriptions
- Expo Dev Setup - Build and deploy
What You Get
Each integration guide shows you:
- ✅ Where the code lives in the boilerplate
- ✅ How to add your credentials (step-by-step)
- ✅ What features are already built
- ✅ How to customize for your app
- ✅ Common issues and troubleshooting
Next Steps
- Configure RevenueCat when ready to test monetization
- Add Firebase for analytics and push notifications
- Start with Supabase to get authentication and database working
- Set up Expo EAS for building and deploying
Everything is already coded - you're just connecting your accounts!