Quick Start
Create and run a BowlerKit Flutter project with the Account or Guest profile.
This guide assumes the prerequisites are installed and the BowlerKit CLI is available.
The CLI creates a configured project from the licensed distribution. You do not clone the private repository.
Create the project
Run the CLI
bowler create my-flutter-appSelect Flutter, then choose Account or Guest. The CLI asks whether it should install dependencies after extraction.
Prepare the mobile app
cd my-flutter-app/mobile-app
flutter pub get
dart run build_runner build --delete-conflicting-outputs
flutter runUse flutter run -d <device> to select a target. Account projects point lib/config/app_env.dart (API_BASE_URL) at a reachable Laravel/gateway host root; Endpoints.buildApiPath adds /api/v1. Guest projects do not need a backend URL.
Account profile setup
1. Configure Laravel
cd my-flutter-app/admin-panel
cp .env.example .env
composer install
npm install
php artisan key:generateSet PostgreSQL, Redis, mail, Firebase, and RevenueCat values. The template's .env.example uses PostgreSQL—not SQLite—as the default database contract.
2. Migrate and seed
php artisan migrate --seed
php artisan serveLocal seed fixtures:
- Super admin:
[email protected]/superapp - Test user:
[email protected]/user
Use these only for local development and replace/remove them before production. The Filament panel is at http://localhost:8000/admin. The same admin-panel also serves the Account profile's public landing page and SEO surface at / plus the built-in theme routes; customize resources/js/Pages/Home.tsx and the theme files.
3. Start Go when needed
cd ../api-backend
cp .env.example .env
# Match Laravel's DB_*, REDIS_*, and rate-limit namespace.
go mod download
go run ./cmd/apiGo validates Laravel Sanctum tokens and serves protected /api/v1/app/* resources. It does not issue tokens, run migrations, own uploads/webhooks, or handle destructive account operations.
Guest profile setup
Guest archives omit admin-panel/ and api-backend/, but include the standalone landing-page/ app for marketing, legal pages, and SEO.
- Account routes and network work are blocked by
isGuestLocal. - Local settings, local notifications, static help/about, Paywall/RevenueCat, and AdMob remain.
- Store purchases and restore can still require internet access.
- Optional deep cleanup is documented in generated
docs/AI-GUEST-CLEANUP.md.
Verify
- Launch the Flutter app.
- Account: register/sign in and confirm the user loads from
/api/v1/app/me. - Guest: confirm the app opens without login or a backend.
- If Go is enabled, check
/healthand/api/v1/healthbefore routing mobile traffic to it.
Troubleshooting
Connection refused
- 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 put /api/v1 in the API_BASE_URL host root.
Code generation
dart run build_runner clean
dart run build_runner build --delete-conflicting-outputsDatabase reset
cd admin-panel
php artisan migrate:fresh --seedOnly run this against a disposable local database.
