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

Is a powerful engine, based on RC-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

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 (!)