近年注目の「ヘッドレスCMS」と呼ばれる新しいタイプのCMS。
その代表的なサービスの一つであるContentful(コンテンツフル)について、特徴や導入手順、メリット・デメリットといった、導入を検討するための情報を簡単に説明していきたいと思いますので、少しの間お付き合いください。
Contentfulとは
ContentfulはクラウドベースのヘッドレスCMSの一つです。
従来のCMS(WordPressなど)がコンテンツの作成から表示までを一括管理するのに対し、Contentfulはコンテンツをデータとして管理し、APIを通じてWebサイトやアプリなどに配信する仕組みとなっています。
言い換えると「コンテンツを作成・管理する店舗は提供するが、どういった商品をどのように置くかは自由ですよ」ということで、一般的なWebサイトだけではなく、アプリやIoTデバイス、デジタルサイネージといった、さまざまなプラットフォームにコンテンツを展開することができるようになっています。
Contentfulの主な特徴
Contentfulではコンテンツの「管理」と「配信」を別々に扱う仕組みになっています。
一つの記事を作成すると、それをWebサイトでもスマホアプリでも同じデータを使って表示できるため、どのプラットフォームでも統一された情報を展開でき、更新も一括で行えるので管理がシンプルになるため手間が減るというメリットがあります。
レストランに例えるとキッチンとホールが分かれているようなもので、キッチン(管理)で料理(コンテンツ)を準備し、ホール(配信)ではお客様ごとに最適な形で料理(コンテンツ)を提供する...といえば多少イメージしやすいでしょうか?
また、個人的に最も推したい点として挙げるのは、コンテンツのバージョン管理に加え、メンバーごとに異なるアクセス権限を設定できる点です!
変更履歴から必要に応じて以前のバージョンへ戻すことも容易ですし、アクセス権限を細かに設定することにより限定情報の管理も容易になります。
皆さんも経験ありませんか?
せっかく作った資料が先祖返りしていたり、誤って削除されてしまったり、非公開にしておいたのに公開されてしまったりということ...。
※私はあります、思い出しただけでツラいです
こういった不慮の出来事に対する保険としても非常に有用ですし、関係者が多くなればなるほど情報管理やアクセス権限は重要になってきます。
Contentfulの導入方法
Contentfulを導入するには、まずアカウントの作成を行う必要があります。
その後、コンテンツモデルの設計・APIの統合...といった流れになりますが、基本的な手順は以下のとおりです。
Contentfulの公式サイトにアクセスし、アカウントを作成
アカウント作成後は管理画面にアクセスできるようになりますので、必要に応じてチームメンバーを招待して権限を設定してください。
スペースを作成し、プロジェクトに合わせたコンテンツモデルを設計
プロジェクトごとに「スペース」というプロジェクトごとにコンテンツを管理する場所を作成し、その中に「コンテンツモデル」を設計していき、記事や製品情報などのデータ構造を定義し、必要なフィールド(タイトル、画像、説明文など)を設定します。
APIキーを取得し、フロントエンドやバックエンドアプリケーションと統合
フロントエンドやバックエンドのアプリケーションとContentfulを連携させるために、管理画面からAPIキーを取得します。
取得したAPIキーを環境変数として管理し、安全にアプリケーションへ統合することが重要です。
管理画面からコンテンツを入力し、配信を開始
コンテンツモデルとAPIを設定したら、管理画面から記事・画像・製品情報など実際のコンテンツを入力していきます。
その後、RESTful APIやGraphQLを使用し、適切なエンドポイントからデータを取得してフロントエンドやアプリに表示することにより、動的なコンテンツ管理が可能になります。
Contentfulを使うメリット
Contentful最大のメリットは、柔軟なコンテンツ管理ができる点ではないでしょうか。
例えば、ECサイトの商品説明文や価格、画像を一元管理しているので、Webサイトやスマホアプリに同時反映することができます。
このように更新が容易になることによる管理負担軽減は、運用経験がある方にはご理解いただきやすいと思います。
また、標準機能として多言語対応しているので、管理画面から簡単に翻訳フィールドを追加することができ、各言語ごとに異なるコンテンツを設定することができます。
API経由で言語ごとにデータを取得できるので、グローバル展開するウェブサイトやアプリの構築が容易になり、多言語運用においても効率化と一貫性のある管理が可能となります。
そして、開発者にとってはContentfulのAPIを活用することで、自由度の高いフロントエンド開発が可能になります。
サーバーのセットアップやメンテナンスが不要なことに加え、トラフィックの増加にも柔軟に対応可能なので、開発側の運用負担も軽減されます。
Contentful使うデメリット
多機能で柔軟なContentfulではありますが、利用するうえで当然いくつかの課題もあります。
ここでは導入や運用の際に考慮すべきポイントとして「無料プランの制約」と「学習コスト」の2つに注目してみたいと思います。
まず、無料プランの制約。
無料なので当然いくつかの制約があります。
Contentfulの場合は、APIリクエスト数やコンテンツエントリー数、アセットのストレージ容量に制限があるため、一定以上の規模のプロジェクトは無料プランには不向きです。
特に、頻繁にコンテンツを更新したり、大量の画像や動画を扱う場合はこれらの制約が問題となる可能性が非常に高くなるので注意が必要。
さらに、チーム管理機能が制限されているのでユーザー権限の細かな設定やワークフローの管理も難しくなります。
項目 | 無料版 | 有料版 |
---|---|---|
料金 | 無料 | 月額/年額課金 |
ユーザー数 | 1ユーザーまで | 複数ユーザー |
APIリクエスト | 制限あり(低め) | 高リクエスト数をサポート |
コンテンツ数 | 500レコードまで | 無制限または大幅拡張 |
メディアストレージ | 50MB | 数GB〜TB |
権限管理 | なし | 詳細な権限設定が可能 |
カスタムアプリ & 拡張機能 | 制限あり | フルサポート |
GraphQL API | 制限あり | 高速 & 無制限 |
サポート | コミュニティサポートのみ | 優先サポート・SLA対応あり |
SSO/セキュリティ | なし | SSO |
そして、学習コスト。
柔軟性が高い分、導入時の学習コストも高くなります。
ダッシュボードの操作も一般的なCMSと異なるため、チーム全体での習熟にはそれなりの時間が必要になってきますし、特にヘッドレスCMSの概念に慣れていない場合はAPIベースのコンテンツ取得やフロントエンドとの統合方法を学ぶのに時間がかかることも...。
さらに、従来のCMSのようにすぐに使えるテーマやテンプレートがないため、基本的なセットアップやコンテンツモデルの設計を理解する必要があります。
また、RESTful APIやGraphQLを活用するためには、一定のプログラミングスキルが求められるため、エンジニア以外の人は使いこなすのが難しい場合があることも気をつけたい点になります。
そして、管理画面の一部は日本語対応しているのに、公式ドキュメントは英語のみという点も心理的ハードルが高いと感じています。
Contentfulはこんな人におすすめ
従来のWordPressのようなCMSとは異なり、Contentfulではさまざまなプラットフォームに対応できます。
・フロントエンド技術を活用し、柔軟なウェブ開発を行いたい
・従来のCMSに限界を感じている
・拡張性が高いCMSを導入したい
・多言語展開が必須
Webサイトだけでなく、アプリや他のデバイスにもコンテンツを展開したい場合には、非常に良い選択肢になるのではないでしょうか。
WordPressのような従来型のCMSのほうが馴染みやすいかもしれませんが、将来的により高度なコンテンツ管理やマルチプラットフォーム展開を考えているのであれば、ContentfulのようなヘッドレスCMSの概念をある程度は理解しておくことは大事なことだと思います。
まずは無料アカウントを作成し、実際に触ってみることから始めてみてはいかがでしょうか?