ファーストインプレッションは仕事の上で同僚がいい感じに使ってるな、って横目で見てたもの。
最近プライベートでNext.jsでのSSRを試しているので、それを踏まえての感覚はセカンドインプレッションだろう。その今の感情の備忘記事。
で、それがどういうものかというと
「Next.jsはOSSだけれどあくまでVercelのためのものなので他のホスティング環境では生かせなかったり面倒だったりする場面があって大変」
って感じ。
多分今現在ReactをSSR(やSSG、ISRなど)するならNext.jsでしょ! だけれど、そうしてデファクトスタンダードになっているものが特定のプラットフォーム向けに最適化されているのにはなんだか居心地の悪さを感じる。
試したり眺めたりしているのは
- コンテナランナーで next start
- AWS Amplify
- Serverless Next.js Component
辺りなのだけれど、どれも微妙に不自由に感じたり、最新のNext.jsの機能はまだ使えませんと制限がかかったりしていて「これだ!」と思えるものはない。
まぁ、Vercelに最適化されているのだからそりゃそうだ。
結構驚きだったのは、Vercel自体はLambda(Lambda@Edgeかな?)で構成されているらしいのに、Next.jsをいい感じにLambdaにホスティングする方法が見当たらないことだ。
https://nextjs.org/docs/advanced-features/output-file-tracing
Furthermore, this removes the need for the deprecated serverless target which can cause various issues and also creates unnecessary duplication.
サーバレス向けの出力(Lambdaに動くものが出力されるわけではないが)は非推奨になってしまっていたり、どうにもVercel都合でいいように流されていそうに見える。
まぁ、Vercelは商売でやってるんだからそりゃそうだ。
こういうのなんて言うんだっけ、ベンダーロックイン?
なんか不自由であんまり好きじゃない。OSSではあるけれどフリーではないというか。
便利でいいものだし多分プライベートで試した後そのまま使うのだろうけれど、自分でちゃんと触ってみないと分からない感覚はあると思った。