📚

Next.js + headlessCMSでブログを作るのに実装しておきたい5要素まとめ

2023/03/31に公開

headlessCMSでブログを作るにあたって実装しておきたい5要素の情報をまとめる

前提

利用する技術

  • Next.js 13.1.6
  • Vercel
  • Newt(headlessCMS)

実装する要素

  1. ブログ本体
  2. RSSフィード
  3. 個別ページのOGP(ページタイトルで自動生成)とmetaタグ
  4. formatter & linter
  5. ヴィジュアルリグレッションテスト(リファクタ用)

補足事項

  • 記事ごとのアイキャッチは実装しない

手順

1. ブログ本体

  • Newtのチュートリアルを参照 → NewtとNext.jsを利用してブログを作成する
    • 基本的にチュートリアル通りでOK
    • タグはモデルTagの配列になるのでArticleのJSONプレビューとは異なる返却になる点については注意
    • Vercelとの繋ぎもこの記事からリンクがあるのでVercelにのせる場合はそのまま進めばOK
  • 弊ブログのモデル設定↓
設定値 詳細
アイコン 記事のアイコン。Newtの絵文字フィールドを利用
タイトル 記事のタイトル
スラッグ 記事のID的なもの
概要 記事の概要。記事一覧の他、RSSのdescriptionにも利用
本文 本文。Markdownフィールド
タグ タグ。slugとnameで構成されている別のモデル。タグ中身以外はチュートリアルそのまま。
公開日 公開日。Newtデフォルトで作成日はあるが、『公開した日付』を載せたかったので公開日。手動設定している

2. RSSフィード

3. 個別ページのOGP(ページタイトルで自動生成)とmetaタグ

4. formatter & linter(markuplint

5. ヴィジュアルリグレッションテスト(リファクタ用)

おわりに

  • 他にもあった方が良い要素はありそうですが個人的にはここまでくれば満足ライン
  • markuplintは今回が初利用。コードがシンプルなのもあってあまりエラーは出なかったが、『HTMLが苦手』というエンジニアも多いので、そういうったチームメイトのためにも入れておくのがよさそうに思う(lintは通ってるという安心感が得られるので)
  • VRTも今回が初導入。汎用で利用されている可能性のあるcomponentの層に対し、『今回の変更が既存に影響を与えていないか?』はかなり不安になる要素なので、それを払拭できる方法を見つけられたのは良かった
    • 今回CICDを組んでいないのは『個人開発かつmaster直push』のため。チーム開発であればPRを利用すると思うので、PRを開いたタイミングでCICDが発火するようにしておくのが良いと考える。
    • しかしながら、完全新規の場合はリグレッションを検査する必要がないので、PRのタグによって発火など何かしら分岐でるようにしておくと良いかもしれない
  • というわけで、あとはコンテンツを更新し続けるだけである。これが1番難しい。
    • では皆さんも良いブログライフを!

Discussion