結論
Gatsbyで制作した個人ブログのHeadlessCMSをmicroCMSからContentfulへ変更した。
Markdown → HTMLの変換部分が判断の基準になっている。
なんのことか
個人ブログを作成したことの報告記事を以前書いた。
その時点ではmicroCMSだったが、実装上の不都合からcontentfulへ変更を検討し始めた。
そもそもmicroCMSを選んだ理由
- HeadlessCMSの経験は、Strapiというセルフホスティング型のものしかなかった
- Contentfulも当初選択肢にあったが、microCMSを勧める記事も一定数あった
- 国産サービスで日本語情報・日本語サポートが充実している
- Gatsbyでブログを制作する際のデファクトスタンダードである
gatsby-transformer-remark
を使わなくても、Marked.jsを使えばMarkdown → HTMLの変換は実装できた
Contentfulに変更したいと思った理由
- Gatsbyでブログを制作する際のデファクトスタンダードである
gatsby-transformer-remark
がContentfulには対応しているが、microCMSには対応していないgatsby-transformer-remark
とgatsby-source-contentful
を組み合わせるとGraphQLでbody
(Markdownの本文)を取得する際、子要素にchildMarkdownRemark
が追加され、そのさらに子要素でhtml
が取得できる- 取得した
html
はMarkdownから自動的にHTMLに変換されたもの
- 取得した
- microCMSだと出来ない
gatsby-transformer-remark
と併用できると、gatsby-transformer-remark
に対応した多くの拡張プラグインを利用することが出来る- Marked.jsだと完全に自力で実装する必要がある
- Contentfulもイケてる雰囲気あるし使ってみたい
参考:GraphQLでの取得方法の違い
microCMS & gatsby-transformer-remark(microCMS単独と同じ)
{
microcmsArticle {
body # Markdownがそのまま取得できる
}
}
Contentful & gatsby-transformer-remark
{
contentfulArticle {
body {
body # Markdownがそのまま取得できる
childMarkdownRemark {
html # MarkdownがHTMLに変換された状態で取得できる
}
}
}
}
変更してみた結果
実装観点で思ったこと
- やはり
gatsby-transformer-remark
および関連プラグインを使えるのは影響が大きい gatsby-transformer-remark
だとプラグインを追加は楽だけど、Markdownから変換される際のHTMLを細かくカスタマイズするのはMarked.jsとそんなにコスト変わらなそう- rehypeReactを使うとかなり柔軟にカスタマイズできるようなので、
gatsby-transformer-remark
にするなら併用することになる
- rehypeReactを使うとかなり柔軟にカスタマイズできるようなので、
- rehypeReactで再実装しても良かったけど、今の所そこまでコストやメリット変わらなそうなので、様子見でも良さそうだと思った
- CMSはContentfulに変えたけど本来の目的である
gatsby-transformer-remark
には変えなかったので、目的見失ってる感もある - 目的通りに考えると、microCMSのままでも何も問題なかった…
- 今後
gatsby-transformer-remark
& rehypeReactに比較的容易に乗り換えれるという状態に出来たのは普通に価値があったと思うので、やった意味はあったはず
- CMSはContentfulに変えたけど本来の目的である
CMS観点で思ったこと
- 日本語には対応していないけど、ContentfulのCMSとしての精錬度がめっちゃ高いことが分かった
- UIがわかりやすくキレイ
- 入力系の機能、導線がめっちゃ使いやすい
- オートセーブ
- ファイルアップロード方法が多様
- 記事を入力しながら参照している別コンテンツ(カテゴリやタグなど)を新規追加して反映できる
- microCMSも出来るけど…
- 先に保存しとかないと入力中の記事消えちゃう
- UIや導線が微妙に使いにくい
- microCMSも出来るけど…
- 純粋に出来ることが多い
- 全体的にモダンでええ感じや…
まとめ
だいぶ紆余曲折したけど、Contentfulに乗り換えて良かった。
ただmicroCMSも用途が合えば全然有り。
gatsby-transformer-remark
はrehypeReactを使いたくなるか、使いたい関連プラグインが見つかれば乗り換えるかもなーという感じ。