Archipelago

Flutter Version License

🏝 About Archipelago

Archipelago is a sophisticated Flutter starter kit designed for scalable applications using a monorepo architecture. Like its namesakeβ€”a chain of islands connected by waterβ€”Archipelago connects multiple Flutter packages and modules into a cohesive, maintainable ecosystem.

✨ Key Features

πŸ— Monorepo Structure

  • Mason-powered Templates: Standardized package generation for consistency across your project
  • Melos Workflow: Streamlined management of multiple packages with efficient versioning and publishing
  • Smart Dependencies: Optimized internal package dependencies with proper versioning

πŸ“¦ Pre-configured Packages

  • Core Module: Essential utilities, helpers, and shared functionality
  • UI Kit: Ready-to-use custom widgets and design system
  • Navigation: Pre-configured routing system
  • Network: HTTP client setup with interceptors and error handling
  • State Management: Scalable state management solution

πŸ›  Developer Experience

  • Code Generation: Automated code generation for models, APIs, and more
  • Testing Setup: Pre-configured unit, widget, and integration testing
  • CI/CD Templates: Ready-to-use continuous integration and deployment workflows
  • Documentation: Coming Soon
  • Hot Reload Support: Optimized for Flutter's hot reload across all packages
  • Linting Rules: Consistent code style enforcement across packages

πŸš€ Getting Started

# Install archipelago globally
dart pub global activate archipelago_cli

# Initialize Archipelago or
archipelago start

# Setup monorepo workspace
archipelago initialize-monorepo

Next, you can run the app by using existing vscode or Android Studio configuration.

πŸ“ Architecture

Archipelago follows a modular architecture pattern:

../
β”œβ”€β”€ app/                   # Application projects
β”‚   β”œβ”€β”€ mobile/            # Main mobile application
β”‚   └── widgetbook/        # Example app showcasing ui kit
β”œβ”€β”€ core/                  # Core utilities and helpers
β”œβ”€β”€ features/              # Feature packages
β”œβ”€β”€ packages/              # Shared packages
β”‚   β”œβ”€β”€ ui_kit/            # Shared UI components
β”œβ”€β”€ plugins/               # Shared plugins
β”œβ”€β”€ scripts/               # Development tools
β”œβ”€β”€ shared/                # Shared/common config/packages
β”‚   β”œβ”€β”€ config/             # Shared configuration (env, flavor)
β”‚   β”œβ”€β”€ dependencies/      # Shared dependencies (blocs, etc.)
β”‚   └── l10n/              # Shared localization package
└── melos.yaml             # Monorepo configuration

🎯 Use Cases

Archipelago is perfect for:

  • 🏒 Enterprise applications requiring scalable architecture
  • πŸš€ Startups planning to scale their applications
  • πŸ‘₯ Teams working on multiple related Flutter projects
  • πŸ›  Projects requiring consistent development patterns
  • πŸ“± Applications with multiple flavors or white-label solutions

πŸ’‘ Philosophy

Archipelago embraces these core principles:

  • Modularity: Independent yet connected packages
  • Scalability: From small apps to enterprise solutions
  • Maintainability: Clear structure and patterns
  • Developer Experience: Efficient workflows and tools
  • Best Practices: Industry-standard Flutter patterns

πŸ“„ License

Archipelago is available under the MIT License. See the LICENSE file for more info.

πŸ™‹β€β™‚οΈ Support


Built with ❀️ for the Flutter community