ヘッドレスCMSとは、ざっくりコンテンツの管理(中身)だけを担い、表示部分(見た目)は自分で用意するCMSとなります。
通常、WordPressは中身の管理(投稿・編集)+ 表示(テーマ・テンプレート) を全部やります。
ヘッドレスCMSは、中身の管理だけをやります。バックエンドに当たる部分ですね。
有名なヘッドレスCMS
有名なヘッドレスCMSには下記があります。
CMS名 | 特徴 | 日本語対応 | 管理画面 | API種別 | ホスティング | 開発者向けレベル | 無料プラン |
---|---|---|---|---|---|---|---|
microCMS | 日本製。ノーコードUIが使いやすい | ✅ あり | ◎ 直感的 | REST API | 提供あり(SaaS) | 初心者〜中級者 | ✅ あり(制限あり) |
Newt | 日本製。画像管理やドラッグUIも優秀 | ✅ あり | ◎ 高機能 | REST API | 提供あり(SaaS) | 初心者〜中級者 | ✅ あり(制限あり) |
Strapi | オープンソース。自己ホスト可能 | △多言語 | ○ やや複雑 | REST + GraphQL | 自分で用意(自己管理) | 中級者以上 | ✅ あり(OSS) |
Payload | オープンソースでTypeScript対応 | ❌ 英語のみ | △ 技術的 | REST + GraphQL | 自分で用意(自己管理) | 中級者以上 | ✅ あり(OSS) |
Contentful | グローバルで有名。信頼性◎ | ❌ 英語のみ | ◎ モダン | REST + GraphQL | 提供あり(SaaS) | 中級者〜上級者 | ✅ あり(制限あり) |
検討した結果、私はWordPressをヘッドレスCMSとして使ってみようと至りました。なぜそう考えたかはどこかで書こうと思います。
WordPressをヘッドレスCMSとして扱うために整理する
実現したいことは下記です。
これができれば、たいていの要件をもつアプリケーションでも対応ができると思います。
・WordPress管理画面が扱える
・投稿(posts)、固定ページ(pages)などの基本コンテンツをAPI経由で取得可能にする
・カスタム投稿タイプをAPI経由で取得可能にする
・カテゴリー・タグの取得をAPI経由で取得可能にする
・メディア(画像・PDFなど)のURL取得
・WordPress REST APIの有効化
・WordPress REST APIの拡張( JWT認証、CORS対応 )
・WordPress REST APIのセキュリティ対策 ( APIレート制限、APIアクセス制御、IPホワイトリスト )
・WordPress全般のセキュリティ対応(2FA、ブルートフォース対策)
・キャッシュなどのパフォーマンス戦略
ヘッドレスCMS化すると、themeファイルに依存することがなくなるため、フロントエンドの技術的な自由度が高くなります。
一方で、WordPressはヘッドレスCMSではないので、自分でカスタマイズする必要があります。
プラグインで対応できるところもあれば、コードを書く必要もあります。そういった意味で保守やセキュリティ対策はSaasを使うよりも負担があります。