Skip to content

Frequently Asked Questions ​

What is Archipelago? ​

Archipelago is a Flutter boilerplate generator and CLI toolkit. It generates production-ready Flutter monorepo projects with battle-tested architecture patterns, pre-configured CI/CD, and drop-in feature modules. The name is inspired by the Indonesian archipelago --- each feature module is a self-contained island, connected by shared infrastructure.

How is it different from other Flutter starters? ​

Most Flutter starters are static templates that become outdated the moment you clone them. Archipelago is different in three ways:

  1. CLI-driven generation --- You generate code through the archipelago CLI using Mason bricks. Each brick is independently versioned and updated.
  2. Modular by design --- You pick only the features you need. Want auth but not payments? Generate just the auth module.
  3. Production patterns --- The architecture comes from real-world experience building apps at scale in Southeast Asian tech companies serving millions of users.

Do I need to pay to use the CLI? ​

No. The CLI and the Free bricks cost nothing. A Free account can scaffold 3 projects per month. Pro ($79 one-time) adds unlimited scaffolds and the Pro bricks, such as the in-app debugger, AI chat and the coverage and size tooling. Enterprise ($199 one-time) adds every brick, including the Blackbox recorder and cloud sync, and access to the brick source repository. Payment goes through Lemon Squeezy. See the pricing page and Account & Billing.

How do I get access to the Enterprise GitHub repository after purchase? ​

After purchasing the Enterprise plan:

  1. Sign in to the Archipelago dashboard.
  2. Open Profile and fill in your GitHub username. This is the account that receives the invitation — make sure it matches your GitHub login (no @ prefix, no spaces).
  3. The system sends a repository invitation within seconds. Accept it from your GitHub email or directly at https://github.com/archipelagohq/archipelago-enterprise/invitations.
  4. Once accepted, go back to the dashboard and click Generate License Key if you haven't yet. The "Access Enterprise Repository" link will then resolve to your authorised view of the repo.

Already had the license generated but missed the username step? Save your GitHub username in profile settings and the invite is sent immediately — no need to regenerate the license.

If you change your GitHub handle later, just update the field — the new account is invited and the old one is revoked at the same time.

What Flutter and Dart versions are supported? ​

Archipelago targets the latest stable Flutter SDK. Generated projects need Flutter 3.47.0 or later and Dart 3.13.0 or later. The CLI itself needs Dart 3.12.0 or later. Each generated package states its own floor in its pubspec.yaml.

Can I add features to an existing project? ​

Yes. You can use archipelago generate feature_monorepo_skeleton (or any feature brick, such as archipelago generate auth_sdk) to add individual feature modules to an existing Archipelago project at any time. The CLI is designed for incremental adoption --- you don't have to generate everything upfront.

How do I update bricks? ​

The CLI checks for brick updates automatically (with a configurable TTL cache). To manually check and update:

bash
# Check and download updates for all cached bricks
archipelago brick update

# Update the CLI itself to the latest version
archipelago update

Each brick follows independent semver versioning, so updates are granular and predictable.

What if I need a feature that doesn't exist? ​

You have several options:

  1. Request it --- Ask in the Discord community or email contact@banuacoder.com. Feature requests from Pro and Enterprise subscribers are prioritized.
  2. Build it yourself --- Enterprise subscribers can create custom bricks following Archipelago patterns. See the Enterprise guide for details.
  3. Share it --- If you build something useful, tell us on Discord. Good ideas become official bricks.

How does the config flow work? ​

Archipelago uses a two-phase initialization pattern:

  1. Pre-launch (blocking) --- Dependency injection, route registration, and other setup that must complete before the app starts.
  2. Post-launch (non-blocking) --- Analytics, feature flags, remote config, and other services that can initialize in the background.

This ensures your app launches fast while still setting up everything it needs. The generated code includes clear comments marking each phase.

Can I use it in CI/CD? ​

Yes. The generated project includes CI/CD configurations out of the box:

  • GitHub Actions workflows for build, test, and deploy
  • GitLab CI pipeline configurations
  • Fastlane for iOS and Android build/deploy automation
  • A monorepo toolkit at devtools/ with scripts for affected package detection, coverage aggregation, and build preparation

The generated project is fully CI-friendly with no runtime CLI dependency.

Is the generated code mine? ​

Yes. Once generated, the code is yours. There is no lock-in, no runtime dependency on Archipelago, and no license restrictions on the generated output. You can modify, redistribute, and use it in commercial projects without attribution.

My iOS app stops at launch on iOS 27. How do I fix it? ​

The log shows "UIScene lifecycle is required on iOS 27 and later". iOS 27 does not start an app unless ios/Runner/Info.plist has a UIApplicationSceneManifest entry. Projects generated before the fix have no such entry. New projects have it.

To fix an existing project:

  1. Add the UIApplicationSceneManifest block that flutter create writes to ios/Runner/Info.plist. Its UISceneDelegateClassName is $(PRODUCT_MODULE_NAME).SceneDelegate, and ios/Runner/SceneDelegate.swift (a FlutterSceneDelegate) is already in your project. Every flavor uses this one Info.plist.
  2. Copy the new ios/Runner/AppDelegate.swift from the brick and keep your own additions. With the scene lifecycle, deeplinks come in through scene callbacks, and the new AppDelegate sends them to DeeplinkService.

See Deeplink Handling for the details.

How do I get support? ​

Support depends on your plan:

TierSupport Channel
FreeCommunity Discord
ProPriority support through the in-app support ticket system
EnterpriseHighest-priority support through the in-app support ticket system

For all tiers, you can also reach us at contact@banuacoder.com.