無趣味人

無趣味人

なぜこのサイトをHugoからNext.jsに移行したのか

簡単に言うと、Hugoの多機能さがおせっかいに感じてきて、よりシンプルに自分好みにサイトを構築したいと感じたからです。

きっかけ

もともと僕はWebエンジニアではないので、必ずしも合理的な根拠があってNext.jsを選んだわけではありません。きっかけとしては、ホスティングサービスとして使っていたNetlifyの速度に不満を感じて移行先を探していたとこ、日本リージョンサーバーがただで使えるVercelが良さそうだということに気付いて、そのVercelが開発しているということで興味を持ったのが始まりです。

考えたこと

ただ、VercelはHugoにも対応しているため、ホスティングだけ移行するというのが一番真っ当で手のかからないやり方であることは明白でした。しかし、サイトのデザインもついでにシンプルなものに戻したいという欲求があり、どうせなら新しいものを使ってみようと、とりあえずNext.jsのチュートリアルを進めました。

そうするうちに、自分がHugoに抱いていた不満点というのが分かってきました。初期設定、あるいは大半のテーマで採用されているディレクトリの階層構造が、あまりに「ブログ」や「メディアサイト」に最適化されすぎていると感じていたのです。具体的には、カテゴリやタグの一覧といった、今のところ自分が使わないページも勝手に生成されるというところで、確かにサイト全体の設定ファイルでそれらを生成しないようにすることは可能ですが、Hugoが決めたひな形から引き算の発想で構築する感覚になり、地味にストレスでした。対してNext.jsは、Pagesフォルダ以下に好きなようにページを作っていける、足し算的な発想になるので、こちらのほうが自分には合っている気がしました。

また、そもそも他人が作ったテーマをベースにデザインを構築するというのが、自分には合わないやり方でした。たいていのテーマは日本語で使うことが考慮されていないので手直しが必要ですが、Hugoのバージョンアップに伴ってテーマの更新も必要なので、なかなか大変でした。自分で0からHugoのテーマを作ったこともありますが、上で書いたようにHugoの多機能さに合わせてテーマを作成するのは骨が折れる作業でした(完遂できていたとも思いませんが)。一方で、Next.jsチュートリアルで作ったブログのデザインがかなり自分の好みに近く、これをベースにいじっていけそうだと思えたのも、Next.jsへ移行するモチベーションになりました。

なお、サイトのパフォーマンスについては、完全に静的なページよりもPre-fetch等により理屈上よくなるみたいですが、そもそもデザインから大きな画像を消したこととホスティング先を変更したことのほうが影響度は高いと思いますので、Next.jsにしたことによる効果は今のところ良く分かりません。

結局……

とまあ、いろいろ書きましたが、正直個人ウェブサイトの範疇では何使っても大差ないと思いますので、Next.jsが更新を停止するまでは、例え流行りすたりが変わろうともほかのツールに移行しないつもりです。それよりも中身を充実させないといけませんので。