Enterprise
Archipelago Enterprise is designed for teams and organizations that need full control over their Flutter architecture toolkit. Everything in Pro, plus source code access, custom brick development, and dedicated support.
What Enterprise Includes
| Feature | Free | Pro | Enterprise |
|---|---|---|---|
| Core bricks | ✅ | ✅ | ✅ |
| Premium bricks | ❌ | ✅ | ✅ |
| CLI updates | ✅ | ✅ | ✅ |
| Priority support | ❌ | ✅ | ✅ |
| Brick source code | ❌ | ❌ | ✅ |
| Custom brick development | ❌ | ❌ | ✅ |
| Shared git repository | ❌ | ❌ | ✅ |
| Dedicated support channel | ❌ | ❌ | ✅ |
| Prebuilt CI runner image (Docker) — planned | ❌ | ❌ | ✅ |
| Blackbox session viewer — full + advanced features — planned | preview only | full | advanced (filesystem, video, compare) |
Shared Git Repository
Enterprise subscribers get access to the full brick source code through a shared GitHub repository. This is the same source used to build the official bricks, so you always have a reference implementation.
How Access Works
Subscription activation --- When your Enterprise subscription is activated, you receive a GitHub organization invitation to the
archipelagohqorg with access to thearchipelago-enterpriserepository.One shared repo --- All Enterprise subscribers share a single repository. This keeps everyone on the same codebase and makes upstream updates seamless.
Access revocation --- When your subscription expires or is cancelled, your GitHub access is automatically revoked within 24 hours.
WARNING
Do not commit sensitive or proprietary code directly to the shared repository. Fork it to your own organization first.
Fork & Customize
The real power of Enterprise is the ability to fork the source and customize bricks for your organization's specific needs.
Step 1: Fork the Repository
Fork archipelagohq/archipelago-enterprise to your organization's GitHub account:
# Using GitHub CLI
gh repo fork archipelagohq/archipelago-enterprise --org your-org --cloneStep 2: Customize Bricks
Once forked, you can modify any brick template:
- Change default directory structures
- Add organization-specific variables (e.g., analytics keys, API base URLs)
- Modify code generation patterns to match your team's conventions
- Add entirely new bricks following the Archipelago pattern
Step 3: Configure CLI to Use Your Fork
Point the CLI at your fork once — archipelago generate will use it for every subsequent run, no per-invocation flag required:
archipelago config set source git
archipelago config set repo https://github.com/your-org/archipelago-enterprise.git
archipelago config showThe first archipelago generate after this clones the fork into ~/.archipelago/git-cache/<slug>/. Later runs git fetch + reset so you always generate against the latest commit. Authentication is delegated to your local git config (credential helper / SSH key / gh auth).
If you want a one-off override without changing the persistent config, the --local-bricks <path> flag still works:
archipelago generate flutter_modular_monorepo \
--local-bricks ~/work/archipelago-enterprise \
--output ./my-new-appStep 4: Revert to Official Source
archipelago config set source r2The CLI immediately resumes downloading bricks from the official R2 distribution. Your brick_repo_url is preserved so you can switch back to git later.
Merging Upstream Updates
When new bricks or updates are released, you can pull them into your fork:
# Add upstream remote (one-time setup)
cd archipelago-enterprise
git remote add upstream https://github.com/archipelagohq/archipelago-enterprise.git
# Fetch latest changes
git fetch upstream
# Merge into your main branch
git checkout main
git merge upstream/mainIf you have customized bricks, you may encounter merge conflicts. Resolve them by keeping your customizations where they differ from upstream, and accepting upstream changes for new features or bug fixes.
TIP
We recommend merging upstream at least once per month to stay current with security patches and new features. Each brick is independently versioned, so changelogs clearly indicate what changed.
Team Management
Adding Team Members
Enterprise access is managed through GitHub organization permissions:
- Add team members to your GitHub organization
- Grant them access to the forked
archipelago-enterpriserepository - Each developer configures the CLI to use your fork
Access Levels
| Role | Permissions |
|---|---|
| Admin | Full repo access, manage team members, merge PRs |
| Developer | Clone, pull, push to feature branches, open PRs |
| Read-only | Clone and pull only (e.g., CI/CD systems) |
CI/CD Access
For automated pipelines, create a GitHub machine user or use a deploy key. Either approach works:
Persistent config (recommended — cleaner CI scripts):
archipelago config set source git
archipelago config set repo https://github.com/your-org/archipelago-enterprise.git
archipelago generate <brick> --output ...Per-invocation (when the CI runner already clones the fork as part of the job):
git clone https://github.com/your-org/archipelago-enterprise.git
archipelago generate <brick> --local-bricks ./archipelago-enterprise --output ...Custom Brick Development
Enterprise subscribers can create organization-specific bricks that follow Archipelago patterns. This ensures consistency across your team's projects.
For a comprehensive guide on creating Mason bricks, see the official Mason documentation on BrickHub.
Brick Structure
Every Archipelago brick follows the Mason brick format:
bricks/
your_custom_brick/
__brick__/ # Template files with Mustache variables
brick.yaml # Brick metadata and variables
CHANGELOG.md
README.mdCreating a New Brick
- Define the brick metadata in
brick.yaml:
name: your_custom_brick
description: Organization-specific feature module
version: 0.1.0
vars:
name:
type: string
description: Feature name
prompt: What is the feature name?
use_analytics:
type: boolean
description: Include analytics integration
default: true
prompt: Include analytics?- Create template files in the
__brick__/directory using Mustache syntax:
// __brick__/lib/{{name.snakeCase()}}/{{name.snakeCase()}}_module.dart
import 'package:injectable/injectable.dart';
@module
abstract class {{name.pascalCase()}}Module {
// Register your dependencies here
}- Test locally before pushing:
mason make your_custom_brick --name my_feature --use_analytics trueBest Practices
- Follow the API/Impl split when your brick will be consumed by other features or needs vendor swapping
- Use the Impl + Noop pattern for debug/release stripping via
build_prepare - Keep variables minimal --- only expose what genuinely varies between projects
- Write a CHANGELOG --- other team members need to know what changed between versions
- Test the generated output --- run
dart analyzeand tests on the generated code before publishing
Enterprise Roadmap
The features below are planned as Enterprise-tier value adds. They are not available today; tracking issues link to the implementation plans. Subscribed Enterprise customers will get access at no additional cost as these ship.
Prebuilt CI runner image (Docker)
A private GHCR Docker image (ghcr.io/banua-coder/archipelago-flutter-ci) with Flutter SDK, Android SDK, JDK 17, Ruby + Fastlane, mason_cli, Melos, AWS CLI, and gh CLI preinstalled. Enterprise customers use it in four ways:
- GitHub-hosted runners — single
container:directive in generated workflows; cuts cold-start from ~5 min to ~30s - GitLab CI —
image:directive; same image, GitLab variant adds Docker-in-Docker tooling - Self-hosted GitHub Actions runners — pre-pulled on the runner host
- Developer machines —
docker run -it -v $PWD:/work ...gives every dev the canonical Flutter env that matches CI byte-for-byte
A new CLI command archipelago enterprise setup-runner-image will issue a per-account, short-lived read:packages PAT bound to the customer's Enterprise license and write the Docker login config. Free/Pro tier generated workflows continue using subosito/flutter-action and the other marketplace actions — the brick template uses a useRunnerImage Mason variable to switch.
Blackbox Viewer — advanced features
The Blackbox Viewer is an Archipelago paid web product (planned at blackbox.banuacoder.com) that visualizes .bbx session bundles captured by the app_blackbox Flutter package. Tier-gated:
| Capability | Free | Pro | Enterprise |
|---|---|---|---|
| Session metadata | full | full | full |
| Metric charts (battery, CPU, mem, FPS, jank, thermal, network) | last 5 min, watermarked | full | full |
| Custom events table | first 10, watermarked | full | full |
| JSON / CSV export per panel | — | yes | yes |
| Filesystem event timeline | — | — | yes |
| Filesystem snapshot diff tree | — | — | yes |
| Video player with frame scrubbing + chart sync | — | — | yes |
| Multi-bundle comparison | — | — | yes |
| Shareable session links | — | — | yes |