AIToday

PortalJS、AI駆動のデータポータル構築フレームワークをリリース

Hacker News3時間前
PortalJS、AI駆動のデータポータル構築フレームワークをリリース

要点

PortalJSは、Claude Codeスキルとアーキテクチャアドバイスを組み合わせてポータル作成を自動化するオープンソースのAIネイティブフレームワークである。過度に設計されたデータウェアハウスと脆弱なアドホックスクリプトの間で選択を強いるのではなく、モダンなオープンレイクハウス(git + Cloudflare R2オブジェクトストレージ + ParquetファイルをDuckDBで照会)を推奨・スキャフォルドし、プレーンで編集可能なNext.jsコードを生成する。ベンダーロックインはない。フレームワークは15以上のスキルを搭載しており、初期アーキテクチャ計画からデータセット追加、チャート、地図、Cloudflareへの公開まで、すべてを処理する。

こういう要約が、毎朝あなたのメールに届きます。

無料で登録 →

3つのポイント

  • 何が起きたか

    Datopianは、AI駆動のClaude Codeスキルを活用してチームがデータポータルを構築するのを支援するオープンソースフレームワーク「PortalJS」をリリースした。ユーザーが構築したい内容を説明すると、AIアシスタントが3つのサーフェス(Home、Catalog、Showcase)を備えた動作するポータルをスキャフォルドし、編集可能なNext.jsコード上に生成される。ベンダーロックインはない。

  • なぜ重要か

    現在、データチームは不要な重たいデータウェアハウスで過度に構築するか、スケーラビリティに欠けるアドホックスクリプトで過少構築するかの二者択一に直面している。PortalJSはアーキテクチャアドバイス(git + オブジェクトストレージ + Parquet + DuckDBを推奨する最新のオープンレイクハウス)と自動スキャフォルディングを組み合わせ、チームがデータインフラとポータルをデプロイできるようにする。膨張と脆弱性の間で選択する必要がない。フレームワークはMITオープンソースであり、ユーザーが平文コードを所有する。

  • 注目点

    PortalJSは15以上のClaude Codeスキルを搭載している。/portaljs-architect(アドバイス)、/portaljs-new-portal(スキャフォルド)、/portaljs-add-dataset(データ読み込み)、/portaljs-add-map(地理空間データレンダリング)、/portaljs-migrate(CKAN/Socrata/ArcGISからの取得)、/portaljs-deploy(Cloudflareのポータルに発行)を含む。ユーザーは単一のコマンド(npm create portaljs@latest my-portal)でポータルをスキャフォルドするか、AIを一切使わずにベアテンプレートを直接使用できる。

詳細

PortalJSはDatopianとそのコミュニティによって構築・維持されているオープンソースフレームワークであり、データポータルを構築・開発・デプロイし、その下のインフラストラクチャをサポートする必要があるチーム向けである。中心的な洞察は、データポータルはウェブサイト以上だということだ。チームはデータがどこに存在するか、どのようにバージョン管理するか、人々がどのように検索するか、どのように提供するか、どのようにガバナンスするか、そしてその上にフロントエンドを配線するかを決定する必要がある。

フレームワークは2つの機能を搭載している。まず、アドバイス:構築内容、データ、目的に応じて、/portaljs-architectスキルがアーキテクチャ(ストレージ、コンピュート、カタログ、アクセス、ホスティング、メタデータ)を推奨する。次に、構築:スキルがそのスタックをプレーンで編集可能なNext.jsコードとしてスキャフォルドする。ロックインはない。推奨されるモダンなパスはgit + Cloudflare R2オブジェクトストレージ + Parquetであり、DuckDBで照会される。オープンレイクハウスは従来のウェアハウスの代わりである。生きた増分テーブルにはDuckLakeをレイヤーできます。従来のデータストア(CKANまたはウェアハウス)は必要に応じて第一級のオプションとして残る。

PortalJSはすべてのデータポータルが必要とする3つのユーザー向けサーフェスを提供する。ポータルを説明し、検索を提供するホームページ。データセットを発見するためのカタログ(/search)。1つのデータセットを探索するためのショーケース(/@<namespace>/<slug)。メタデータ、プレビュー、ダウンロード/API、チャート/地図を表示する。3つのサーフェスすべてが単一のDataProviderコントラクトを通じてデータを読み込むため、ソース(静的ファイル、CKAN、Socrata、ArcGIS、OpenMetadata、またはカスタムバックエンド)は、ページに触れることなく変更できる。

