EmDashはAstroネイティブなコンテンツ管理システムです。コレクション、タクソノミー、メニュー、ウィジェット、そして洗練された管理UIといった使い慣れたCMSパターンを、完全なTypeScriptサポートとポータブルなデプロイメントとともに、Astroサイトに直接もたらします。
EmDashとは
EmDashはAstro専用に構築されたCMSです。Astro 6のLive Content Collectionsを使用してランタイムでコンテンツを提供するため、編集がすぐに反映されます。コンテンツはSQLデータベース(SQLite、libSQL、Cloudflare D1、またはPostgreSQL)に保存され、メディアはS3互換ストレージ(R2またはローカルファイルシステム)に保存されます。
主な特徴:
- ビジュアルコンテンツモデリング — 管理UIからコレクションとフィールドを定義・変更でき、変更はすぐに反映されます。
- ライブコレクション — コンテンツはランタイムで提供されるため、編集がすぐに表示されます。
- プラグインシステム — WordPressにインスパイアされたフック、ストレージ、設定、および管理UI拡張。
- クラウドポータブル — Cloudflare(Workers + D1 + R2)またはNode.jsで実行でき、SQLite、libSQL、またはPostgreSQLと任意のS3互換ストレージを使用できます。
EmDashでないもの
- ヘッドレスCMSではない — EmDashはAstroと緊密に統合されており、APIを介して呼び出す別のサービスではなく、同じデプロイメント内で実行されます。
- WordPress互換ではない — PHPやWordPressプラグインは実行しません。WordPressのコンテンツと概念はEmDashの同等物に移行されます。
- ページビルダーではない — EmDashは構造化されたコンテンツを管理します。ビジュアルレイアウトはAstroコンポーネントで構築します。
EmDashの対象者
エージェンシー開発者
再利用可能なプラグインとテーマで、クライアントサイトを迅速に立ち上げます。プラグインは明示的なAPIで 隔離されたコンテキストで実行されます。
ソロ開発者
コンテンツ管理はAstroサイトの一部であり、1つのプロジェクトとしてデプロイ・管理されます。
コンテンツ編集者
管理パネルでコンテンツを作成・編集します。
WordPressユーザー
コンテンツとプラグインの移行パス。モダンなツール、使い慣れた概念。
アーキテクチャの概要
次の図は、EmDashがAstroサイト内にどのように配置され、コンテンツエンジン、管理パネル、プラグインをデータレイヤーに接続しているかを示しています。
┌─────────────────────────────────────────────────────────────┐
│ Your Astro Site │
│ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ EmDash Integration │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌──────────────┐ │ │
│ │ │ Content │ │ Admin │ │ Plugins │ │ │
│ │ │ Engine │ │ Panel │ │ │ │ │
│ │ └─────────────┘ └─────────────┘ └──────────────┘ │ │
│ │ │ │
│ │ ┌───────────────────────────────────────────────────┐│ │
│ │ │ Data Layer ││ │
│ │ │Database (SQLite/libSQL/D1/Postgres) + media store ││ │
│ │ └───────────────────────────────────────────────────┘│ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ Astro Framework │ │
│ │ Live Collections • Sessions • Middleware │ │
│ └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
コア概念
ドキュメント全体で使用される主要な概念は次のとおりです:
- Collections(コレクション) — データベースで定義されたコンテンツタイプ(投稿、ページ、製品など)
- Fields(フィールド) — コレクションのプロパティ(タイトル、コンテンツ、価格など)
- Taxonomies(タクソノミー) — 分類システム(カテゴリ、タグ、カスタムタクソノミー)
- Menus(メニュー) — 管理者が編集可能なナビゲーション構造
- Widget Areas(ウィジェットエリア) — サイドバーやフッター用の構成可能なコンテンツ領域
- Plugins(プラグイン) — フック、ストレージ、UIを介して機能を追加する拡張機能