// the find
flutter-form-builder-ecosystem/flutter_form_builder
Simple form maker for Flutter Framework
flutter_form_builder wraps Flutter's built-in Form/FormField system with a named-field registry, giving you a Map-based value store and a collection of pre-built input widgets (date pickers, chips, sliders, etc.) without wiring everything up manually. It's aimed at Flutter developers building data-entry screens who want to skip the boilerplate of tracking controller/state for each field. The companion package `form_builder_validators` handles validation rules separately.
- Named field registry (`_formKey.currentState?.value`) gives you the whole form as a typed Map in one call, which is genuinely useful compared to juggling individual TextEditingControllers.
- Good test coverage — every field type has its own test file, and there are tests for the core FormBuilder state, which is more than most Flutter packages bother with.
- The `FormBuilderField` escape hatch is well-designed: wrapping any arbitrary widget into the form graph is straightforward and follows the standard FormField builder pattern.
- Migration tooling using `dart fix` with a `fix_data.yaml` is a nice touch — breaking changes in v10 can be applied automatically rather than hunting through call sites.
- The README has a visible 'Call for Maintainers' banner, which is a yellow flag for long-term adoption. Open issues are the stated roadmap, meaning there's no proactive direction.
- Validators are in a completely separate package (`form_builder_validators`), which is an extra dependency and an extra version to track. The split makes sense organizationally but creates friction for new users who discover missing validation only after setup.
- No built-in async validation support — handling server-side checks (e.g., checking if email exists) requires manually managing state outside the form, which the docs show with `setState` hacks rather than a first-class API.
- The `GlobalKey<FormBuilderState>` pattern means field access is stringly-typed (`fields['email']`), so typos in field names are silent runtime issues, not compile-time errors.