Skip to content

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

Step 1: Create the Project

Run the create command to scaffold a new monorepo:

bash
archipelago create my_app

The 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 workflows

Step 3: Run the App

Navigate to the app and run it:

bash
cd my_app/apps/my_app
flutter run

The 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.dart

What'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.

Built by Banua Coder