# Why do i made it?

Well, i've tested some libs, like antd's rc-form based, and react-final-form, and as i came from a corporate environment, where things usually gets a little crazy, i used myself to libs that can handle that scenarios. Or if they don't, i end up build one, myself.

And the results usually where quite nice! So, lets get a little dive in some comparisons:

### Antd's Forms - [page](https://ant.design/components/form/)

Is a powerful engine, based on [RC-Form](https://github.com/react-component/form) but IMO:

* extremely verbose and messy, especially when you put validations
* does not support functional components as wrapped ones
* it obligates you to wrap your form, using a HOC, to provide a form utility that will wrap your components (!)
* Working with complex properties, especially array ones, can be a challenge, you can't simply delete or create fields, as you wish...
* the stateless model is a little bit confusing...
* If you use with typescript, you need to reverse engineer the code to discover whats the actual prop type, of the backed form, to put in the React.Component generic

### React Final Form - [page](https://github.com/final-form/react-final-form)

Another powerful engine, clearer than Antd's, but:

* Does not support stateless approach
* Code could get a little messy because of the design choice, of the use of a render prop inside of the field, instead of children default one.
* Lack of tools for combining validators.
* Modify a value, requires you to build a mutator (!)
