Project Structure
Map the generated Flutter project and identify the source of truth for each concern.
The CLI generates a profile-specific project rather than exposing the private source repository.
Generated root
my-flutter-app/
├── mobile-app/ # Shared Flutter/Dart source
├── landing-page/ # Guest-only TanStack Start marketing/legal site
├── api-collections/ # Account-only API examples
├── admin-panel/ # Account-only Laravel/Filament + landing/SEO service
├── api-backend/ # Account-only Go mobile API
├── .bowlerkit/project.json # Framework/profile manifest
├── AGENTS.md # Project-local agent instructions
├── BOWLERKIT.md # Generated architecture/validation guide
└── docs/
├── AI-GUEST-CLEANUP.md
└── DEEP-CLEANUP-MAP.mdGuest archives omit api-collections/, admin-panel/, and api-backend/, but include the standalone landing-page/. Account archives use the public landing and SEO routes built into admin-panel and omit the duplicate standalone app.
Flutter app
mobile-app/
├── lib/
│ ├── config/ # profile, app mode, notifications, billing
│ ├── constants/ # API paths, version, deep-link scheme
│ ├── bootstrap/ # Account session/push/sync wiring
│ ├── helpers/ # storage, logs, local/remote notifications
│ ├── models/ # Freezed/JSON models and generated files
│ ├── pages/ # auth, wizard, home, profile, settings, billing
│ ├── providers/ # Riverpod state and generated providers
│ ├── services/ # Dio/API, FCM, history, RevenueCat
│ ├── components/ # UI/theme/design tokens
│ ├── l10n/ # ARB and generated localizations
│ ├── app_router.dart # AutoRoute declarations
│ └── main.dart # startup/providers/router
├── assets/ # icons, splash, images, fonts
├── android/ and ios/ # native projects/configuration
├── pubspec.yaml
├── flutter_launcher_icons.yaml
├── flutter_native_splash.yaml
├── l10n.yaml
└── analysis_options.yamlGenerated .g.dart, .freezed.dart, and l10n/generated/ files come from build_runner/Flutter generation. Update annotations/source and regenerate instead of editing generated output.
Profile source of truth
lib/config/bowlerkit_profile.dart— generatedaccount/guestvalue.lib/config/app_mode.dart—isAccountOnlineandisGuestLocalgates..bowlerkit/project.json— selected framework/profile and cleanup baseline.
Guest must retain Paywall/AdMob, local settings, local help/about, and local notification behavior; it must not perform Account API calls, remote preference sync, FCM token sync, or server entitlement checks.
Account services
Laravel owns migrations, Sanctum auth issuance, uploads, webhooks, admin resources, and the Account profile's public landing/SEO routes. Go validates Laravel tokens and serves protected /api/v1/app/* resources using the shared PostgreSQL schema; Go never runs migrations.
See Core Concepts, Backend Architecture, and the generated BOWLERKIT.md before changing cross-service behavior.
