๐ Init
Initialize your ExpoBase project with your app configuration using the automated setup script.
๐ฑ Run the Init Script
npm run init
This will start an interactive setup:
๐ App Initialization Script
================================
๐ฑ Bundle Identifier Setup
Format: com.yourcompany.yourapp
Example: com.foodieapp.mobile
Enter your new bundle identifier: com.test.app
Enter your app name (e.g., "My Awesome App"): testApp
Enter your app slug (e.g., "my-awesome-app"): test-app
๐ณ Stripe Payment Integration
Stripe allows you to process payments in your app
If you don't need payments, you can remove it to reduce bundle size
Do you want to use Stripe for payments? (y/N): n
๐ RevenueCat Subscription Management
RevenueCat manages in-app purchases and subscriptions
If you don't need subscriptions, you can remove it
Do you want to use RevenueCat for subscriptions? (y/N): n
๐ Configuration Summary:
App Name: testApp
App Slug: test-app
Bundle ID: com.test.app
Use Stripe: No
Use RevenueCat: No
Proceed with this configuration? (y/N): y
๐ง Starting initialization...
๐๏ธ Removing .expo...
โ
Removed .expo
๐ซ Removing Stripe integration...
๐ Removing Stripe from app.json...
โ
Removed Stripe from app.json
๐ Removing Stripe from package.json...
โ
Removed Stripe from package.json
๐ Removing Stripe from _layout.tsx...
โ
Removed Stripe from _layout.tsx
๐๏ธ Removing Stripe-related files...
๐๏ธ Removing context/StripeContext.tsx...
โ
Removed context/StripeContext.tsx
๐๏ธ Removing components/payment/PaymentSheet.tsx...
โ
Removed components/payment/PaymentSheet.tsx
๐๏ธ Removing components/payment/stripeButtonPay.tsx...
โ
Removed components/payment/stripeButtonPay.tsx
๐ Removing Stripe from payment/index.ts...
โ
Removed Stripe exports from payment/index.ts
๐ Cleaning payment.tsx from Stripe code...
โ
Cleaned payment.tsx - kept only RevenueCat
๐๏ธ Removing supabase/functions/create-payment-intent...
โ
Removed supabase/functions/create-payment-intent
๐๏ธ Removing supabase/functions/create-stripe-checkout...
โ
Removed supabase/functions/create-stripe-checkout
๐๏ธ Removing supabase/functions/stripe-webhooks...
โ
Removed supabase/functions/stripe-webhooks
๐๏ธ Removing assets/logo/stripe.jpeg...
โ
Removed assets/logo/stripe.jpeg
โ
Removed all Stripe-related files
๐ฆ Uninstalling Stripe package...
โ
Uninstalled Stripe package
โ
Stripe integration removed successfully!
๐ซ Removing RevenueCat integration...
๐ Removing RevenueCat from _layout.tsx...
โ
Removed RevenueCat from _layout.tsx
โ
RevenueCat integration removed from _layout.tsx!
๐ Updating app.json...
โ
Updated app.json
๐ Updating package.json...
โ
Updated package.json
๐ Updating identifiers throughout the project...
โ
Updated 0 files with new identifiers
๐ Updating supabase/config.toml...
โ
Updated supabase/config.toml
๐ Initialization completed successfully!
๐ Next Steps:
1. Run: npm install (to clean up dependencies)
2. Run: npx expo prebuild (to generate native code)
3. Run: eas init (to initialize EAS project)
4. Configure your environment variables
5. Set up your authentication providers
๐ณ Stripe Integration Removed:
โข All Stripe-related files and configurations have been removed
โข You can always add Stripe back later if needed
๐ RevenueCat Integration Removed:
โข RevenueCat context and wrapper have been removed from _layout.tsx
โข You can always add RevenueCat back later if needed
โ ๏ธ Important Notes:
โข EAS project ID and owner have been cleared
โข Update your environment variables accordingly
๐ง What the Script Does
The script automatically:
- Cleans previous configuration and cache (removes .expo folder)
- Updates your app name, slug, and bundle identifier throughout the project
- Configures Stripe integration (asks if you want to use it)
- If No: Removes all Stripe files, dependencies, and configurations
- If Yes: Keeps Stripe integration for payments
- Configures RevenueCat integration (asks if you want to use it)
- If No: Removes RevenueCat from layout and cleans up
- If Yes: Keeps RevenueCat integration for subscriptions
- Updates supabase/config.toml with your bundle identifier
- Prepares the project for EAS initialization
๐ก Smart Integration Management
The script intelligently handles integrations:
- Stripe removal: Deletes 10+ files including contexts, components, Edge Functions, and assets
- RevenueCat removal: Cleans layout wrappers and configurations
- Dependency cleanup: Automatically uninstalls unused packages
- Configuration updates: Updates all relevant config files
This ensures your app only includes what you actually need, reducing bundle size and complexity.
๐๏ธ After Initialization
Run these commands in order:
# Install dependencies (clean up after removals)
npm install
# Generate native code
npx expo prebuild
# Initialize EAS
eas init
๐ฏ Next Steps Based on Your Choices
If you removed Stripe (answered No):
โ
Skip the Stripe setup page in the documentation
โ
Your app is lighter and doesn't include payment processing
โ
You can always add Stripe back later if needed
If you removed RevenueCat (answered No):
โ
Skip the RevenueCat setup page in the documentation
โ
Your app won't have subscription management
โ
You can always add RevenueCat back later if needed
If you kept both (answered Yes to both):
โ
Follow all setup steps in the documentation
โ
Configure environment variables for both services
โ
Your app will have full payment and subscription capabilities
๐ก Tip: The script has already done the heavy lifting for you! Only follow the documentation steps for the integrations you chose to keep.
๐ฏ Next Step
Continue to ๐๏ธ Supabase to set up your backend database.
๐ Smart Initialization Complete โ
Your app is customized and ready for development!