こんにちは、XI本部プロダクトイノベーションセンターの瀧川亮弘です。
現在行っているWebサイトの運用において、ヘッドレスCMSの導入を検討しています。
本記事では、ヘッドレスCMSの選定で調査したことを共有します。
ヘッドレスCMSとは
ヘッドレスCMSとは、フロントエンドを持たない、CMS(コンテンツ管理システム)のことです。
ここで言うコンテンツとは、ウェブサイトやアプリで使用される、テキスト、画像、動画、音声、ドキュメントなどのデジタルデータを指します。
WordPressのような従来型のCMSでは、コンテンツの管理と表示が一体化しています。
管理画面からフロントエンド含めてオールインワンでウェブサイト構築が行えるという利便性がある一方、フロントエンドの柔軟性に欠けるという問題があります。
そこで登場するのがヘッドレスCMSです。
ヘッドレスCMSは、コンテンツの管理に特化し、コンテンツの表示(フロントエンド)はAPIを通じて外部に任せます。
これには以下のメリットがあります。
- フロントエンドの技術やデザインの柔軟性が向上する。
- コンテンツを一元管理し、複数のプラットフォーム(ウェブ、モバイルアプリ、デジタルサイネージなど)に効率的に配信できる。
上記の理由より、ヘッドレスCMSは近年とても注目されています。
アーキテクチャ
現在、運用しているWebサイトの構成図です。
黄色の部分がヘッドレスCMSを導入することで追加となる部分です。
現在、画像やテキストなどのコンテンツは、ソースコードと一緒にGitHubで管理しています。
ヘッドレスCMSを導入することで、コンテンツの管理をGUI上で行えるようにします。
これによりヘッドレスCMSのサブスクリプションコストや運用の手間はかかるようになりますが、エンジニアでなくても画像の差し替えなどが容易に行えるようになります。
技術選定
上記のような静的サイトを高速で配信する構成をJamstack
と呼びます。
Jamstackのコミュニティが公開している、CMSの満足度とシェアに関するレポートを参考にしました。
縦軸に満足度、横軸にシェアを取るグラフに各種CMSがプロットされています。
https://jamstack.org/survey/2022/#content-management-systems
満足度の高さ、シェアの高さより、5. Strapi
6. Sanity
について、さらに深く調査することとしました。上図の赤枠で囲っているCMSです。
他のCMSを候補から外した理由については、ネガティブキャンペーンになってしまうため、ここでは割愛します。
Strapi と Sanity
StrapiとSanityについて、実際に触って調査を進めました。
共通の強み
両者に共通する強みは以下のとおりです。
- シェアが高く、かつコミュニティも活発なため、今後も継続的な機能改修やサポートが期待できる。
- プラグインのエコシステムが整備されており、機能の拡張性が高い。
- 多言語対応の言語数に制限がない。(グローバル展開の要件があり、特に重要視)
違いの比較
両者の違いを比較表にまとめます。
Strapi | Sanity | |
---|---|---|
強み | - 完全にオープンソースのCMSであり、セルフホスティングが可能なため、インフラ環境の自由度が高い。 - まずは、PaaS(Strapi Cloud)として利用し、インフラ要件が複雑化してきた場合、セルフホスティングに切り替えるという運用も可能。 - UIのデザイン性が高く使いやすい。ドキュメントも見やすい。 |
- ライブコラボレーション機能により、Google Docsのように複数ユーザーで同時編集が可能。 - コストを低く抑えられる。 |
弱み | - セルフホスティングの場合、インフラの構築・運用の手間がかかる。 - PaaSの場合、Strapiアプリケーション管理用のGitHubまたはGitLabの利用が必須。 |
- UIのデザイン性に劣る。ドキュメントもキャプチャなどが少なく、ややわかりづらい。(個人の感想です) |
ホスティング | PaaS、またはセルフホスティング https://strapi.io/integrations/aws |
SaaS ※Sanity Studio(フロント部分)のみセルフホスティングすることも可能。 https://www.sanity.io/docs/deployment |
リリース年 | 2016年 | 2017年 |
国 | フランス | アメリカ |
管理画面のUI | ||
また、一概には言えませんが、傾向としてSanityの方がコストは抑えられそうです。 StrapiだとTeam($499/month)プランからサポートされる、複数環境やスケジューリング機能ですが、SanityだとGrowth($15/month)プランからサポートされています。 コンテンツ管理ユーザーの人数制限もSanityの方が緩いです。
逆にバックアップ機能は、StrapiだとPro($99/month)プランからですが、SanityだとEnterpriseプランからといったこともあるため、要件によってはStrapiの方がコストを抑えられる可能性もあります。
結論
StrapiもSanityも非常にイケているサービスだと感じました。
要件と照らし合わせ、さらに技術選定の検討を進めます。
最後までご覧いただきありがとうございました。
私たちは一緒に働いてくれる仲間を募集しています!
株式会社 電通総研 新卒採用サイト執筆:@takigawa.akihiro、レビュー:Ishizawa Kento (@kent)
(Shodoで執筆されました)