WordPressの"精神的後継者"、新CMS「EmDash」で実際にサイトを構築してみた

記事
IT・テクノロジー
前回、WordPressの"精神的後継者(the spiritual successor to WordPress)"を謳う、新CMS「EmDash」の概要を紹介しました。


今回は実際にEmDashでサイトを構築してみた記録です。

■ Podmanで完全隔離

サプライチェーン攻撃が気になるのでnode.jsは隔離します。
node.jsもpnpmもホストマシンには一切入れていません。
全てpodmanコンテナの中に閉じ込めました。

サプライチェーン攻撃対策として、.npmrcでignore-scripts=trueを設定し、
明示的に許可したパッケージだけネイティブビルドを許可しています。
コンテナ自体もrootless、read-only、cap-drop=ALLで動かしています。

nix flakeのdevshellが提供するのはpodmanコマンドだけ。
emdash-start、emdash-buildといったコマンドをflakeで定義してあるので、emdash-startとするだけでEmDashが起動します。

ちなみに構築は全てClaude Codeに任せました。
設定ファイルの作成、コンテナ構成、デプロイ設定など、何から何まで全てAIが書いています。

■ 管理画面


EmDashにはGUIの管理画面がついてきます。
/_emdash/adminにアクセスするだけ。

認証はPasskey(WebAuthn)がデフォルトでパスワードレスです。
Passkeyの他、OAuthやマジックリンクも使えます。
最初からPasskeyで始まるのはいかにもモダンなCMSという感じ。

emdash-passkey.png
コレクション(記事やプロジェクト)の作成・編集、メディアライブラリ、メニュー管理、タクソノミー などWordPressでできることは大体できます。

emdash-admin.png


■ テンプレートが5種類


リリースされたばかりなのにテンプレートが5種類あります。

・Blog — カテゴリ、タグ、検索、RSS、コメント、ダークモード
・Marketing — ヒーローセクション、料金表、FAQ、問い合わせフォーム
・Portfolio — プロジェクトグリッド、タグフィルタ、ケーススタディ
・Starter — 上記の機能全部入り
・Blank — 最小限の骨格

各テンプレートにCloudflare版があります。今回はPortfolioをベースに、Blogセクションを追加した構成にしました。
今回は動作確認のみなので変更したのはサイトタイトル、タグラインくらいで他は全てテンプレートのままです。

Screenshot 2026-04-09 at 21-34-47 Virtual Memory.png

■ プラグインシステム


WordPressのプラグインは全権限でDBやファイルシステムにアクセスできます。
EmDashのプラグインはCloudflare WorkerのDynamic Worker Loaderを使ったサンドボックスで動きます。
各プラグインにはcapability manifest(権限宣言)があり、例えばread:contentとemail:sendだけ許可されたプラグインはコンテンツの読み取りとメール送信しかできません。CPU時間やネットワークアクセスにも制限がかかります。
ただしサンドボックスにはDynamic Workersが必要で、Cloudflareの有料プラン($5/月〜)が必要です。無料枠ではtrustedモード(サイト本体と同じプロセスで動く)になります。自分で書いたプラグインや信頼できるものなら問題ありませんが、権限の強制はされません。有料プランに移行すれば、設定の切り替えでサンドボックスが有効になります。


■ Cloudflare無料枠で運用可能


本番環境はCloudflareの無料枠内で動きます。

・D1(データベース): 5GB、500万行リード/日
・R2(メディアストレージ): 10GB、1000万リード/月
・Workers(ランタイム): 10万リクエスト/日

アクセス数がそれほど多くないサイトなら十分でしょう。
WordPressのレンタルサーバー代や保守料が丸ごと不要になります。


■ REST APIとMCP Server


EmDashにはREST APIが組み込まれています。
/_emdash/api/以下に記事のCRUD、メディア管理、スキーマ操作、タクソノミー、メニュー、全文検索、サイト設定といったエンドポイントが揃っています。Bearer tokenで認証して外部から操作できます。

管理画面を開かなくても、CLIやスクリプトからコンテンツを投稿・編集できるということです。

さらにMCP Serverも内蔵しているので、Claude CodeやCodexなどのAIツールから直接サイトのコンテンツを操作できます。

WordPressにもREST APIはありますが、MCPは後付けのプラグインが必要です。
EmDashは最初からAIとの連携を前提に設計されています。

■ 気になった点


まだベータ版(v0.1.0)なので課題もあります。

・日本語タイトルのページが404になる場合がある
・管理画面の一部にまだバグがある
・CJK(日中韓)コンテンツの読了時間表示が正しくない
・手動公開がうまくいかないケースがある

日本語の情報もほぼありません。

■ まとめ


EmDashはベータですが完成度は高いです。

管理画面はWordPress並み、セキュリティはそれ以上。
更新頻度低めで、それほど多くの機能を求めないのであればEmDashで十分かも知れません。

WordPressからのインポート機能もあるので、既存サイトの移行も簡単にできそうです。

今回はローカル環境での動作確認のみでしたが、次回は実際にCloudflareにデプロイしてみたいと思います。



サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら