AIに話しかけるだけでサイト更新——Elwood CMSを開発した理由
小さな修正のたびに業者へ連絡するあの面倒さをなくしたくて、AIチャットで更新できるヘッドレスMarkdown CMS「Elwood CMS」を作った。開発の背景と、Cloudflare Workers・D1・Preactという軽量スタックへのこだわりをまとめる。
- CMS
- AI
- Cloudflare Workers
「お知らせを一番上に」だけで更新が終わってほしい
サイトの営業時間が変わった。新しいキャンペーンを告知したい。写真を1枚差し替えたい。
どれもコードを書くほどの作業ではないのに、多くの現場では「制作会社に連絡 → 見積もり待ち → 反映」という重い手順を踏むことになる。数行のテキスト修正のために、数日かかることも珍しくない。
正直に書いておくと、これは技術の問題ではなく体験の問題だ。既存のCMSは十分に高機能だが、管理画面のフォームや構造化フィールドを前にした瞬間、非エンジニアの手は止まる。だから多くの小さな会社は、結局「編集は業者に頼む」という選択に戻ってしまう。
この摩擦をなくしたくて、株式会社秋葉機関で開発したのが Elwood CMS だ。
Elwood CMSとはなにか
ひとことで表すなら、「AIに日常言葉で頼むだけでページが更新できる、ヘッドレスMarkdown CMS」である。
使い方はシンプルに3ステップに絞ってある。
- 話しかける — 「お知らせを一番上に移動して」「料金を表にまとめて」のように、思ったままの言葉で入力する
- 確認する — AIが出してきた変更案を、変更前後の差分で確認する
- 公開する — 問題なければワンクリックで反映する
裏側でMarkdownのfrontmatterやHTML構造をいじっているのはAIだが、ユーザーの目に触れるのは「チャットとプレビュー」だけでいい。HTMLタグの意味も、YAMLの書き方も、覚える必要がない。
AIには「決定権」を渡さない
ここが設計上いちばん譲れなかった部分だ。
AIによる自動編集というと、「勝手に書き換えられて事故る」不安がついて回る。Elwood CMSではAIの出力を本文に直接書き込まない。必ず「編集案」としてチャット欄にステージングし、変更箇所だけを行単位のdiffで提示する。ユーザーが「反映する」を押すまでは、保存されているMarkdownは1文字も変わらない。
つまりAIは提案者であって、決裁者ではない。この一線を引いたことで、非エンジニアにも安心して渡せる編集体験になったと思っている。
さらに、保存するたびに変更前の状態を自動でスナップショットしている。AIの提案どおりに公開してみて「やっぱり前の方が良かった」となれば、履歴から1クリックで巻き戻せる。取り消せるとわかっているからこそ、人は気軽に試せる。
画像はアップロードするだけで面倒を巻き取る
サイト更新でもう一つ地味に厄介なのが画像だ。スマホで撮った数MBの写真をそのままアップロードすると、ページが重くなる。かといって毎回リサイズや変換をお願いするのも本末転倒だ。
Elwood CMSでは、アップロード時にブラウザ側で自動的に横幅とファイルサイズを最適化し、配信時にもフォーマットを自動変換する。ユーザーは「撮った写真をそのまま置く」だけでよく、最適化はシステムの仕事にしてある。
チームで使う前提の設計
個人サイトだけでなく、複数人で運営するチームサイトも見据えている。招待はメールアドレスを入力するだけで完結し、招待されたメンバーはパスワードなしのメールリンクでログインする。パスワードを管理する必要も、それが漏れる心配もない。
誰が・いつ・何を変更したかは自動で記録されるので、「あの修正は誰がやったんだっけ」を探す作業からも解放される。
軽量スタックへのこだわり
ここからは少し技術寄りの話になる。
Elwood CMSはCloudflare Workers上で動くHonoベースのAPIと、Preact + Viteの管理画面という構成にしている。データベースはCloudflare D1、画像はR2。サーバーという概念を極力持ち込まず、エッジで完結させることを意識した。
管理画面のフレームワークにReactではなくPreactを選んだのも、この思想の延長にある。APIはほぼ同じなのに、バンドルサイズは大きく違う。少人数のチームでインフラコストや運用負荷を抑えたい場面では、この差が積み重なって効いてくる。AIチャットでのストリーミング応答や、リアルタイムに更新されるプレビューのようなインタラクションの多いUIほど、軽量なランタイムの恩恵は大きいと感じている。
認証にはBetter Authのマジックリンク方式を採用し、招待制であることをそのままセキュリティの前提にした。誰でもサインアップできるSaaSではなく、「招待された人だけが入れる」小さなワークスペースという設計だ。機能を広げるより境界を絞ることを、開発チームとして優先した。
誰のためのツールか
想定しているのは、パソコンが得意でない店舗オーナーや個人事業主、そして「クライアントのサイトを作ったはいいが、更新のたびに呼び出される」制作者側の両方だ。
前者にとっては、AIチャットが編集画面そのものになる。後者にとっては、納品後の細かい修正依頼を減らすための仕組みになる。どちらも「難しい操作をAIに肩代わりさせる」という一点でつながっている。
まだ招待制の小さなプロダクトだが、株式会社秋葉機関では、サイト更新という日常の小さな摩擦を減らすところから始めていきたいと考えている。
サービスの詳細は Elwood CMS を見てほしい。
Last updated