Diary

@ssig33

07 Nov 2020 Sat 20:51

next.js の SSG は糞

ぼくは next.js 結構好きでこのブログとかも next.js で作ってるんですが、最近の next.js の方向性にはちょっと危うさを感じています。 next.js
は最近は静的サイトジェネレータ+αみたいな感じになっていて、サーバーサイドジェネレーションなる機能のサポートが入っています。

でもこれどう考えてもゴミでしょ。いや記事が 500 件とかならいいけど、 50 万件あったらデプロイのたびにどんだけ時間かかる?という話で。それからサイトが生きているかぎり結局のところ記事はどんどん増えていく以上トップページは動的生成にならざるを得ないわけで。あまりはっきりと言われているわけではありませんが、 next.js を開発している人たちは WordPress のテーマを PHP で書きたくない人というペルソナをもとに開発していて、その人たちは CDN を自分で使いこなすことはできないという前提を持っているような気がします。

実際のところ、 WordPress + next.js + SSG で幸せになれる人というのは一定数いるとは思うのですが、それで幸せになったとしてある時自分で足回りの面倒をみないといけないときがきます。 vercel にデプロイすれば幸せになれるかというと、 vercel そんなに出来よくないというか、はっきりと言えばまあゴミです。

で、自分で CDN の面倒みられるなら SSG なんかせずに SSR 使ったほうが楽です。 SSG できていないもの(デプロイ後に追加されたコンテンツや歴史が積み重なっていて SSG できないコード)については結局 SSR するしかないわけですから、単純にやることが一個減りますし、 redux だって使えるようになります。

最近の進化の方向性は別として better react-router + SSR としての next.js は極めて便利なのでまあ当面使っていけばいいと思いますが、 vercel が上手く行くとはとても思えず長期的には依存したくない(とはいえ react-router を使いたくない)という複雑な気持ちで生きている。