FAQ
Frequently asked questions about the BowlerKit Expo project and its Account/Guest profiles.
How do I create an Expo project?
Use the BowlerKit CLI rather than cloning the private source repository:
bowler create my-expo-appSelect Expo, then choose Account or Guest. See Up and Running.
What are the local seed credentials?
php artisan migrate --seed creates development fixtures:
- Super admin:
[email protected]/superapp - Test user:
[email protected]/user
They are not production credentials. Change/remove them before deployment.
Which database does the backend use?
The Laravel .env.example is configured for PostgreSQL plus Redis. Set DB_* and REDIS_* in admin-panel/.env, then point Go's .env at the same services. SQLite is not the shipped default.
How do I connect the mobile app locally?
Set EXPO_PUBLIC_API_URL to the host root; the mobile client appends /api/v1:
- Android emulator:
http://10.0.2.2:8000for Laravel. - iOS simulator:
http://127.0.0.1:8000orhttp://localhost:8000. - Physical device: your computer's LAN IP.
Do not include /api/v1 in the environment variable. Guest projects do not require an API URL.
Can I switch to Supabase or PocketBase?
There is no backend picker in the CLI. Account integrations target Laravel plus the shared Go API contract. Replacing the backend requires changing the API client, auth, profile gates, and server contract yourself.
How do Google and Apple sign-in work?
Google uses @react-native-google-signin/google-signin and requires a Web Client ID plus matching native Firebase files. Apple uses expo-apple-authentication and its Apple capability/configuration. Both require a native development/release build, not only Expo Go. See Authentication.
How do I clear Metro's cache?
cd mobile-app
pnpm start -- --clearHow do I reset a local database?
Only in a disposable local database:
cd admin-panel
php artisan migrate:fresh --seedNever run this against production.
How do I configure icons and splash screens?
Edit mobile-app/app.config.ts, place assets under assets/images/, then regenerate native projects:
cd mobile-app
pnpm prebuild:cleanSee Assets Configuration.
How do I configure push notifications?
Account projects register a native/FCM token from onboarding or notification settings and sync it to /api/v1/app/device-tokens. Add the matching Firebase files and the Laravel service-account key at admin-panel/storage/app/firebase-auth.json. Guest projects do not register FCM tokens. See Push Notifications.
Why does a notification tap not open a screen?
The current response listener logs the tap but does not route arbitrary payloads. Add an explicit allowlisted navigation contract before relying on notification deep links.
How does privacy synchronization work?
Account preference changes are debounced and sent to /api/v1/app/preferences; notification preferences use /api/v1/app/notifications/preferences. Guest preferences are local-only. See Settings.
How do I build for production?
From mobile-app/:
eas build --platform android --profile production
eas build --platform ios --profile production-ipaReview eas.json, replace demo API URLs and public SDK IDs, and test a native build before submission. See Play Store Assets & Publishing.
Does the template include crash reporting?
No. The Expo template includes a development-only tagged logger but does not initialize Sentry, Firebase Analytics, or Crashlytics. Add and document a crash service explicitly if needed.
What is Guest mode?
Guest is local-first: no account backend bundle, auth/API calls, remote preference sync, FCM token sync, or server entitlement checks. Paywall/RevenueCat, AdMob, local settings, and static help/about remain. Optional deep cleanup is documented in the generated docs/AI-GUEST-CLEANUP.md.
For CLI/toolchain failures run bowler doctor expo; for API ownership and route details see Backend Architecture and API Routes.
