CLI + modular generators + DSL aware contributions (alpha)

Generate a clean Flutter app scaffold in minutes

SMF is a modular, pluggable CLI. The generated app is a single-package scaffold with selected features wired in.

Single app scaffoldGoRouter routingGetIt DIFirebase modules availableAST contributions (experimental)
smf • interactive
$ 
Code formatted • mason • dart_style • PatchEngine
Stack builder
Pick modules to include in your app.
Core
Routing
DI
Cloud
Infra
UI
CLI command
smf create my_smf_app -m go_router,get_it,home
Output snapshot
What will be generated.
  • • Single Flutter app scaffold
  • • App package structure
  • • smf_contracts in dependencies
  • • Routing generated with GoRouter
  • • DI wired with GetIt
  • • AST contributions applied + formatted
Overwrites conflicting files with freshly generated code. Keeps your project in sync with selected modules. No backups yet. (alpha)
DSL
Routing and DI DSL with generated code.
RouteGroup(
  initialRoute: '/home',
  coreGuards: [],
  routes: [
    NestedRoute(
      shellLink: RouteShellLink.toMainTabsShell(),
      children: [
        Route(
          path: '/home',
          name: 'homeScreen',
          screen: RouteScreen('HomeScreen'),
          meta: RouteMeta(label: 'Home', icon: 'Icons.home', order: 0),
          imports: [Import.features('home/home_screen.dart')],
        ),
        
      ],
    ),
  ],
);
// generated for go_router
Architecture guardrails
No magic. All code generation is explicit, based on runtime contracts, build-time generators, and AST-patching.
Contracts live in smf_contracts. Generators depend on them, not vice versa.
PatchEngine modifies code using Dart AST. Mustache only where templates make sense.
Clear dependency rules: analytics implies firebase_core. Core = Flutter Core + Contracts.
Your selected modules
Quick dependency sketch. Think LEGO, not spaghetti. (alpha)
Flutter Core
Contracts
GoRouter
GetIt DI
Home Screen
1. Compose
Select modules and strategy. Nothing hidden.

Pick routing, DI, cloud, and UI modules. Add your own contributors later with IModuleCodeContributor.

2. Generate
Bricks + DSL + AST contributions.

We run Mason for structure, DSL generators for routing, and AST contributions (experimental). Code is auto formatted after generation.

3. Ship
Re-run anytime.

Regenerates from scratch. Conflicting files are overwritten to match your selected modules. No backups yet. (alpha)

Ready to try SMF Flutter CLI?

Open source core is free. No lock in, your repo, your rules. This is an ALPHA - expect rapid changes.

dart pub global activate smf_flutter_cli
smf create my_app
Read docs
Star it on GitHub. Join the Discord. Tell us what module you want next.
Stay in the loop
Subscribe for release notes and module drops.
We use Resend. Unsubscribe anytime.
Contact us
Have a question or partnership idea?
We’ll reply within 1–2 business days.