fluttermeup 2.1.1 copy "fluttermeup: ^2.1.1" to clipboard
fluttermeup: ^2.1.1 copied to clipboard

A Flutter CLI generator for Riverpod + GoRouter projects. Scaffolds complete architectures, dynamic models, repositories, and auto-wires routing instantly.

🚀 FlutterMeUp (FMU) Generator v2.1.0 #

A lightning-fast, interactive CLI tool designed to instantly scaffold production-ready Riverpod, GoRouter, and Drift (SQLite) architectures for Flutter projects.

Stop wasting hours manually creating folders, writing repetitive Riverpod boilerplate, or wiring up GoRouter paths. Run a single command and jump straight into building features for your Android, iOS, or Windows desktop apps using a clean, feature-first architecture.

⚠️ Note to v1.x Users: Version 2.1.0 is a complete rewrite. We have migrated from GetX to Riverpod + GoRouter + Drift. If you need the legacy GetX generator, please specify ^1.0.0 in your pubspec or global activation.


📦 Installation #

You can install FMU globally on your machine (recommended) or lock it to a specific project as a dev dependency so your whole team shares the exact same version.

This allows you to use the standalone fmu command anywhere on your computer.

dart pub global activate fluttermeup

Ensure your system path is configured for global pub packages, and that you are using Dart SDK >=3.0.0.

Option B: Project-Level Installation (Dev Dependency) #

Navigate to your existing Flutter project and run:

flutter pub add dev:fluttermeup

If you use this method, you must prefix all generator commands with dart run fluttermeup:fmu instead of just fmu.


🛠️ Getting Started #

The standard workflow takes less than 60 seconds from a blank project to a fully wired, offline-ready Riverpod domain.

1. Create a fresh Flutter project:

We highly recommend using the --empty flag for a much cleaner starting point.

flutter create project_name --empty
cd project_name

2. Initialize the architecture:

Wipes the slate clean and injects your core Riverpod/Drift files.

fmu init my_awesome_app

# If installed via Option B:
# dart run fluttermeup:fmu init my_awesome_app

# If directory is inside:
# dart run fluttermeup:fmu init

OPTIONAL: If the build runner fails during initialization. #

3. Run the Build Runner:

Because FMU relies on code generation, you must run this to build the database and providers.

dart run build_runner build -d

4. Generate a complete domain feature:

Scaffolds your models, repositories, controllers, and screens instantly.

fmu make:feature employees

# If installed via Option B:
# dart run fluttermeup:fmu make:feature employees

💻 Available Commands #

init #

Command: fmu init <app_name> or dart run fluttermeup:fmu init <app_name>

Wipes the default Flutter counter app and injects a complete Riverpod + Drift architecture.

  • Auto-installs flutter_riverpod, riverpod_annotation, go_router, drift, device_preview_plus, flutter_screenutil, and all necessary code-generation dev dependencies.
  • Scaffolds a Feature-First Clean Architecture inside lib/src/.
  • Creates a centralized, offline-first Drift SQLite database (app_database.dart) with seeders and migration utilities.
  • Creates a dynamic main.dart that configures DevicePreview and automatically sets desktop window sizing for Windows debugging.

make:feature #

Command: fmu make:feature <name> or dart run fluttermeup:fmu make:feature <name>

Instantly generates an isolated feature folder (lib/src/features/<name>). By default, it creates the Model, API service, and a Riverpod/Drift Repository, automatically linking them together.

Flags: Use these to generate only specific parts of a feature.

Flag Description
--model Generates only the domain model
--api Generates only the API service
--repo Generates only the Riverpod/Drift Repository

✨ Interactive Repository Checking: If you try to generate a repository (--repo) but the model doesn't exist yet, the CLI will pause and ask how you want to configure it — you can auto-generate the missing files or create an empty repository safely.


make:view #

Command: fmu make:view <name> or dart run fluttermeup:fmu make:view <name>

Generates the complete UI layer for a feature inside lib/src/features/<name>/presentation/.

  • Creates a ConsumerWidget screen and a @riverpod annotated controller.
  • Auto-Injects Routing: Opens your app_router.dart and app_routes.dart and injects the new GoRoute and enum automatically — no manual routing required.

📂 Generated Architecture (v2.1.0) #

Running the init and make commands produces a scalable, feature-first project structure:

lib/
├── main.dart                          # Entry point (ProviderScope goes here)
└── src/                               # All internal code (keeps root clean)
    ├── app.dart                       # MaterialApp/CupertinoApp setup
    │
    ├── core/
    │   ├── constants/
    │   ├── exceptions/
    │   ├── theme/
    │   ├── utils/
    │   ├── widgets/
    │   └── database/                  # Centralized Drift Infrastructure
    │       ├── app_database.dart      # Main connection & Riverpod Provider
    │       ├── app_database.g.dart    # (Auto-generated)
    │       ├── tables/
    │       │   ├── employees_table.dart
    │       │   └── users_table.dart
    │       ├── migrations/
    │       │   ├── migration_date_r1.dart
    │       │   └── migration_date_r2.dart
    │       ├── schema/
    │       │   ├── schema_migrator.dart
    │       │   └── schema_seeder.dart
    │       └── seeders/
    │           ├── employees_seeder.dart
    │           ├── users_seeder.dart
    │           └── seed_constants.dart
    │
    ├── routing/
    │   ├── app_router.dart            # GoRouter provider and route definitions
    │   └── app_routes.dart            # Route name/path constants (Enums)
    │
    ├── services/
    │   └── api_client.dart            # Third-party wrappers (Firebase, Analytics, Dio)
    │
    └── features/
        ├── employees/
        │   ├── application/           # Use cases / services
        │   ├── data_sources/
        │   │   └── employees_api.dart
        │   ├── dtos/
        │   │   └── employee_dto.dart
        │   ├── data/
        │   │   └── employees_repository.dart
        │   ├── domain/
        │   └── presentation/
        │       ├── screens/
        │       ├── widgets/
        │       └── controllers/
        │
        ├── users/
        │   ├── application/
        │   ├── data_sources/
        │   │   └── users_api.dart
        │   ├── dtos/
        │   │   └── user_dto.dart
        │   ├── data/
        │   │   └── users_repository.dart
        │   ├── domain/
        │   └── presentation/
        │       ├── screens/
        │       ├── widgets/
        │       └── controllers/
        │
        └── login/
            ├── application/
            ├── data_sources/
            │   ├── login_remote_data_source.dart
            │   └── login_local_data_source.dart
            ├── dtos/
            │   └── login_dto.dart
            ├── data/
            │   └── login_repository.dart
            ├── domain/
            └── presentation/
                ├── screens/
                ├── widgets/
                └── controllers/

📄 License #

This project is licensed under the MIT License — see the LICENSE file for details. Built to be helpful. Use it, modify it, and speed up your workflow!

Powered by Ken Lester Taupo and the 5L team.

1
likes
150
points
55
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter CLI generator for Riverpod + GoRouter projects. Scaffolds complete architectures, dynamic models, repositories, and auto-wires routing instantly.

Repository (GitHub)

Topics

#cli #generator #riverpod #gorouter #architecture

License

MIT (license)

Dependencies

path

More

Packages that depend on fluttermeup