EmDash の紹介

このページ

EmDash は Astro ネイティブのコンテンツ管理システム です。コレクション、タクソノミー、メニュー、ウィジェット、洗練された管理 UI といったおなじみの CMS のパターンを、TypeScript のフルサポートとポータブルなデプロイとともに Astro サイトに直接もたらします。

EmDash とは

EmDash は Astro 専用に作られた CMS です。Astro 6 の Live Content Collections を使い、再ビルドなしでランタイムにコンテンツを配信します。コンテンツは SQLite 互換データベース(D1、libSQL、ローカル SQLite)に、メディアは S3 互換ストレージ(R2、ローカルファイルシステム)に保存されます。

主な特徴:

  • データベースファーストのスキーマ — コレクションとフィールドはコードではなくデータベースで定義します。管理 UI からコンテンツタイプを作成・変更できます。
  • Live Collections — コンテンツの変更はすぐに反映されます。静的な再ビルドは不要です。
  • プラグインシステム — WordPress にインスパイアされたフック、ストレージ、設定、管理 UI の拡張。
  • クラウドにポータブル — Cloudflare(Workers + D1 + R2)、Node.js、ローカル SQLite、任意の S3 互換ストレージで動作します。

EmDash が「ない」もの

  • ヘッドレス CMS ではありません — EmDash は Astro と密接に統合されています。API 経由で呼び出す別サービスではありません。
  • WordPress 互換ではありません — PHP も、WordPress プラグインの直接実行もありません。ただし WordPress のコンテンツと概念はきれいに移行できます。
  • ページビルダーではありません — EmDash は構造化コンテンツに注力します。ビジュアルなページ構築には Astro コンポーネントを使います。

EmDash が向いている人

代理店の開発者

再利用可能なプラグインとテーマですばやくクライアントサイトを立ち上げ。PHP のセキュリティ更新や プラグインの衝突に悩まされません。

個人開発者

CMS 内蔵のフルスタックフレームワーク。別のヘッドレス CMS を運用する必要はありません。

コンテンツ編集者

直感的な管理パネル。コードに触れずにコンテンツを作成・編集できます。

WordPress ユーザー

コンテンツとプラグインの移行パス。モダンなツールと馴染みのある概念。

アーキテクチャの概要

┌─────────────────────────────────────────────────────────────┐
│                    あなたの Astro サイト                     │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                 EmDash 統合                           │  │
│  │                                                       │  │
│  │  ┌─────────────┐  ┌─────────────┐  ┌──────────────┐   │  │
│  │  │  コンテンツ  │  │   管理      │  │   プラグイン │   │  │
│  │  │  エンジン    │  │   パネル    │  │              │   │  │
│  │  └─────────────┘  └─────────────┘  └──────────────┘   │  │
│  │                                                       │  │
│  │  ┌───────────────────────────────────────────────────┐│  │
│  │  │                  データ層                       ││  │
│  │  │    SQLite/D1      ←→  Kysely  ←→  R2/S3/ローカル  ││  │
│  │  └───────────────────────────────────────────────────┘│  │
│  └───────────────────────────────────────────────────────┘  │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                   Astro フレームワーク                │  │
│  │        Live Collections • セッション • ミドルウェア    │  │
│  └───────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

コアコンセプト

進む前に、次の用語に慣れておきましょう。

  • Collections — データベースで定義されたコンテンツタイプ(投稿、ページ、商品など)
  • Fields — コレクションのプロパティ(タイトル、本文、価格など)
  • Taxonomies — 分類体系(カテゴリー、タグ、カスタムタクソノミー)
  • Menus — 管理画面で編集できるナビゲーション構造
  • Widget Areas — サイドバーやフッター向けに設定可能なコンテンツ領域
  • Plugins — フック、ストレージ、UI によって機能を追加する拡張

次のステップ