Show HN: GolemUI – The new paradigm for JavaScript forms

golemui.com

26 points by wtfdeveloper 3 hours ago


We're a team of three friends who have been working with forms and Open Source for a decade, and we joined forces together to create something where we can apply all of our experience.

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!

charucharu - 5 minutes ago

How do you handle schema migrations? If someone has thousands of JSON form definitions stored in a database and the component API changes, is there a migration strategy or versioning system built in?

mring33621 - 10 minutes ago

Lots of my previous employers had "data structures to forms" tech. It's very useful.

GolemUI looks like a nice open source version of this idea.

Thank you!

todotask2 - 24 minutes ago

Why did your release jump from 0.17.0 (2026-06-08) to 1.0 in such a short time?

If I use Tailwind, BEN or Boostrap, how hard it will be to customise? Flowbite have a few pre-made UI.

Shoelace UI is based on Web Components, now that it got bigger:

https://webawesome.com/docs/components/

recursive - 42 minutes ago

All the field relationships seem to be expressed in strings. This suggests that you might not be able to use auto-complete or build-time syntax or type checking on them. I like the general idea, but that would be a big downside if I'm understanding correctly.

nilirl - 30 minutes ago

Ok, I love it.

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?

verdverm - 2 hours ago

How is this a new paradigm?

This idea for JSON -> form has existed for a decade, one example: https://github.com/eclipsesource/jsonforms

pavlov - 2 hours ago

The overuse of blue and purple gradient fills on the landing page is a telltale sign of AI slop.

I’m sorry, maybe it’s shallow, but that makes me close the tab.

nu11ptr - 2 hours ago

As someone just starting out with the JS ecosystem, how does this compare to something like SurveyJs?

manojlds - 43 minutes ago

Why the name Golem?

cmoski - an hour ago

Date range picker doesn't work...

typeofhuman - 2 hours ago

Is there no file input type?

hungryhobbit - 33 minutes ago

I knew this would be yet another garbage copycat library the moment I saw "new paradigm" in the title. When I actually looked at the webpage, I found I was not at all wrong.

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.

pooplord7 - 2 hours ago

I hate it.