はじめに
microCMSと、ヘッドレス化したWordPressの両方を使う機会があったので、比較して感想を書きました。
どっちを使うか迷っている人がいたら参考になれば嬉しいです。
ヘッドレスCMSとは
そもそもヘッドレスCMSとは何なのかという話ですが、ヘッドレスCMSとは、フロントエンドとバックエンドが完全に分離しているCMSのことです。
WordPressは画面表示の機能(フロントエンド) と コンテンツ管理機能(バックエンド) の機能が一つのシステムにまとまっていますが、コンテンツ管理機能のみ担当するCMSをヘッドレスCMSと呼びます。
WordPressをヘッドレス化する際は、コンテンツ管理のみをWordPressで行い、フロント側はAPIでコンテンツを取得して表示させるという方法になります。
2つのサービスを比較してみた
機能別に2つのサービスを比較してみました。
カスタムフィールド
カスタムフィールを追加する場合、microCMSの方が圧倒的に簡単に追加できます。
microCMSの場合、そもそもコンテンツID(id)や各種日時(createdAt, updatedAt, publishedAt, revisedAt)以外のフィールドは最初から自分で定義することができるので、「カスタムフィールド」という表現は違うかもしれません。
このように直感的でわかりやすいUIになっていて、ぽちぽちと簡単に定義することができます。
対してWordPressですが、カスタムフィールドを追加する機能は標準で装備されているものの、非常に使いにくいです。
フィールドタイプがテキストのみ・必須項目にできない・文字数制限ができない という制約があります。
したがってほとんどの場合,Advanced Custom Fieldsなどのプラグインを使用することになりますが、バージョン管理が必要になりますし、脆弱性の問題もあります。
ちなみにAdvanced Custom Fieldsは、課金をしないと繰り返しフィールドが使えません。
なので繰り返しフィールドが必要な場合は、Advanced Custom Fieldsに加えてSmart Custom Fieldsを使用しています。
microCMSの場合は、繰り返しフィールドも標準機能で用意されているので大好きです。
API
APIに関しても、microCMSの大優勝です。
microCMSのAPIドキュメントはこちら
microCMSは、APIプレビュー機能というものが付いていて、管理画面から簡単にAPIのレスポンスを確認することができます。
これが開発する際に非常に便利でありがたや〜と思っています。
対してWordPressですが、標準でREST APIが使えるものの、こちらもまた非常に使いにくいです。
WordPress REST APIのドキュメント
ヘッドレスCMSとして使うには無駄な項目が多い(そもそもヘッドレスCMSとして作られていないので当たり前ですが)ですし、カスタムフィールドを追加した場合はソースをいじらないとレスポンスに追加されません。
さらに標準のAPIだと、最大100件までしか記事を取得できないので、一度に取得したい記事数が100件を超えそうな場合はAPIを自作する必要があります。
「WordPress標準でREST API使えるじゃん!」と思っていて痛い目見ました。
ただ、APIを自分の好きなように作りたいという場合はWordPressの方が良いですね。
プレビュー機能
プレビュー機能に関しては、五分五分かなと思います。
WordPressの場合、独自のお約束や組み込み関数などがあるので慣れるまでは少し大変かもしれませんが、WordPress内で完結できます。
対してmicroCMSですが、下書きの記事をプレビューするには、アプリケーション側の実装が必要になり、
- WebアプリケーションにDraftKeyを渡す
- Webアプリケーションが受け取ったDraftKeyをパラメータ含めてAPIを呼び出す
- 取得したデータを画面に表示する
という手順を取らなければいけません。
参考:microCMSドキュメント:下書き・予約投稿、draftKey、画面プレビュー
まとめ
- microCMSの方が圧倒的に使いやすい
- 自由度の高さはWordPressに軍配が上がる
まだいろんなサービスがあるので、色々触っていきたいです。