fabrik 0.1.10 copy "fabrik: ^0.1.10" to clipboard
fabrik: ^0.1.10 copied to clipboard

A CLI to generate scalable, testable, clean Flutter feature scaffolding using DDD layered architecture.

Fabrik CLI #

A powerful CLI tool to generate scalable, testable, and clean Flutter feature scaffolding using DDD layered architecture.

Built with developer experience in mind — generate complete feature folders in seconds.

Learn more at → fabriktool.com


Key Features #

  • Clean architecture structure (Model → Entity → DataSource → Repository → Usecase → BLoC → UI )
  • Supports --output-dir or -o to customize output
  • Optional flags like --with-bloc, --minimal coming soon

Installation #

dart pub global activate fabrik

Set Up PATH (if needed) #

After activating the CLI, make sure Dart’s global bin directory is in your system PATH.

macOS/Linux

# Add this to your shell config file (~/.zshrc, ~/.bashrc, etc.)
export PATH="$PATH":"$HOME/.pub-cache/bin"

Windows

Locale the dart global bin path and add it to system PATH

C:\Users\<YourUsername>\AppData\Local\Pub\Cache\bin

Usage #

fabrik generate feature auth

This will create:

./auth/
  |- models/
  |- entities/
  |- usecases/
  |- blocs/
  |- repository.dart
  |- data_source.dart
  |- auth.dart (barrel)

Generate feature into a specific folder #

fabrik generate feature auth -o app_auth

Outputs to ./app_auth/


Output Example #

Inside your feature folder:

lib/features/auth/
  |- models/
     |- user_model.dart
     |- models.dart
  |- entities/
     |- user.dart
     |- entities.dart
  |- usecases/
     |- login_usecase.dart
     |- usecases.dart
  |- blocs/
     |- auth_bloc.dart
     |- auth_event.dart
     |- auth_state.dart
  |- repository.dart
  |- data_source.dart
  |- auth.dart

All classes are stubbed with clean and minimal code — ready to be implemented.


Fabrik scaffolds rely on some essential packages for clean architecture, error handling, and code generation.

To get started, add the following to your pubspec.yaml:

dependencies:
  # Functional programming support (Either, Option, etc.)
  dartz:

  # State management with BLoC
  bloc:
  flutter_bloc:
  equatable:

  # Code generation support
  json_annotation:
  freezed_annotation:

  # Dependency injection
  get_it: ^7.6.4
  injectable: ^2.3.2

dev_dependencies:
  build_runner:
  freezed:
  injectable_generator:
  json_serializable:
  very_good_analysis:

Don’t forget to run #

flutter pub get
dart run build_runner build --delete-conflicting-outputs

  • mason — powering this scaffolding magic.
  • bloc — the backbone of state management in Fabrik, ensuring predictable and scalable application state.

Coming Soon #

  • --minimal flag for model-only scaffolds
  • fabrik init to generate ApiClient, Config, and other architecture utils
  • ❌ VSCode Extension for Fabrik
  • ❌ Web UI at fabriktool.com

Maintainers #

Inspired by real-world Flutter app architecture challenges. Open source. Open to contributions. Built for the Flutter community.

5
likes
160
points
198
downloads

Publisher

verified publisherfabriktool.com

Weekly Downloads

A CLI to generate scalable, testable, clean Flutter feature scaffolding using DDD layered architecture.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

args, mason, mason_logger

More

Packages that depend on fabrik