arise 1.1.0
arise: ^1.1.0 copied to clipboard
A modular CLI for bootstrapping production-ready Flutter projects with architecture, state management, routing, and networking.
Arise #
A modular CLI for bootstrapping production-ready Flutter projects.
Arise helps you create Flutter projects with your preferred architecture, state management, routing, networking, storage, and other project-level tooling without manually setting up the same structure every time.
Why Arise? #
Starting a Flutter project is easy.
Setting up a consistent project structure isn't.
Arise handles the repetitive setup while keeping the generated project transparent and fully under your control.
With Arise, you can:
- Create Flutter projects through an interactive CLI
- Choose your preferred project architecture
- Configure state management, routing, networking
- Generate architecture-aware feature scaffolds inside existing projects
- Skip configuration when you just need a standard Flutter project
- Keep project configuration in
.arise.yamlfor future Arise commands
Quick Start #
Activate Arise:
dart pub global activate arise
Supported Setup #
Architecture #
- Clean Architecture
- MVVM
- MVC
- MVP
- None
State Management #
- Riverpod
- Provider
- Bloc
- GetX
- None
Routing #
- GoRouter
- AutoRoute
- None
Networking #
- Dio
- None
Interactive Setup #
Run:
arise create
Arise walks you through the project configuration and generates the Flutter project based on your selections.
Example flow:
Project name: my_app
Architecture:
❯ Clean Architecture
MVVM
MVC
MVP
None
State Management:
❯ Riverpod
Provider
Bloc
GetX
None
Routing:
❯ GoRouter
AutoRoute
None
Only the project name is required. Other configuration options can be skipped by selecting None.
Skip Setup #
If you don't need Arise's project configuration, use:
arise create --skip my_app
This skips the interactive configuration and creates a standard Flutter project.
Commands #
arise create #
Creates a new Flutter project.
arise create
Starts the interactive project setup.
You can also skip the configuration:
arise create --skip my_app
Use the command help for all available options:
arise create --help
arise generate feature #
Generates a feature scaffold inside an existing Arise project.
Run from the project root (where .arise.yaml exists):
arise generate feature auth
Arise reads .arise.yaml to determine the architecture and creates the matching layer structure:
# Clean Architecture
lib/features/auth/
├── data/
├── domain/
└── presentation/
# MVVM
lib/features/auth/
├── model/
├── view/
└── viewmodel/
Feature names are normalised automatically:
arise generate feature User-Profile
# → creates lib/features/user_profile/
If the feature directory already exists, Arise refuses to overwrite it by default:
arise generate feature auth
# Feature "auth" already exists at lib/features/auth.
# Use --force to overwrite.
arise generate feature auth --force # explicit overwrite
Use --template to select an alternative variant when available (default: minimal):
arise generate feature auth --template minimal
Note: Only the
minimaltemplate is available in v1.1. Additional templates (standard,full) are planned for future releases.
List available feature templates and highlight active project architecture:
arise generate feature --list
See all options:
arise generate feature --help
Global Help #
To see all available commands:
arise --help
How It Works #
Arise builds your project in a few steps:
arise create
↓
Project Configuration
↓
Flutter Project Creation
↓
Template Selection
↓
Module Generation
↓
Package Installation
↓
Ready Flutter Project
Arise uses YAML-driven templates rather than hardcoding project structures into the CLI.
Each module can define its own folders, packages, and template files. This keeps the generator extensible while leaving the generated Flutter project fully editable.
Template System #
Templates are organized by module:
templates/
└── modules/
├── architecture/
├── state_management/
├── routing/
├── networking/
└── feature/
├── clean/
│ └── minimal/
├── mvvm/
│ └── minimal/
├── mvc/
│ └── minimal/
└── mvp/
└── minimal/
A module contains its configuration and, when required, files that are copied into the generated project:
module/
├── config.yaml
└── files/
For example:
architecture/
└── clean/
├── config.yaml
└── files/
├── lib/
│ ├── main.dart
│ └── app.dart
└── test/
└── widget_test.dart
Template variables such as:
{{project_name}}
are resolved while the project is generated.
Requirements #
Before using Arise, make sure you have:
- Dart SDK
- Flutter SDK
- Flutter available in your system
PATH
Verify your Flutter installation with:
flutter doctor
Installation #
Requirements #
Before installing Arise, make sure the following are available:
- Dart SDK
- Flutter SDK
- Git
Verify Flutter:
flutter doctor
Verify Dart:
dart --version
Install Arise #
Install Arise globally using Dart:
dart pub global activate arise
Verify the installation:
arise --help
Command Not Found #
If installation succeeds but your terminal reports:
command not found: arise
Dart's global executable directory may not be in your PATH.
macOS / Linux #
Add the following to your shell configuration:
export PATH="$PATH:$HOME/.pub-cache/bin"
For Zsh:
echo 'export PATH="$PATH:$HOME/.pub-cache/bin"' >> ~/.zshrc
source ~/.zshrc
For Bash:
echo 'export PATH="$PATH:$HOME/.pub-cache/bin"' >> ~/.bashrc
source ~/.bashrc
Then verify:
which arise
arise --help
Create Your First Project #
Interactive setup:
arise create
Or skip Arise configuration:
arise create --skip my_app
Then:
cd my_app
flutter run
Update Arise #
To install the latest available version:
dart pub global activate arise
Uninstall #
dart pub global deactivate arise