この記事は、AIアシスタント「Muse」との朝活で、あれこれ議論しながら作りました。
Lyre3 GamesのTechブログに載せた記事の転載です。ブログ版はこちらです。
インターネットのホームページの約3割は、WordPressという仕組みで作られていると言われています。
WordPressが広まったのには、ちゃんと理由があります。
自分でページを増やせて、足りない機能は「プラグイン」という部品で付け足せる。
その部品の豊富さは、いまも大きな強みです。
それでも、ふと思うのです。
パン屋さんの「今週の新作」、小さな町のお知らせ、個人の作品紹介。
そういうホームページに、本当にそこまで大がかりな仕組みが必要でしょうか。
お知らせを1行直すための、大がかりな維持
WordPressは、ページを見る人が来るたびに、サーバーの中でプログラムを動かしてページを作ります。
そのため、サーバーを借り続けなければならず、仕組み自体の更新、部品の更新、乗っ取りへの対策も欠かせません。
更新を止めれば危なくなり、更新をすれば画面が崩れることもある。
部品同士の相性で、ある日突然表示がおかしくなることもあります。
お知らせを1行直したいだけなのに、自分では怖くて触れない。
結局、業者さんに頼むことになる。
そういう声を、まわりでよく聞きます。
例えるなら、店先の掲示板を貼り替えるために、小さな発電所を維持しているようなものです。
発電所は立派ですが、掲示板のためだけなら、重すぎます。
プログラムを動かさない、という選択
私が作ったのは、その逆の仕組みです。
書くのは、ただの文章ファイルです。
見出しや太字を簡単な記号で書ける「Markdown」という書き方で、お知らせや紹介文を書きます。
その文章をもとに、あらかじめページを作って置いておく。
見る人が来ても、サーバーでプログラムは動きません。
だから、壊れにくく、表示が速く、維持の手間もほとんどかかりません。
更新のたびに、サイトが崩れないか心配する必要もありません。
難しい裏側の仕組みは、Markdown CMSが引き受けます。
使う人が触るのは、文章だけです。
正直に言うと、できないこともあります
この仕組みには、前提があります。
「プログラムを動かさない」という前提を守る限り、できないことがあるのです。
たとえば、訪問者がその場で書き込むコメント、会員だけが見られるページ、その場で完了する支払いや予約の受付。
こうしたものは、どこかでプログラムが動いて、書き込みを受け付けたり、本人かどうか確かめたり、支払いが済んだか判断したりしなければ成り立ちません。
できない、と隠すつもりはありません。
むしろ先に言っておきたいことです。
ただ、だから全部が無理なわけでもありません。
必要になったら、その機能の分だけ、外部の仕組みを借りればいいのです。
全部入りの仕組みを自前で常時動かし続ける代わりに、必要な分だけ借りる。
それが、この仕組みの足し算の考え方です。
そして、お知らせと読みものが中心のホームページでは、その「できないこと」の多くが、そもそも要らない機能だったりします。
使う人に、難しい道具を見せない
もうひとつ、大事にしていることがあります。
エンジニアの私にとっては便利な道具でも、普通の人には「名前を聞いただけで怖い」と感じられるものがあります。
実際、私のまわりでもそういう反応をよく見てきました。
だから、使う人に難しい道具を意識させない、触らせない形を目指しています。
いまの入口は、裏側の保管場所に文章ファイルを置く形です。
これは私のようなエンジニアには効率的ですが、普通の人にそのまま渡すものではありません。
そこで、入口を増やす設計を進めているところです。
普段使い慣れたクラウドのフォルダに文章ファイルを置くだけで更新できる形と、ブラウザでそのまま文章を書ける自分の作業場から作れる形です。
どちらも、裏側の難しい仕組みは見せないままにするのが条件です。
なお、Facebookにいつも通り投稿するだけで記事になる形の方は、実際に動くことを確かめ済みです。
もうひとつ、実際にやってみたのが、AIアシスタントに手伝ってもらう形です。
私が使っているAIアシスタント「Muse」に頼むと、Facebookへの投稿や、その投稿を記事の形にして裏側の保管場所(GitHub)に置き、サイトに反映するところまでやってくれます。
使う人がGitHubを触るわけではありません。
書く人は文章を書くことに集中して、手順の多い作業はAIに任せる。
これも、難しい道具を見せないためのひとつの形だと思っています。
もう、動いています
これは、思いつきの話ではありません。
町のサイト「みどり野町」、パン屋さん「haru no tane bakery」、フルーツのお店「果実日和」、グルメ案内「山形グルメ案内」、小説サイト「よむきく」。
性格の違う5つのサイトが、この仕組みで実際に公開されています。
文章を置けば自動でページが作られ、それらをまとめた統合ポータル「まちのつながり」には73件の情報が集まって、定期的に自動で更新され続けています。
そして、今読んでいるこのTechブログ自体も、同じ仕組みで作られています。
親サイトのLyre3 Gamesも含め、この記事も、文章ファイルを置いて自動でページにしたものです。
仕組みは、公開しています
せっかくなので、この仕組み自体も、自由に使える形(MITライセンス)でGitHubに公開しています。
よければ持って行って、自分のサイトで試してみてください。
詰まるところがあれば、相談してもらっても構いません。
ホームページは、もっと身軽でいい。
次回は、この仕組みの見た目を、AIに頼んで変える手順を書いてみます。
その次に、「できること」と「できないこと」を、もう少し正直に並べるつもりです。
参考リンク
紹介したサイトと、その記事です。
- みどり野町 ― 秋の実りフェスタ開催のお知らせ
- haru no tane bakery ― これからのパン便り
- 果実日和 ― 蜜入りりんごの秋ギフト
- 山形グルメ案内 ― 温泉街で見つける喫茶時間
- よむきく ― 三国志
- まちのつながり ― 5サイトをまとめた統合ポータル
- Lyre3 Games ― Techブログ
- 仕組みの公開先 ― GitHub(oosawak/markdown-cms)
技術者の方へ
PHPやNode.jsの脆弱性と更新が、なぜ維持の負担になるのか。
技術的な裏付けは、別資料にまとめました。
技術者向け補足資料:PHPとNode.jsの脆弱性・更新・メジャーバージョンアップ
(同じ資料はQiitaにもあります)

