Next.js叩かれすぎでは?
最近のSNSを見ていて、Next.jsが一部のエンジニアから叩かれているのを見ていて、個人的になぜ?と思うことがあったので、私個人のNext.jsへの印象を記事にしてみました。
私のNext.jsへの印象は、
Next.jsって、かなり未来、特にAI時代を見据えて積極的に進化・投資している優秀なフレームワークなのでは?
ということです。
そのきっかけのひとつになったのが、Next.js公式ブログで公開された「Building Next.js for an agentic future」という記事でした。
この記事を読んでみると、Next.jsが単に「AIを使った開発に対応する」というだけではなく、AIエージェントそのものをNext.jsの利用者として考え始めていることが分かります。
「AIからNext.jsが見えない」という問題
個人的に面白かったのが、Next.jsチームが着目した「AIエージェントから実行中のアプリケーションが十分に見えていない」という問題です。
AIエディタはプロジェクトのソースコードを読むことができます。
しかし、コードを読めることと、ブラウザ上で実際に何が起きているのかを理解できることは別です。
Runtime Errorやクライアント側のWarning、現在レンダリングされている状態など、実際にNext.jsを動かしたことで初めて分かる情報は、これまでAIエージェントから十分に見えていませんでした。
そこでNext.jsチームは、人間がエラーをコピーしてAIに伝えるだけではなく、Next.js側から実行時の情報をAIエージェントに渡せるようにする方向へ進んでいます。
個人的にはここがかなり面白く、「AIにコードを書かせる」だけではなく、フレームワークそのものをAIが理解しやすい形へ変えようとしているように感じました。
一度はNext.jsの中にAIを作っていた
さらに面白いのが、Next.jsチームは「Vector」というブラウザ内AIエージェントまで実験的に開発していたことです。
画面上の要素を選択して、そのソースコードを確認したり、そのまま変更を指示したりできる、Next.jsに統合されたAI開発ツールです。
しかし、CursorやClaude Codeのような汎用的なコーディングエージェントと役割が重なることなどから、Vector自体は終了しています。
個人的には、ここで「Next.js専用AIを作る」という方向に固執しなかったこともいいなと思いました。
代わりに、
「どのAIエージェントを使っても、Next.jsを理解しやすい状態にする」
という方向へ考え方を変えています。
そこでMCPが出てくる
その考え方から登場したもののひとつがMCPです。
Next.jsではMCPを利用して、エラー、Route、レンダリングされているSegmentなど、これまでAIエージェントから見えなかったNext.js内部の状態を取得できるようにしています。
さらに、開発サーバーを発見して通信するための next-devtools-mcp も開発されています。
つまり、
人間がNext.jsの状態をAIに説明する
のではなく、
Next.js自身がAIに自分の状態を伝える
方向に進んでいるとも考えられます。
この変化から感じることは、Next.jsが「開発者体験をかなり大切にしている」と感じられることです。
AIに合わせること自体が目的なのではなく、AIがNext.jsの状態をより正確に理解できるようにすることで、結果として開発者がエラーの状況を説明したり、必要な情報を一つひとつAIに渡したりする手間を減らしていく。
AI時代に合わせてフレームワークを進化させながら、その先にいる開発者の体験を良くしようとしている。
この姿勢が、個人的にはNext.jsの良さのひとつだと感じました。
AIエージェントを第一級の利用者として考える
そして、この記事で個人的に一番印象に残ったのがこの考え方です。
Next.jsチームは、AIエージェントをNext.jsの first-class users として扱い、「エージェントにはどんな情報が必要なのか」「いつ必要なのか」「どのような形式なら理解しやすいのか」という視点からフレームワークを考えています。
その結果として、MCPだけでなく、ブラウザエラーをターミナルへ転送したり、Server Actionの実行をログに出したり、agents.mdによってエージェントへNext.jsの知識を渡したりといった改善につながっています。
ここまで来ると、
「人間が使いやすいフレームワーク」
だけではなく、
「人間とAIの両方が使いやすいフレームワーク」
という方向へNext.jsが進み始めているようにも見えます。
Next.jsはかなり未来を見ているのかもしれない
もちろん、Next.jsがAI対応だけに力を入れているわけではありません。
また、「AI対応しているからNext.jsが一番優れている」という話でもありません。
ただ、今回の公式記事を読んで、Next.jsはAIを単なる開発補助ツールとして捉えるのではなく、これからAIエージェントがソフトウェア開発に深く入り込むことを前提として、フレームワーク自体を変えようとしているのではないかと感じました。
特に興味深いのは、将来的には next dev を起動するだけで、AIエージェントがNext.jsを理解するために必要な情報を自動的に取得できる状態を目指していることです。
開発者がAIのために一つひとつ環境を整えたり、エラーや状況を説明したりするのではなく、Next.js側がAIと連携しやすい環境を用意する。
個人的には、この「AI対応のために開発者の作業を増やすのではなく、フレームワーク側で吸収しようとする姿勢」に、Next.jsが開発者体験をかなり重視していることを感じました。
Web開発が今後どう変化するのかはまだ分かりません。
ただ、
人間がAIを使ってコードを書く
という現在の段階から、
フレームワーク自体がAIと協調することを前提として設計される
段階へ進み始めているのかもしれません。
そう考えると、Next.jsはかなり未来を見ながら進化しているフレームワークなのではないか、個人的にはそんなことを感じています。
一方で、こうした進化の速さはNext.jsの強みであると同時に、弱みでもあると思っています。
新しい仕組みが次々と取り入れられる分、バージョンアップによる破壊的変更もあり、長期的に運用するプロジェクトではアップデートに伴う保守コストや、開発者側のキャッチアップコストが高くなりやすいという側面があります。
数年間ほとんど手を加えずに運用したいWebサイトやシステムであれば、この変化の速さが必ずしもメリットになるとは限りません。
それでも、Web開発の変化をいち早く取り込み、フレームワークそのものを進化させ続けているところはNext.jsの面白さでもあります。
未来を見据えて変化し続けるからこそ、使う側にも変化についていくことが求められる。
Next.jsの魅力と難しさは、まさにそこにあるのかもしれません。