/note/tech

Constela - Compiler-First UI言語

要約:

■ 1. Constelaの概要

  • 江口優一(yuu1ch13)氏によって開発されているオープンソースのUI言語およびフレームワーク
  • 「UIをJavaScriptではなくJSON(DSL)で記述する」という非常にユニークなコンセプトを持つ
  • 2026年1月時点で活発にアップデートが行われている(直近ではv0.8.0など)

■ 2. コンセプト: Compiler-First UI言語

  • 従来のWeb開発(ReactやVueなど)ではJavaScriptのコードとしてUIを記述し実行時にそのロジックを動かす
  • ConstelaはUIを「プログラム(命令)」ではなく「検証可能なデータ(JSON)」として扱うことを重視
  • コンパイル時検証:
    • 未定義の状態(state)の参照や不正なアクション/構造の不整合などを実行前に検出できる
  • 静的解析の容易さ:
    • 任意のJavaScript実行を排除し制約されたJSON形式にすることでUIの振る舞いが決定論的(予測可能)になる

■ 3. AIとの高い親和性

  • 開発者が明示している大きな目的の一つが「AIによるUI生成・修正」への最適化
  • 自然言語で書かれたコード(JSXなど)はAIにとって自由度が高すぎバグを含みやすいという課題がある
  • Constelaは構造化されたJSONであるためAIが「どのボタンがどの状態を更新するか」を正確に把握しやすい
  • 機械的な自動生成や修正のワークフローに適している

■ 4. 主な機能と技術的特徴

  • State & Action:
    • UIの状態管理や副作用もJSON内で宣言的に定義
  • Style System:
    • Tailwind CSSのようなクラスベースのスタイリングが可能
    • CVA(Class Variance Authority)ライクなバリアント管理が可能(v0.8.0以降)
  • Builder API:
    • AIツールなどがプログラムからUIを構築するためのTypeScript APIを提供
  • コンポーネント化:
    • PropsやSlotといった概念も備えており再利用可能なUIパーツを定義できる

■ 5. 役立つ場面

  • AI生成UI:
    • ユーザーの指示からAIが即座に管理画面やダッシュボードを生成するようなアプリケーション
  • UIの安全な自動更新:
    • 人間がコードを書かずにシステムのメタデータからUIを動的に構成したい場合
  • ノーコード/ローコードツールの基盤:
    • 構造化データとしてUIを保持する必要があるサービスのバックエンド

■ 6. まとめ

  • 単なる新しいUIライブラリではない
  • 「人間が手でコードを書く時代から機械(AI)がUIを構成・検証する時代」を見据えた次世代のフロントエンド基盤を目指しているプロジェクト
  • 特にAIとの連携機能や開発体験の向上が図られている

MEMO: