Hi everyone! I wrote a DSL (named Form Modeling Language) for modeling & building complex forms and am glad to share it with you now.
Over the years, I’ve encountered many challenges while building complex forms from scratch—challenges that I believe are common, difficult, and yet often overlooked. These include managing interdependent fields, handling intricate validation rules, and maintain good collaboration between technical and non-technical people. FormML is my attempt to address these pain points.
The project's README goes into more detail, but in short, FormML offers a model-first approach to form development (inspired by Prisma), focusing on ease of use for both developers and non-developers.
Lastly, there is a design question I’d love your input:
FormML has a primitive type called decimal, used for high-precision decimal numbers. Since one of FormML's design principles is to be as readable as possible to non-programmers, I’m considering renaming it to currency. However, currency might feel too narrow and not cover all applications.
What do you think?
- Stick with decimal?
- Switch to currency?
- Support both via aliases?
Looking forward to your thoughts and feedback!