FAQ
Frequently asked questions about the BowlerKit Expo edition.
General Questions
What are the default admin credentials?
By default, the database seeder creates an admin account with the following credentials:
- Email:
admin@example.com - Password:
password
You can access the admin panel at http://localhost:8000/admin.
How do I change the backend database?
The boilerplate uses SQLite by default. To use MySQL, PostgreSQL, or MariaDB:
- Update the
DB_CONNECTION,DB_HOST,DB_PORT,DB_DATABASE,DB_USERNAME, andDB_PASSWORDin youradmin-panel/.env. - Run
php artisan migrate --seed. - Update the database connection in
api-backend/.envto point to the same database.
How do I clear the Metro cache?
If you're experiencing strange build errors or assets aren't updating, try clearing the cache:
npx expo start --clearHow do I reset everything?
If you want to start from scratch with the database:
cd admin-panel
php artisan migrate:fresh --seed1. Setup & Configuration
How do I connect my Expo app to the local backend?
Mobile applications cannot use localhost to access a backend running on your computer.
- Android Emulator: Use the IP
http://10.0.2.2:8000for the admin-panel orhttp://10.0.2.2:8080for the api-backend. - iOS Simulator: You can use
http://localhost:8000(admin-panel) orhttp://localhost:8080(api-backend). - Physical Device: Use your computer's local IP address (e.g.,
http://192.168.1.5:8000). Make sure you have updatedEXPO_PUBLIC_API_URLin themobile-app/.envfile.
How do I switch the backend from Laravel to Supabase/Pocketbase?
BowlerKit uses a fixed backend architecture with a Laravel admin-panel and Go api-backend. There is no backend framework picker.
How do I setup Google OAuth on Android and iOS?
You need to register your app in the Google Cloud Console, create OAuth Client IDs for each platform, and enter the webClientId into your Firebase/Auth configuration. Learn more.
2. Customization & Branding
How do I change the logo, splash screen, and app icon automatically?
We provide a CLI tool to process assets automatically. Please follow the full guide at Assets Configuration.
How do I add a new color theme to the Design Tokens?
Edit the design tokens file at mobile-app/constants/design-tokens.ts. You can add a new theme object and register it in the ThemeProvider. See the Customization Guide.
How do I change the Package Name (Bundle ID)?
Manually change it in app.json in the expo.android.package and expo.ios.bundleIdentifier fields, then run npx expo prebuild --clean. Full instructions are in the Rename Package Guide.
3. Push Notifications
How do I get the correct google-services.json and GoogleService-Info.plist?
These files are obtained from the Firebase Console after you register your Android and iOS Apps within your Firebase project. Follow the steps in the Push Notifications Guide.
Where should I put the FCM service-account.json in the admin-panel?
Place the file at admin-panel/storage/app/firebase-auth.json. Ensure this path matches the one called in NotificationSenderService.php.
Why don't push notifications appear when the app is in the background/terminated?
Ensure you have configured "Background Modes" in iOS and that the expo-notifications handler is registered at the root layout.
4. Admin Panel & API Backend
How do I add a new column to the user profile and display it in Filament Admin?
- Create a new migration:
php artisan make:migration add_field_to_users_table. - Update the
User.phpmodel in the$fillableproperty. - Add the component in
app/Filament/Resources/UserResource.php.
How do I setup an email sender (SMTP/Mailgun/SES)?
Update the MAIL_* configuration in the admin-panel/.env file. This will automatically enable the Forgot Password feature.
How does 'Privacy Settings' synchronization from Mobile to Database work?
The app sends a request to /api/v1/user/settings which is then saved to the settings JSON column in the users table.
5. Deployment & Production
How do I build the app for Production using EAS?
Run the command:
eas build --platform allEnsure eas.json is configured. Details here.
Is the draft Privacy Policy provided sufficient for the Play Store?
The draft in Privacy Policy is a baseline template. You must customize it with your app's specific data practices.
6. Multi-Language (i18n)
How do I add a new language to the mobile app?
Add a new JSON file in mobile-app/locales/ and register it in the i18next configuration.
Are mobile translations automatically synced with the backend?
No. You need to manually align translation keys between the frontend and backend.
7. General Troubleshooting
Why doesn't my landing page appear in the documentation sidebar?
Ensure the .mdx file is registered in the meta.json file in the corresponding folder.
How do I fix 401/Unauthorized errors after logging in?
Check if the Sanctum token is being sent correctly in the Authorization header.
