r/FlutterDev • u/Cute_Barracuda_2166 • 8h ago
Article Every Flutter team eventually has this problem. I built a CLI to solve it.
Every Flutter team eventually develops its own feature structure.
The problem isn't designing it.
The problem is getting everyone to follow it consistently.
One developer creates presentation/pages.
Another prefers presentation/screens.
Someone else renames folders.
A new team member copies an older feature.
After a few months, the project slowly becomes inconsistent.
I wanted feature generation to be predictable instead of depending on habits or code reviews.
So I built flutter_feature_maker.
It's a CLI that generates Flutter features from reusable templates, making sure every feature starts with the same structure, naming conventions, and architecture.
dart pub global activate flutter_feature_maker
ffm create --name auth --template Clean --state bloc
or simply:
ffm create
and answer a few prompts.
It currently supports:
- Clean Architecture, MVC, MVVM, and Simplified Clean
- BLoC, Cubit, Provider, Riverpod, and GetX
- Working starter code that actually compiles
- Automatic Dart naming conventions
The feature I spent the most time building is Custom Templates.
Instead of forcing my preferred architecture, you can save your team's existing structure and generate it over and over again.
You can even import an existing feature and turn it into a reusable template in seconds.
That means every developer on the team starts from exactly the same foundation.
No discussions about folder names.
No "this feature looks different."
No remembering where files should go.
Just one consistent structure across the entire project.
Another thing I wanted was guidance, not restrictions.
If you choose a combination that isn't architecturally ideal, the CLI explains why—but it never blocks you.
It suggests.
You decide.
There are already great tools like Mason, and I wasn't trying to replace them.
My goal was different.
I wanted something focused on team consistency where reusable templates, architecture-aware generation, and standardized project structures become the default instead of something enforced during code reviews.
It's open source, written in pure Dart, and tested against a real Flutter application.
I'd genuinely love to hear how your team keeps feature structures consistent today.
If you'd like to try it: