コーポレートサイトの改善にあたって Headless CMS をいくつか検討してみた


こんにちは、Gaji-Labo アシスタントエンジニアの石垣です。

Gaji-Labo では現在、コーポレートサイトの改善に取り組んでいます。

その過程で Headless CMS をいくつか検討し、 DatoCMS が良いのではないかという結論に至りました。

@kimizuy が今回検討した DatoCMS について機能的な部分を書いているので、今回は提示された要件を実現するために Headless CMS をいくつか検討してみたという側面から書いてみます。

Headless CMS の検討に至った経緯

コーポレートサイトは柔軟かつ迅速な情報更新を行いたいため、エンジニアでなくても気軽に触れるようにしたいという要望が第一としてありました。

付随して、「予約投稿機能を実現したい」「他記事を参照できるフィールドタイプが欲しい」などの要望があり、そういったことを実現できるCMSを探す必要がありました。

現在は Netlify CMS を使用していますが、技術的に達成が難しい要望もあり、Headless CMS を改めて検討することとなりました。

CMS を検討するにあたってやったこと

具体的な要件をチェックリストに挙げ、それを実現できるかという観点で調査してみました。

  • APIベースの Headless CMS である
  • 下書き保存機能がある
  • 予約投稿機能がある
  • 他記事を参照できるフィールドタイプがある
  • 画像アップロード時に画像を複数選択できる
  • CMSからのプレビュー機能が実装できる
  • フィールドに 必須/任意 のラベリングを表示できる
  • フィールドには入力者用の解説文が設定できる

いくつかの Headless CMS を比較検討しましたが、前述の通り、DatoCMS を第一候補することにしました。

DatoCMSのオフィシャルサイトのキャプチャ画像

DatoCMS は要件に対して以下のように対応することが出来、必要なものを全て達成できている印象がありました。

要件達成備考
APIベースの Headless CMS である
下書き保存機能があるコンテンツモデルごとに「下書き機能」を有効/無効にできる
コンテンツモデル作成時に設定する
予約投稿機能がある記事投稿・更新画面の Publish 横のボタンから日付指定で予約投稿が可能
日付はタイムゾーンが設定できる
他記事を参照できるフィールドタイプがあるLink フィールドで作成する
画像アップロード時に画像を複数選択できる
CMSからのプレビュー機能が実装できるGatsby, Next.js 用のプレビュー機能プラグインが存在している
フィールドに 必須/任意 のラベリングを表示できる全フィールドに必須/任意が設定可能
フィールドには入力者用の解説文が設定できる全フィールドにヘルプテキストが設定でき、画像表示も可能

加えて DatoCMS は Gatsby Cloud の公式スターターキットにも採用されていますし、Next.js を開発している Vercel CEO にも度々言及されているなど、 SSG との連携に強くそれらと組み合わせて使いやすそうだという強みもありました。

DatoCMS の他に採用検討した CMS

Contentful

Contentfulのオフィシャルサイトのキャプチャ

Contentful は DatoCMS と同様、全ての条件を実現可能でしたが、ランニングコストが今回の要件とは見合わず採用を見送りました。機能的にかなり充実しており、規模の大きい案件向けのような印象を受けました。案件で使ってみたいCMSです。

Strapi

Strapi のオフィシャルサイトのキャプチャ

Strapi は管理画面内にプレビュー機能や下書き保存機能は保持しておらず、実装を行って機能を追加できる拡張性の高い Headless CMS です。今回はスケジュールの都合もあり確実性を取りましたがとてもチャレンジングな CMS で機会があればまた触ってみたいと思いました。

まとめ

今回は Headless CMS を比較検討してみたという内容で書いてみました。

技術選定や提案に関してはまだ経験が浅いのですが、要件に合わせ様々な技術の良さを比較することが出来るのはプロジェクトに関わる上でも重要な強みなので今後も経験を積んでいきたいと思っています。

弊社ではJamstackの知見で事業作りに貢献したいフロントエンドエンジニアを募集しています。大きな制作会社や事業会社とはひと味もふた味も違うGaji-Laboを味わいに来ませんか?

もちろん、一緒にお仕事をしてくださるパートナーさんも随時募集中です。まずはお気軽に声をかけてください。お仕事お問い合わせや採用への応募、共に大歓迎です!

求人応募してみる!

投稿者 Ishigaki Shotaro

アシスタントエンジニアとしてHTML/CSS/JavaScriptの実装やRailsの組み込み、スタイルガイドの構築などを担当しています。 業務の中でさまざまな学びを吸収しながら、文書構造やアクセシビリティに目を向けたマークアップの学習やJavaScriptの学習などを行っています。チームに貢献できるエンジニアとなるために日々奮闘中です。