A dynamic, JSON-powered form library for Angular that automatically generates forms from configuration.
ngx-formly is a dynamic form library for Angular that allows developers to generate forms automatically from JSON configuration. It solves the problem of maintaining complex, repetitive form code by providing a declarative way to define forms, making them easier to manage and extend over time.
Angular developers building applications with complex or dynamic forms, especially those who need to manage forms with changing requirements or multiple UI themes.
Developers choose ngx-formly for its powerful JSON-driven approach, which drastically reduces boilerplate code while offering extensive customization through custom field types, validation, and seamless integration with popular UI libraries.
📝 JSON powered / Dynamic forms for Angular
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Dynamically generates forms from JSON configuration, eliminating repetitive boilerplate code as emphasized in the features, which speeds up development for dynamic use cases.
Supports custom field types, validation rules, wrappers, and extensions, allowing deep adaptation to complex business logic without modifying core library code.
Offers out-of-the-box integration with popular UI libraries like Bootstrap, Material, and Ionic, reducing the effort needed for styling and consistency across projects.
Built on Angular Reactive Forms, ensuring robust state management, validation, and seamless integration with Angular's ecosystem for reliable form handling.
Requires matching specific Formly versions to Angular releases, as shown in the compatibility table, which can complicate upgrades and lead to breaking changes during Angular updates.
Understanding the JSON schema system, extension points, and configuration options adds upfront complexity compared to using standard Angular reactive or template-driven forms directly.
The dynamic generation layer and abstraction might introduce minor latency for extremely large forms with many fields or complex conditional logic, though it's optimized for most cases.