ターミナルアプリをブラウザでも動かす「Gridland」とは? TUI開発の新定番フレームワーク

元記事を読む
キュレーターコメント

「インストールする前に触ってみたい」というユーザー心理を完全に解決するアプローチが秀逸。TUIアプリを作るすべての開発者に刺さるはず。

概要

ターミナルアプリを作ったとき、「インストールしてもらう前に動きを見せたい」と思ったことはないだろうか。npm installcargo install を実行してもらうには、そこそこの心理的ハードルがある。Gridland は、その問題をエレガントに解決する新しいフレームワークだ。

Gridland とは?

Gridland は、OpenTUI + React ベースのランタイムで、同一コードベースのアプリをブラウザと本物のターミナル、両方で動作させることができる。公式サイト自体がGridlandで作られており、ブラウザ上でターミナル風UIが動いているのを確認できる。

主な特徴:

  • OpenTUI + canvas レンダラー 採用により、チラつきがほぼなく、ロード時間も瞬時
  • ShadCN UI レジストリ 対応で、UIコンポーネントを再利用しやすい設計
  • React ベース なので、Webフロントエンドエンジニアにも親しみやすい
  • ブラウザ上でそのままデモを公開できるため、TUIのプロモーションに最適

前身「Ink Web」から何が変わったか

Gridlandには前身がある。Ink Webink-web.dev)は同様のコンセプトで、Ink(ReactベースのTUIライブラリ)+ xterm.js という構成だった。しかし実装を進める中で、OpenTUIとcanvasレンダラーの組み合わせのほうがパフォーマンスが大幅に向上することが判明し、Gridlandとして作り直された。

技術スタックの変遷:

Ink WebGridland
TUIエンジンInkOpenTUI
ブラウザレンダリングxterm.jsCanvas
チラつきありほぼなし
ロード速度普通ほぼ瞬時

すぐ試せるコマンド

デモを体験するだけなら1コマンドで済む:

bunx @gridland/demo landing

新規プロジェクトを始めるには:

bun create gridland

Bun 前提の設計なので、Bunがインストールされていない場合は先に curl -fsSL https://bun.sh/install | bash で導入しておこう。

なぜこれが面白いのか

TUIアプリの最大の課題はユーザーに「実際に使う前の体験」を提供しにくい点にある。GitHubのREADMEにGIFを貼るのが定番だったが、インタラクティブな操作感は伝わらない。GridlandはURLを渡すだけで、インストール不要のインタラクティブデモを実現する。

CLIツール・TUIアプリを開発している人にとっては、ランディングページ兼デモ環境を1つのコードベースで管理できる点が特に魅力的だ。オープンソースプロジェクトのドキュメントサイトや、社内ツールの紹介ページとしても応用が効く。

Reactエコシステムに乗っているため、既存のWebフロントエンドの知識が活かせるのも嬉しいポイント。TUI開発への入門障壁を大きく下げてくれるフレームワークとして、今後の動向に注目したい。