Creating Your First Project
What you'll learn
- Scaffolding a new Flutter monorepo with Archipelago
- Understanding the generated project structure
- Running the generated app for the first time
- Exploring the included developer tooling
Prerequisites
- Archipelago CLI installed and authenticated (see Installing & Setting Up)
Step 1: Create the Project
Run the create command to scaffold a new monorepo:
bash
archipelago create my_appThe CLI walks you through an interactive configuration:
- App name — Used for package naming and display
- Organization — Reverse domain (e.g.,
com.example) - Platforms — iOS, Android, Web, macOS, Linux, Windows
- Initial features — Select from available bricks
Step 2: Explore the Structure
The generated project follows a modular monorepo layout:
my_app/
├── apps/
│ └── my_app/ # Main Flutter app (shell)
├── packages/
│ ├── core/ # Shared infrastructure
│ │ ├── network_sdk/ # HTTP client
│ │ ├── monitoring_sdk/ # Observability
│ │ └── ui_kit/ # Design system
│ └── features/ # Feature modules
│ └── auth/ # Auth feature (if selected)
├── devtools/ # Monorepo toolkit scripts
├── fastlane/ # Build automation
└── .github/ # CI/CD workflowsStep 3: Run the App
Navigate to the app and run it:
bash
cd my_app/apps/my_app
flutter runThe shell app bootstraps all registered features through the two-phase initialization flow.
Step 4: Explore Developer Tooling
The devtools/ directory contains scripts for monorepo management:
bash
# Check which packages are affected by your changes
dart run devtools/affected.dart
# Run tests with coverage
dart run devtools/coverage.dart
# Validate dependency graph
dart run devtools/depgraph.dartWhat's Included
Every generated project comes with:
- GetIt dependency injection — Dual-GetIt pattern pre-configured
- Router integration — Auto-registered feature routes
- CI/CD templates — GitHub Actions workflows ready to go
- Fastlane configs — iOS and Android build lanes
- Linting rules — Strict analysis options across all packages
Next Steps
Learn how to add new features to your project in Generating Features.