【新着】JSONからフォームを爆速生成!次世代フォームエンジン「GolemUI」が登場
Show HN: GolemUI – Declarative Form Engine
Show HN: GolemUI – Declarative Form Engine
私たちはフォーム開発とオープンソースの世界で10年以上の経験を持つ3人組のチームです。これまでの知見をすべて注ぎ込むべく、共同でプロジェクトを立ち上げました。
今回リリースした「GolemUI」は、JSON定義から動的にフォームを生成するオープンソースライブラリです。型定義レイヤーを備えており、フォーム作成が驚くほど簡単になります。
主な特徴は以下の通りです:
JSON駆動のエンジン:フォームはJSON定義によって制御されます。DBへの保存やバージョン管理、差分比較が容易なほか、LLMを活用してバリデーション済みのJSONとして生成することも可能です。
柔軟なコンポーネント:28種類のヘッドレスコンポーネント(順次拡大中)を提供しており、CSS変数で自由自在にスタイリングできます。また、MaterialやShoelace、あるいは自作コンポーネントを導入するためのAPIも用意しています。
快適なDXを実現する型定義レイヤー:JSONを直接書く手間を省き、プログラムベースで直感的にフォーム定義を作成できます。
フレームワークを問わない:単一の定義から、React、Angular、Vue、Lit、Vanilla JSでUIコンポーネントをレンダリングできます。
LLMとの親和性:確定的なMCP(Model Context Protocol)を備えており、モデル出力の検証やJSON/コードの生成を行い、LLMが返す定義が常に有効であることを保証します。
詳細はこちらでご確認ください。
ぜひフィードバックをお聞かせください!質問も大歓迎です。
ファイル入力タイプはないの?
JSエコシステムに入門したばかりなんだけど、SurveyJsみたいなものと比べてどうなの?
日付範囲ピッカーが動かないんだけど…
フィールドの関連付けがすべて文字列で表現されているみたいだね。これだとオートコンプリートが効かなかったり、ビルド時の構文チェックや型チェックが使えなかったりしそう。コンセプト自体は好きだけど、もし認識が合っているなら、かなり大きなデメリットになりそう。
いいじゃん、気に入った。
フォームの動的制御の仕組みをもっと簡略化できないかな?ドキュメントに目を通したけど「states(状態)」については見かけたものの、どう機能するのかピンと来なかった。
ルールツリーをコンポーネントの外側で構築する感じ?それとも各コンポーネントにボトムアップで状態を紐付けて、フォームツリー自体はライブラリ側で管理するの?
なぜ0.17.0(2026-06-08)から1.0へ短期間で飛び級したの?
TailwindやBEM、Bootstrapを使っている場合、カスタマイズはどのくらい大変?FlowbiteにはいくつかプリメイドのUIがあるよね。
Shoelace UIはWeb Componentsベースだけど、最近規模が大きくなったみたい:
https://webawesome.com/docs/components/ (https://webawesome.com/docs/components/)
前の職場でも「データ構造からフォームを生成する」技術をよく使ってた。すごく便利なんだよね。
GolemUIはこのアイデアのオープンソース版として良さそう。ありがとう!
スキーマのマイグレーションはどうやってる?データベースに何千ものJSON形式のフォーム定義を保存していて、コンポーネントのAPIが変更された場合、マイグレーション戦略やバージョン管理システムは組み込まれているのかな?
ここ数年でよく見かける、やっつけ仕事のようなUIとすごく似てるね。コードがそうだとは言わないけど、デザイン自体が「Vibe Code(雰囲気コード)」っぽく見えない?
これってどれくらい「Vibe Code(雰囲気コード)」なの?中ほどにあるウィジェットのデモがどれも未完成に思える。通貨入力は文字も受け付けちゃうし、フォーカスを外すと入力文字が消える。カレンダー入力はクリックした日の前日が選択されるみたいだし、Markdownエディタは現在の行をヘッダーにするんじゃなくて、行の最後にハッシュを置く動きをする。ドロップダウン検索も動いてない気がする(「R」と打てばReactやAngulaRが出るのに、「Re」と打つと何も候補が出ない)。
もちろん全部修正可能なのは分かってるし、アイデアは素敵だよ!ただ、少なくともFirefoxだとデモとしてはちょっと粗削りかな。