CMS とは
CMS - コンテンツ管理システム、基本的にはウェブサイトを管理するためのシステムで、最も有名なのは WordPress です。
WordPress を使わない理由
UI の開発体験が好きではないので、WordPress は使いたくありません。コーディングでやる方が好みです。ただ、ブログ記事を書くシンプルさと、プラグインによる強力さは気に入っています。でも、たくさんのものを必要としないなら、シンプルで無料の静的サイトで十分です。サーバー不要で年 $9 USD です。
あとはオープンソースの CMS を組み合わせれば準備完了です。
CMS を探す
ここ数ヶ月、Tina、Netlify、Sanity など、いくつかの CMS を渡り歩いてきました。
今使っている CMS は Tina で、まあまあだと思います。ただ、Astro で使ったテンプレートにはあちこち問題があります。順風満帆とはいきませんが、少なくとも動いています。
本来は、シンプルな静的サイトのブログが欲しかっただけです。11ty のサイトで Netlify(Decap)を使っていましたが、何か新しいものを試したくなり、今は Astro と Tina を使って体験しています。
知っておきたかったこと
Reddit で人々が勧める CMS を片っ端から調べていくうちに、Sanity と Payload に出会いました。
ヘッドレス CMS と非ヘッドレス CMS の違いを知っておきたかったです。
ヘッドレス CMS と非ヘッドレス CMS
Sanity と Payload が違うのは、ヘッドレスであるという点です。
ヘッドレス CMS とは、コンテンツ(ブログ記事やページなど)がフロントエンドから分離されていることを意味します。データはサーバー上に保存され、セルフホストでも彼らのクラウドでも構いません。そしてフロントエンドは API を呼び出して、JSON 形式でそのデータを取得するだけです。
私が使ってきた Netlify や Tina CMS のようなヘッド CMS は、サーバーなしで動作します。「管理」システムはウェブサイトのデータを表示して直接変更を加え、その後プロジェクト全体を本番用に再ビルドします。また、ブログ記事は Markdown で書かれるので、新しい記事を書くたびにソースフォルダに新しい .md ファイルができます。
つまり、サーバーがあるものとないもの。一方はおそらく JSON を使い、もう一方は Markdown を使います。
そしてもちろん、サーバーがないものの方がセットアップが簡単で、ほとんどの場合運用コストも低くなります。
理解できないこと
世の中にはあまりにも多くの CMS があり、すでに大量に省略しています。それぞれ少しずつ動作が異なりますが、大部分は同じです。
なぜ人々が WordPress に流れるのかは分かります。長い歴史があり、誰もが使い方を知っていて、好むと好まざるとにかかわらず強力でスケーラブルです。
代替案としては、Sanity は自前のバックエンドをホストせずに済む寛大な無料枠があるので良いです。使いやすさなら、Netlify や Tina でいいかもしれません。でもスケールさせたいなら、Sanity の方が良い選択に思えます。あるいは WordPress に戻ることもできます。
しかし、私が理解できないのは、ヘッドレスかどうか、Markdown かどうかが、長期的にどう関係するのかということです。
おそらく、セルフホストのヘッドレス CMS バックエンドは長く使えますし、ベンダーロックインもありません。でも、データの保存と取得にそのヘッドレス CMS システムを使うよう、自分を合わせる必要はあります。
一方で Markdown は、基本的にすべての非ヘッドレス CMS で動作します。ただ、サイトに数千、それ以上の Markdown ファイルを保存する必要があるかもしれませんが、それは長期的な解決策には思えません。
結論
というわけで、今は気にしていません。
好きなものを使い、ブログ記事が数万件に達するまで待てばいいのです。その頃にはお金を稼いで、その時点で流行っている新しい CMS への移行を開発者に頼めるはずです。あまり悩みたくありません。