Archipelago

π 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
- π Documentation (Coming Soon)
- π¬ Discord Community
- π Issue Tracker
Built with β€οΈ for the Flutter community
Libraries
- archipelago_cli
- archipelago_cli, A Very Good Project created by Very Good CLI.
- bundle/feature_monorepo_skeleton_bundle
- bundle/flutter_l10n_package_bundle
- bundle/flutter_modular_monorepo_bundle
- bundle/flutter_ui_kit_bundle