このサイトはNext.jsのnext exportで出力した静的HTMLその他をFirebase Hostingにデプロイ(までをGitLab CIで実行)してるイマドキっぽい構成。
会社のHPを作っていたら手書きのhtmlがちょっとだけつらくて何かちょうど良い感じのものが欲しかったところ、たまたまドキュメント読んで楽しんでたNext.jsが気に入って移行したのが去年の11月ぐらい。ちょっとしたサイトならもう俺はこれでいいや。もちろんReactを多少は知っている必要はあって、そのコストがどんなもんなのかはよく分からない。でも基本もいらないかもしれない。明らかにHTMLやCSSのほうが難しい。
このサイトは上述のようにnext exportつまりSSGなので(開発時のnext devを除くと)いわゆるアプリケーションサーバとしては使っていないけど、毎回動的に生成するSSRとかちょっとずつ(再)生成するISRとかいろいろ機能があって、それらを一つのFrameworkで並べて実現するために生えてるAPI(getStaticPropsとgetServerSideProps)が面白い、という話を聞いて興味を持ったような気がする。
| SSG | SSR | ISR |
|---|---|---|
| Static Site Generation | Server Side Rendering | Incremental Static Regeneration |
ReactとJSXでファイルシステムベースのルーティング、つまりもうこれPHPじゃん、とか考えていたら、実際にFAQの「What is this inspired by?」という質問にこう答えられていた。
The ease-of-use of PHP is a great inspiration. We feel Next.js is a suitable replacement for many scenarios where you would otherwise use PHP to output HTML.
2020年は過去最高かつ薄くPHPに縁があって、それで余計にNext.jsが染みたのかなー、と思ってる。プロダクションコードは1行も書いてなくて、Laravelアプリのセッション関連の挙動を調べたり、その開発環境として用意されていたDocker Composeの説明をしたり、新規のPHPプロジェクトの立ち上げで開発環境をDocker Composeで作ったり。あ、徳丸本も読んでた。
そんなすれ違いで恋しくなってたところに颯爽と現れた今話題のNext.js君。空いた心の穴を埋めてしまった。