ブログを Next.js + Vercel に移行した - chroju.dev 以来、5年半ぶりにブログの構成を全面刷新した。
当時、流行りに乗ってNext.jsを選択したものの、ブログのSSGとして使うには明らかに過剰であり、どこかで脱却したいなとは1〜2年ぐらい考えつつ、そこまで困っているわけでもないため腰が重くなっていたのだが、 Claude Fable 5の使用量が急にリセットされて ちょっと持て余してしまったので、雑に投げてみたところ1時間もせずに改修できてしまった。3月ぐらいに別のモデルへ依頼したときは結構労力がかかりそうだったのだが、今回は速かったのはモデルの進歩なのか。
何か他のフレームワークを使ってもよかったのだが、単にMarkdownからHTMLを生成したいだけであれば大仰なものを使う必要もないし、ビルド方式は独自のものとしている。昨今のサプライチェーンリスクを鑑みても、依存するパッケージはあまり多くないほうがいいのかなという感覚が強くなっている。手ですべてのコードを書いていた頃なら迷わずフレームワークを使ったのだろうが、AIに任せられるのならスクラッチもありかな、という形に意識が変わってきた。
機能面についても多少細々とした変更を加えている。ひとつ大きなものとしては、AI対応みたいなところを少しだけ考えて、 https://chroju.dev/llms.txt を配置した。各ブログ記事については、URL末尾に .md を付与するとRaw Markdownにアクセスできるようにして、 llms.txt にもMarkdownのほうへのリンクを掲載している。別にGEO的なことを真剣に考えているわけでもないし、llms.txtは現状標準化された仕様ではないので期待値も正直あまり高くはなく、半ば遊びのような感覚ではある。
他で施したものとしてはこんなところ。
- ダークモード対応
h要素を使っている記事にはTOCと見出しへのanchorを追加- OG image生成で vercel/og-image という古いものを使っていたので、 vercel/satori へ移管
- satoriはSVGを生成するので、SVGからPNGへの変換には linebender/resvg を使っている
- コードブロックにCopyボタンを追加
- PWA対応は廃止
- ホスト先をVercelからCloudflare Workersへ変更
デザインについてもAnthropicの frontend-design と対話を繰り返して、従来のものを踏襲しつつもブラッシュアップした。スマホでもPCでも、以前より読みやすくなったと自負しており、だいぶ満足している。