flutter_modular_monorepo Free
A comprehensive Flutter monorepo template with modular architecture, dual-GetIt DI, FeatureSDK self-registration, two-phase initialization, and build-time dependency stripping. Generates a full Dart workspace with Melos, Fastlane, and CI/CD workflows.
Version: 2.0.0
Variables
| Variable | Type | Default | Description |
|---|---|---|---|
| appName | string | MyApp | The name of your application |
| organization | string | MyCompany | The name of your organization |
| domain | string | com | Your organization's top-level domain |
| prefix | string | App | Prefix for project components (e.g., 'App' for AppButton) |
| prefixCasing | enum (upperCase, pascalCase) | pascalCase | Casing style for the prefix |
| gitProvider | enum (github, gitlab) | github | Git provider for CI/CD workflows |
| networkLibrary | enum (dio, http) | dio | HTTP client library |
| isUsingWebSocket | boolean | false | Include WebSocket SDK |
| websocketLibrary | enum (dart, phoenix) | dart | WebSocket library (if using WebSocket) |
| isUsingFirebase | boolean | false | Using Firebase |
| isUsingAnalytics | boolean | false | Include Analytics SDK |
| isUsingFeatureFlags | boolean | false | Include Feature Flags SDK |
| stateManagement | enum (bloc, provider, riverpod) | bloc | State management solution |
| includeGenerated | boolean | false | Include generated files in Git |
Usage
Interactive
bash
archipelago generate flutter_modular_monorepoNon-interactive (CI)
bash
archipelago generate flutter_modular_monorepo --config my_config.jsonConfig Template
json
{
"@appName": "The name of your application",
"appName": "MyApp",
"@organization": "The name of your organization",
"organization": "MyCompany",
"@domain": "Your organization's top-level domain",
"domain": "com",
"@prefix": "Prefix for project components (e.g., 'App' for AppButton)",
"prefix": "App",
"@prefixCasing": "Casing style for the prefix (upperCase | pascalCase)",
"prefixCasing": "pascalCase",
"@gitProvider": "Git provider for CI/CD workflows (github | gitlab)",
"gitProvider": "github",
"@networkLibrary": "HTTP client library (dio | http)",
"networkLibrary": "dio",
"@isUsingWebSocket": "Include WebSocket SDK",
"isUsingWebSocket": false,
"@websocketLibrary": "WebSocket library if using WebSocket (dart | phoenix)",
"websocketLibrary": "dart",
"@isUsingFirebase": "Using Firebase",
"isUsingFirebase": false,
"@isUsingAnalytics": "Include Analytics SDK",
"isUsingAnalytics": false,
"@isUsingFeatureFlags": "Include Feature Flags SDK",
"isUsingFeatureFlags": false,
"@stateManagement": "State management solution (bloc | provider | riverpod)",
"stateManagement": "bloc",
"@includeGenerated": "Include generated files in Git",
"includeGenerated": false
}Generated Structure
├── .claude/commands/ # Claude Code slash commands
├── .github/workflows/ # CI/CD workflows (if GitHub)
├── apps/
│ └── {app_name}/
│ ├── fastlane/ # iOS/Android build automation
│ ├── launcher/ # App icons per flavor
│ ├── splash/ # Splash screen assets
│ ├── lib/
│ │ ├── app.dart
│ │ ├── bootstrap.dart
│ │ ├── main.dart
│ │ ├── main_development.dart
│ │ ├── main_staging.dart
│ │ ├── di/injector.dart
│ │ ├── host/
│ │ │ ├── host_app_widget.dart
│ │ │ └── initializers/
│ │ └── router/app_router.dart
│ ├── flavorizr.yaml
│ ├── flutter_launcher_icons-*.yaml
│ ├── flutter_native_splash.yaml
│ └── pubspec.yaml
├── shared/
│ ├── feature_sdk/ # FeatureSDK base + registry
│ ├── locale_core/ # Shared locale state
│ └── router_registry/ # Route registration
├── features/ # Feature modules
├── infrastructure/ # Infrastructure SDKs
├── packages/ # Shared packages
├── utilities/ # Utility packages
├── devtools/ # Monorepo toolkit
├── build_prepare.yaml # Build-time dependency stripping
├── flavors.yaml # Flavor configuration
├── pubspec.yaml # Workspace root
└── analysis_options.yaml