Show HN: Keenforms – Form Builder with No-Code Rules Engine(keenforms.com)
It would be good to show what the form builder UI looks like. The demos page shows the Output, but I can't see how to create these forms without creating an account. I am aware that other form builders have some capability to use conditional logic, so it would be good if you could show what's different / better - I expected to see the UI I would use.
I've heard that a few times today. Will put some screenshots on the homepage in the next couple of days and deploy as soon as possible. Thanks for the feedback yalooze!
Keenforms is a side project that I've been tinkering with. It's a form builder with a built in rules no code rules engine. We're launching today, you can create an account for free and try it out.
I've used quite a few form builders in the past, and at times they fall a little short. You can't do complex calculations, you cannot do conditional validations, you have no control over the order of operations. The goal was to build a form builder that could do those things. This is the MVP.
I have a long list of features I'm hoping to add. The Trello board is nearly 500 items deep. However being a full time developer while building something of this magnitude can be challenging. I'm hoping to get some feedback as well as answer any questions you might have. The goal is to get it robust enough that I will have paid plans available.
You can ask questions here all day, or send me an email at firstname.lastname@example.org - really looking forward to feedback, maybe even suggestions for features. Thanks for your time.
This is awesome, congratulations! I've never seen a form builder quite like this, super excited to play around with the built in tools and capabilities. Thanks for sharing!
A bit of feedback on accessibility. By the looks of your demo page, you're not using the 'for' attribute to associate form labels to their fields. This makes the forms very difficult to use for users of assistive tech, including screen readers. Screen readers read out the appropriate label when an input gets focus, but without the 'for' attribute it has no way of knowing which label is intended for which input.
I added the for tag to the labels, and deployed it this morning.
Unfortunately the 'for' doesn't match the ID of the input element, so it won't work - for example on the inches-centimetres converter demo the first label should have for="inches" (as the input has id="inches"), but it has for="submissions_values_inches"
I am adding this to my trello board right now
>Keenforms started as an idea and a side project. It took more than 3 years of evenings and weekends to get something worth releasing.
I've also worked on forms with a rule engine for nearly 3 years almost full-time (started in 2017). It's a hard problem. There are some commercial no-code and low-code solutions.
For forms with a rule engine you really want to have some debugger included that visualizes the data flow. Somehow people think one just has to author rules and then it's finished. And errors never happen.
I take a lot of inspiration by the work of Chris Granger, Bret Victor, and the "Future of Coding" community. But also the UI/UX of Notion and ObservableHQ.
Edit: Fix typos.
I'd be interested in connecting, hearing more about some of the challenges you've had. It is definitely a hard problem.
I'm not familiar with any of the other no code or low code solutions available, can you share them?
>can you share them?
There are at least two Switzerland-based and a US-based company, I'm aware of, working on rule-based forms (or questionnaires) in financial services. For instance Appway AG in Zurich (I'm not related to them).
The challenges seem to be always sort of:
- You have the business domain modelled in a relational (or document, or graph) database. You bind and synchronize the data between database and form.
- You have a rule engine, which uses e.g. RETE-OO, which fires the rules when some object types and some of their object attributes defined in the rule input match changes objects in the form. The rule action changes other fields of the form.
- You have a form editor where you can map form fields to entity attributes of the business model. Besides form components (text fields, selects, checkboxes, radio button groups) you can add headings and paragraphs. You can split forms into multiple pages and add (breadcrumb) navigation. You can add summary pages with an overview of the form data.
- You have a vanilla UI design for the forms but can customize the forms completely. Starting from custom CSS to different CSS frameworks. Tailwind CSS and Headless UI (unstyled UI components) seem to go into the right direction (not only for fancy write-once web-agency marketing websites, but also enterprise web applications). You want to implement the form fields/components and consider labels, error states, disable and hide styles, and accessibility.
This is interesting. Forms are somewhat pain always. Formspree is pretty good from my perspective, but for more simple use cases. Have to keep in mind that Keenforms is out there as well!
This is really nice. You should perhaps check out surveyjs.io as well for some inspiration. They do some really nice work.
Q: My form builder already does "conditional logic" why should I use keenforms?
A: Because unlike other form builders out there Keenforms does "CONDITIONAL CALCULATIONS" and "CONDITIONAL VALIDATIONS". That is what makes keenforms unique.
Where do the form responses go? Is it easy to connect them to get pushed to another system?
They are saved to our database. At some point we hope to integrate with other applications so you can process that info as you see fit. This is the MVP, hoping to get more feedback on what potential users would see as beneficial to them. Thanks for the comment!
Rather than building dedicated integrations (which can always come later), a relatively quick win that’s tool-agnostic would be to implement webhooks.
I’ve used Typeform’s webhook feature a number of times to good effect, whereby you receive one POST request to whatever endpoint you specify upon each form submission. This may have changed, but when I last used it that was the only way of getting your data out of their system, which was admittedly frustrating. A lot better than nothing though.
Used it for all kinds of things: quizzes hooked up to a loyalty program, to award the user points for all correct answers; satisfaction surveys after ordering a product; writing and photography competitions (again hooked up to the loyalty program); an in-depth annual user survey; etc.
UI forms looks too basic.
So, it has conditional logic? I couldn't find it. Interface needs improving.