EmDashの紹介

このページ

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を介して機能を追加する拡張機能

次のステップ