フレームワークを使用するには、Claude Codeスキルを個人スコープに一度インストール(curl -fsSL https://raw.githubusercontent.com/datopian/portaljs/main/scripts/install-portaljs-skills.sh | bash)し、Claude Codeセッションで/を入力してスキルを確認する。ポータルのセットアップ方法が不明な場合は、/portaljs-architect(ニーズを推奨アーキテクチャに変換)から始め、/portaljs-new-portal(簡潔な説明からポータルをスキャフォルド)、/portaljs-add-datasetでCSV、JSON、GeoJSONを読み込む。スキルはインタラクティブ:簡潔な説明は短いラウンドでインタビューされ、エラーなく処理される。別の方法として、単一のコマンド(npm create portaljs@latest my-portal)でポータルをスキャフォルドし、npm run devでhttp://localhost:3000に起動できる。

フレームワークは15以上のスキルを搭載している。アドバイス用の/portaljs-architect、Home + Catalog + Showcaseをスキャフォルドする/portaljs-new-portal、データセットを登録・レンダリングする/portaljs-add-dataset、メタデータまたは追加ファイルを添付する/portaljs-add-resource、ビジュアライゼーションを追加する/portaljs-add-chartと/portaljs-add-map、地理空間ファイル(GeoJSON、Shapefile、GeoPackage、KML/KMZ、FlatGeobuf、ジオメトリ付きCSV)を自動取り込みしてクエリティアを導出する/portaljs-add-geo、Frictionless Table Schemaを推論してメタデータを追加する/portaljs-define-schema、国立およびEUオープンデータポータルによる収集用のJSON-LD、Turtle、RDF/XMLで標準準拠のDCAT フィードを出力する/portaljs-add-dcat、ポータルをCKANバックエンドに配線する/portaljs-connect-ckan、データセットをスキーマに対して検証する/portaljs-check-data-quality、CKAN、Socrata、OpenDataSoft、ArcGIS、またはDCAT-USから全カタログを取得する/portaljs-migrate、ArcGIS Hubサイト全体を移行する/arcgis-to-portaljs。/portaljs-deployスキルは静的エクスポートをビルドしてPortalJS Arc(Datopianマネージドホスティング、Cloudflare上)に公開し、ライブ<slug>.arc.portaljs.comのURLを提供する。

コードはMITライセンス下の公開GitHubリポジトリに存在する。リポジトリには.claude/commands/(エージェント型スキル)、examples/(参照ポータル。portaljs-catalogが正規テンプレート)、packages/(コアUIコンポーネント、CKANクライアント、サポートライブラリ)、site/(portaljs.comドキュメント)が含まれている。PortalJSを区別するのは3つの設計選択の組み合わせである。ロックインのないMITオープンソース。生成スキャフォルディングだけでなくアドバイスを提供。重たいウェアハウスではなくオープンレイクハウス(git + R2 + Parquet + DuckDB)をデフォルト。Cloudflare(R2、Workers、D1、Pages)をデフォルト基盤として使用しながらオブジェクトストレージはS3互換。フレームワークはテンプレートとして採用するか、スキルと3サーフェスモデルを既存アプリにリフトするように設計されており、Discord、GitHub Discussions、issue trackerを通じた新しいスキル、例、ドキュメント、修正の貢献を歓迎する。

背景と解説

PortalJSはデータインフラストラクチャにおける長年の課題に対応している。データポータルを構築するほとんどのチームは、高額で過度に設計されたデータウェアハウスと脆弱で保守不可能なスクリプト集の間の誤った選択肢に直面している。フレームワークはこれを回避し、モダンな「オープンレイクハウス」アーキテクチャ(バージョン管理にはgit、オブジェクトストレージにはCloudflare R2、列指向データにはParquetファイル、サーバーレス照会にはDuckDB)を推奨・自動化することで、従来のウェアハウスよりもシンプルで安価でありながら、スケーラブルで保守可能である。

重要なイノベーションは、エージェント型アドバイザー(/portaljs-architect)と自動スキャフォルディングスキルを組み合わせることである。UIコードだけを生成するのではなく、フレームワークはまずチームがインフラストラクチャのニーズ(データ量、更新頻度、ガバナンス要件、標準準拠)について考えるのを支援し、コード作成前に適切なスタックを推奨する。このアドバイザリーレイヤーは重要なギャップに対応している。多くのチームはデータアーキテクチャについて明確に考えずにポータルを構築し、その後の選択に不一致が生じる。

プレーンなNext.jsコードをロックインなしで出力することで、PortalJSはカスタマイズや脱出が困難になる独自ポータルプラットフォームの罠を回避している。MITオープンソースライセンスと分離されたDataProviderコントラクト(静的ファイルからCKANからカスタムバックエンドへの交換をUIコードに触れずに可能)は、この哲学を強化している。アーキテクチャからデータセット取り込み、地理空間データ、スキーマ推論、標準準拠のためのDCAT公開、ArcGISやSocrataからの移行まで、すべてを処理する15以上のClaude Codeスキルは、プロジェクトが堅牢ではなく拡張可能に設計されていることを示している。

よくある質問

PortalJSポータルを作成するにはどうするのか?
npm create portaljs@latest my-portalを実行してから、npm run devでhttp://localhost:3000に起動する。Homeページ、Catalog(/search)、およびデータセットShowcase(/@<namespace>/<slug>)がサンプルデータで表示される。その後、datasets.jsonに自分のCSV/JSONを追加することができ、自動的にレンダリングされる。
ポータルを構築するためにAIスキルを使う必要があるのか?
いいえ。スキルは迅速なスキャフォルディング用の便利な機能だが、npx tiged datopian/portaljs/examples/portaljs-catalog my-portalでベアテンプレートを直接スキャフォルドして手動で構築することもできる。すべてのスキルはプレーンなNext.jsコードを出力し、ユーザーが所有することができる。
PortalJSはどのようなデータバックエンドをサポートしているのか?
PortalJSはデフォルトでオープンレイクハウス(git + Cloudflare R2 + Parquet + DuckDB)をサポートし、生きたテーブル用にはDuckLakeをサポートする。また、CKAN、OpenMetadata、GitHub、Frictionless Data Packages、および単一のDataProviderコントラクトを通じた任意のカスタムバックエンドもサポートする。CKAN、Socrata、OpenDataSoft、ArcGIS、またはDCAT-USから全カタログを移行することができる。

ディスカッション

まだコメントがありません。最初のコメントを投稿しましょう!

ログインして議論に参加

関連記事

AIニュースを毎日お届け

200以上のソースから厳選したAIニュースを毎日無料でお届けします。

無料で始める

登録無料・30秒で完了・いつでも解除できます

毎朝1分、AIの要点だけ。

200媒体以上・Email/LINE/Slack 対応

無料で受け取る →