As Vazco we often release our packages as Open Source in order to avoid vendor locking for our clients, and simply because we believe in OS. It saves us testing time and allows to lower costs, in the same time giving our clients an insight into quality of our code. We also simply like to give back to the community.
Managing forms in React can be a really tedious task. When creating a forms package for React, our goal was to speed up development of this very common functionality. We planned to build an automatic form generator, which would be easy to use in simple scenarios, and in the same time powerful enough to support even complex cases.
Radosław Miernik lead the project and created not only a great package, but also a wonderful community around it. As a result, uniforms is now in the top 10 popular React forms packages on GitHub, with over 200 stars and 4000 downloads per month in npm.
We tried a few concepts for gradual automation of forms before we started implementation of uniforms. The final version supports GraphQL, SimpleSchema v.1 and v.2, and allows to generate forms based on a schema. It enables developers to create custom fields with just one line of code and supports easy tweaking of form layouts to make it fit to a custom UI.
The codebase is organized in a multi-package repository managed by Lerna, so that the core and all the themes are released in sync, and we’re treating semantic versioning seriously.
We came up with a very interesting class-based inheritance concept for forms. Basically, there are a few types of forms with different capabilities. You can read more about uniforms in this Medium article: https://blog.meteor.com/managing-forms-in-a-meteor-react-project-with-uniforms-33d60602b43a