Build reactive Flutter apps the easy way
No codegen, no boilerplate, just code.
flutter_it is a modular construction set of reactive tools for Flutter. Pick what you need, combine as you grow, or use them all together. Each package works independently and integrates seamlessly with the others.
Why flutter_it?
- ✅ Zero build_runner - No code generation, no waiting for builds
- ✅ Pure Dart - Works with standard Flutter, no magic
- ✅ Modular by design - Use one package or combine several—you choose
- ✅ Built on ChangeNotifier and ValueNotifier - Seamless Flutter integration with familiar primitives
- ✅ Type-safe - Full compile-time type checking
- ✅ Battle-tested - Trusted by thousands of Flutter developers
See it in action
// 1. Register services anywhere in your app (get_it)
final getIt = GetIt.instance;
getIt.registerSingleton(CounterModel());
// 2. Watch and react to changes automatically (watch_it)
class CounterWidget extends WatchingWidget {
@override
Widget build(BuildContext context) {
final count = watchValue((CounterModel m) => m.count);
return Text('Count: $count'); // Your widget automatically rebuilds on every change
}
}
// 3. Use reactive collections (listen_it)
final items = ListNotifier<String>();
items.add('New item'); // Automatically notifies listeners
// 4. Encapsulate actions with commands (command_it)
final saveCommand = Command.createAsyncNoResult<UserData>(
(userData) async => await api.save(userData),
);
// Access loading state, errors - all built-inNo setState(), no Provider boilerplate, no code generation. Just reactive Flutter.
The Construction Set
💡 Each package works standalone - start with one, add others as needed.
get_it
Dependency injection without the framework
Simple service locator that works anywhere in your app—no BuildContext, no InheritedWidget trees, just clean dependency access.

watch_it
Reactive UI updates, automatically
React to state changes without setState()—watch values and rebuild only what's needed. You'll almost never need a StatefulWidget anymore. Depends on get_it for service location.
command_it
Encapsulate actions with built-in state
Commands that track execution, handle errors, and provide loading states automatically. Handle exceptions the smart way. Perfect for async operations.
listen_it
Combine reactive state in an RxDart-like style that's easy to understand
Transform, filter, combine, and debounce operators for ValueNotifier—plus reactive collections (ListNotifier, MapNotifier, SetNotifier) that automatically notify on changes.
Getting Started
New to flutter_it? Start here:
- What to do with which package - Find the right tool for your needs
- Complete Documentation - Deep dive into each package
- Real-world Examples - See patterns in action
Community
Join the flutter_it community: