We recently released GolemUI, an Open Source library to generate forms dynamically from JSON definitions, with a typed layer to simplify authoring.
This library has a lot to offer. These are the main characteristics:
1. A JSON engine. The form is governed by a JSON definition that you can store in a DB, version, diff, or generate it with LLMs as a validated JSON.
2. We provide also 28 headless components (and growing) that you can style with CSS variables. We offer APIs so you can drop in Material, Shoelace, or your own components.
3. A DX typed authoring layer on top to write forms programmatically, that generates JSON. So you don't have to write it.
4. The same definition can render the UI components in React, Angular, Vue, Lit, or Vanilla JS.
5. We also have a deterministic MCP that has tools for to validate the model's output, generate JSONs or code, and ensure that the definition returned by the LLM is always valid.
You can find more information here:
Happy to hear any feedback from you and answer any questions!
If so, I think you can see this on our github commit log:
https://github.com/golemui/golemui/commits/main/?since=2025-...
Note the date! 2025-09-01, that is the date of our first commit, 1962 commits later we published v1.0
So you can see this has been well thought
Can you simplify how form dynamism works? I skimmed the docs and saw 'states', but it didn't immediately click how it works.
Do we build a tree of rules outside of the components? Are states attached to each component, bottoms-up, and then the form tree is managed by the library?
If states didn't click initially that's fine, you can still cover a lot of ground using inlined expressions: https://golemui.com/dx/features/states/inline-when/
Basically you can nest the states, so you can build a tree of states that way.
Or you can leverage the DX to have fully reactive components.
This idea for JSON -> form has existed for a decade, one example: https://github.com/eclipsesource/jsonforms
But there is more, paraphrasing the post itself:
This library has a lot to offer. These are the main characteristics:
1. A JSON engine. The form is governed by a JSON definition that you can store in a DB, version, diff, or generate it with LLMs as a validated JSON.
2. We provide also 28 headless components (and growing) that you can style with CSS variables. We offer APIs so you can drop in Material, Shoelace, or your own components.
3. A DX typed authoring layer on top to write forms programmatically, that generates JSON. So you don't have to write it.
4. The same definition can render the UI components in React, Angular, Vue, Lit, or Vanilla JS.
5. We also have a deterministic MCP that has tools for to validate the model's output, generate JSONs or code, and ensure that the definition returned by the LLM is always valid.
So we see ourselves as the one shop stop for all your form needs.
However, I think if you look at our offering, perhaps you will agree that there is no one out there that positions themselves as the one stop shop for forms.
1. A JSON engine. The form is governed by a JSON definition that you can store in a DB, version, diff, or generate it with LLMs as a validated JSON.
2. We provide also 28 headless components (and growing) that you can style with CSS variables. We offer APIs so you can drop in Material, Shoelace, or your own components.
3. A DX typed authoring layer on top to write forms programmatically, that generates JSON. So you don't have to write it.
4. The same definition can render the UI components in React, Angular, Vue, Lit, or Vanilla JS.
5. We also have a deterministic MCP that has tools for to validate the model's output, generate JSONs or code, and ensure that the definition returned by the LLM is always valid.
But you can see that we do way more...
I’m sorry, maybe it’s shallow, but that makes me close the tab.
upon opening the site, I immediately got vibed feeling so I closed the tab.
If any designers come over to the comment section, we would love to hear from you! We'd love to improve our website with your advice.
On the other hand, the code, we started coding this more than one year ago and we have poured our souls on it.
If you can bare the AI obvious styling front page, I think you would like the framework
Animations should serve a purpose - for example, gamifying with a fireworks animation is useful if you think that communicates what you want about the product.
Engineers know that rainbow borders on boxes are tricksy to implement but a cinch for agents. So rainbow borders are a loud way to say “we didn’t pay close attention to what we were building when we built this” - or to be a bit more kind, “we shipped our first draft”.
It’s just like reading code. Why would you want any distractions?
Well, we are very experienced developers, which is code for.. we are old... Old as from the time where websites had banners moving across the page, so that might have influenced our choices.
But these suggestions are gold to us as we have no expertise on design, so thanks AGAIN
Design can tickle different bits of your brain compared to code! Quite often I can’t pin down and name just what’s wrong (those with the vocab can, of course)
But if you can describe the feeling in the back of your mind to an agent you’re golden.
And to be clear, I have a public website created (and designed) by Claude. But the key difference is that I used my brain, and iterated with Claude to make the style not look like AI slop.
Like anything with AI, you can't just fire off a prompt and expect a good anything (code, design, whatever). You have to put effort in ... and all signs show the people behind this library aren't.
For us, our library is the clay, and the result of what you code with it is the golem.
Would you consider raising an issue here? https://github.com/golemui/golemui/issues
You could be the first person to open an issue on this repo (other that the three of us)
It goes without saying that this does work in our machines.
P.S. I genuinely don't want to hate on the work of motivated devs, creating something useful for the community, and trying to share it. That's a great thing, and we want more of it!
But when some asshat comes in with an ai slop library that's redundant with a dozen other solutions (all of which people actually use in production to solve problems) ... and claims that they are creating new paradigms ... it feels to me like that makes things harder for every real new contribution.
All the stuff we want is signal, and crap like this just adds ego-based noise that blocks the signal.