CLIツール
emdash-cms/emdash avatar
emdash-cms/emdash

EmDash の CMS 設計は WordPress 移行後を見据える

EmDash は、Astro に基づくフルスタック TypeScript CMS です。 WordPress の精神的な後継者。

スター 12,331フォーク 1,151TypeScriptMIT

ひと目でわかる

これは何?
Astro と Cloudflare を軸に、Portable Text、SQL スキーマ、能力宣言付きプラグイン、WordPress 移行を組み合わせる CMS を読み解きます。
誰に向いている?
Astro を使うサイトで、管理 UI と構造化コンテンツを一体化したい開発者に向きます。導入前には `npm create emdash@latest` の生成内容、Cloudflare Dynamic Workers の有料アカウント条件、`worker_loaders` を無効にした場合の挙動、移行後の Portable Text と権限を確認してください。
商用利用できる?
できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に TypeScript です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

Astro と Cloudflare 上の WordPress 型 CMS

EmDash は Astro と Cloudflare を基盤とするフルスタック TypeScript CMS です。リポジトリのメタデータでは WordPress の後継と説明され、README は WordPress を支配的にした拡張性、管理 UX、プラグインエコシステムというアイデアを、サーバーレスで型安全な基盤の上に再構築すると述べています。プラグインはサンドボックス化された Worker 分離環境で実行され、WordPress のプラグインアーキテクチャにおける根本的なセキュリティ問題への対処とされています。プロジェクトは現在ベータプレビューです。

セットアップと Cloudflare への依存

README の開始コマンドは `npm create emdash@latest` です。EmDash は安全なサンドボックスプラグインを実行するために Dynamic Workers に依存しており、Dynamic Workers は現在有料の Cloudflare アカウントでのみ利用できます。README は月額 5 ドルからのアップグレードを推奨するか、`wrangler.jsonc` の `worker_loaders` ブロックをコメントアウトしてプラグインを無効にするよう案内しています。EmDash は Cloudflare の D1、R2、Workers 上、または SQLite を備えた Node.js サーバー上で実行できます。README には、プラグインを無効にした場合の能力強制の動作は記載されていません。

Portable Text による構造化コンテンツ

EmDash はコンテンツを Portable Text として保存します。これは構造化 JSON 形式であり、メタデータを埋め込んだシリアル化 HTML ではありません。README によると、これによりコンテンツとプレゼンテーションが分離され、同じコンテンツを HTML の解析なしでウェブページ、モバイルアプリ、メール、API レスポンスとしてレンダリングできます。コンテンツタイプはコードではなくデータベースで定義され、開発者以外も管理 UI からコレクションを作成・変更できます。各コレクションには型付きカラムを持つ実際の SQL テーブルがあり、開発者は `npx emdash types` でライブスキーマから TypeScript 型を生成できます。リッチテキスト編集は TipTap を使用し、クエリは README の例にあるように Astro Live Collections を使用します。

能力マニフェストを持つサンドボックスプラグイン

プラグインは `definePlugin()` API で作成し、`read:content` や `email:send` などの能力を宣言します。README には、コンテンツ公開後にメールを送信するプラグインの例があり、ライフサイクルフックを使用します。Cloudflare では、プラグインは Dynamic Worker Loaders 経由で隔離された Worker サンドボックスで実行され、各プラグインは宣言された能力マニフェストを持つため、特定の能力を要求したプラグインはその操作だけを行えます。README は Cloudflare 外部での能力強制の実装を明記しておらず、移植性テーブルではプロセス内実行をセーフモードとして挙げています。

管理 UI、認証、WordPress 移行

管理 UI には、ビジュアルスキーマビルダー、署名付き URL によるドラッグ&ドロップアップロード対応のメディアライブラリ、ナビゲーションメニュー、タクソノミー、ウィジェット、WordPress インポートウィザードが含まれます。認証は WebAuthn による passkey 優先で、OAuth とマジックリンクのフォールバックがあります。ロールベースのアクセス制御は、Administrator、Editor、Author、Contributor をカバーします。移行では、WXR エクスポート、WordPress REST API、または WordPress.com から投稿、ページ、メディア、タクソノミーをインポートできます。エージェントスキルはプラグインとテーマの移植を支援しますが、README は変換プロセスの完全性を説明していません。

移植可能なプラットフォーム抽象化

EmDash はすべてのレイヤーで移植可能な抽象化を使用し、SQL には Kysely、ストレージには S3 API を使用します。README は SQLite、D1、Turso、PostgreSQL、R2、AWS S3、ローカルファイルをサポート対象として挙げています。移植性テーブルは Cloudflare サービスと代替を並べて示しています。D1 は SQLite、Turso、PostgreSQL と、R2 は任意の S3 互換サービスと、KV は Redis またはファイルベースのセッションと、Worker 分離はプロセス内セーフモードと対応します。README は Cloudflare で最もよく動作するが、ロックインではないと述べています。パフォーマンスやレイテンシの測定値は提供されていません。

ステータス、テンプレート、開発

EmDash にはブログ、マーケティング、ポートフォリオの 3 つのスターターテンプレートが同梱され、いずれもダークモードとライトモードを備えています。リポジトリは pnpm monorepo で、core、auth、blocks、cloudflare、plugins、WordPress ブロックコンバーターなどのパッケージが含まれます。ローカル開発では、README がクローン、インストール、ビルド、Node.js + SQLite のデモ実行のコマンドを提供しており、Cloudflare アカウントは不要です。ステータスセクションはベータプレビューと貢献の歓迎を述べ、ドキュメントと CONTRIBUTING.md にリンクしています。プロジェクトは MIT ライセンスで、2026 年の Cloudflare Inc. に著作権があります。ライセンスは使用、コピー、変更、結合、公開、配布、再ライセンス、販売を許可し、保証を否認します。サポートやメンテナンスの約束は記載されていません。

編集部の結論

Astro を使うサイトで、管理 UI と構造化コンテンツを一体化したい開発者に向きます。導入前には `npm create emdash@latest` の生成内容、Cloudflare Dynamic Workers の有料アカウント条件、`worker_loaders` を無効にした場合の挙動、移行後の Portable Text と権限を確認してください。ベータプレビューのため、本番サポートや監査状況は README から判断できません。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート