EmDash 学習記録 #1:WordPress の次を考えて、ブログを立ち上げた
PHP2Shell をきっかけに EmDash を触り始めた。ローカルでブログを立ち上げ、WordPress との違いと、記事が Portable Text という部品で保存される仕組みを確かめた1日目の記録。
WordPress で長くサイトを作ってきたが、PHP 本体の脆弱性(PHP2Shell)をきっかけに、次の選択肢として EmDash を触り始めた。今すぐ乗り換えるためではなく、EmDash と Cloudflare の技術を理解しておくための学習として。この記事はその1日目の記録。
なぜ EmDash なのか
- PHP を使わない。TypeScript と Astro で書かれている
- プラグインがサンドボックス(隔離された環境)で動く
- 設定も記事もコードと API で扱えるので、AI と一緒に作業しやすい
1日目にやったこと
- Node.js を 22.23.4 に上げた(EmDash 1.4.0 は 22.16 以上が必要)
npm create emdash@latestで Blog テンプレートを作成。まずはローカル(Node.js と SQLite)で動かす構成npm run devで起動し、管理画面のセットアップでサイトとアカウントを作成
WordPress との対応
astro.config.mjsはwp-config.phpのようなもの。データベースとファイル置き場を決めるseed/seed.jsonは投稿タイプやカスタムフィールドの定義src/pages/はテーマのテンプレート。posts/[slug].astroがsingle.phpにあたる
記事は HTML ではなく部品として保存される
本文は Portable Text という JSON で保存される。見出しなら「h2 の部品で、文字はこれ」という形。WordPress のように HTML の文字列をそのまま持つのではないので、AI が見出しや段落を直しても画面が崩れにくい。
CLI で記事を取り出すと Markdown に変換されて返ってくる。--raw を付けると JSON そのものが見える。
AI との付き合い方で決めたこと
ローカルでは CLI がログインなしで動く。便利だが、本番では AI に渡す権限を絞る必要がある。この記事も AI に下書きとして作らせ、公開ボタンは自分で押す。AI は下書きまで、公開は人という線引きを、最初から習慣にしておく。
次にやること
- コンテンツの型(スキーマ)を自分で足してみる
- テーマの見た目を変えて、データが画面になる流れを追う
- Cloudflare(Workers、D1、R2)に載せる


Discussion