「Next.jsは非推奨」ってホント?非エンジニアなりに調べて、頭を整理してみた話

「Next.jsは非推奨」ってホント?非エンジニアなりに調べて、頭を整理してみた話

このブログのチェスBotも、音声AIアプリ(ScriptSpeak)のフロント部分も、実はぜんぶNext.jsというフレームワーク※1で作っています。

正直、選んだ理由は「チュートリアルが一番多かったから」くらいのふわっとしたものでした。

これは、バイブコーディング勢あるあるだと思います。

ところが最近、X(Twitter)やエンジニア界隈の記事で

「Next.jsは非推奨」 「Next.jsは避けたほうがいい」

という声をちらほら見かけて、正直ちょっとビビりました。

「え、自分が今まで作ってきたやつ、実は良くない選択だった…?」って。

同じように不安になった非エンジニアの方もいるかもしれないので、

今回は技術的な深追いはせず

「結局どういうことなの?」を自分の言葉でかみ砕くことだけを目的に調べてみました。

まさに普段このブログで繰り返している「まず調査だけしてから動く」の精神です。


目次

Next.jsって何が「非推奨」って言われてるの?

調べてみると、エンジニアの方々が気にしているポイントは、だいたい次の3つに集約されるようでした。

3つのポイント
  1. 特定のインフラに縛られやすいロックイン※2と呼ばれる状態
  2. 内部の仕組みが複雑で、不具合が起きたときの原因究明が大変
  3. 本来そこまでの機能が要らないサイトにまで採用されて、オーバースペックになりがち

要するに「機能が豊富で高性能だけど、そのぶん取り扱いが難しい高級car」みたいなイメージだと理解しました。

近所のコンビニに行くだけなのに高級carを出してくる必要はないよね、という話です。


じゃあNext.js自体がダメなの?→実は「向き不向き」の話だった

中央のNext.jsを中心に、ReactやRemix、Vue、Nuxt.js、SvelteといったWebフレームワークが配置された図解
Next.jsを中心に、ReactやVue、Svelteなどの主要フロントエンドフレームワークやライブラリの関係性を示したエコシステム図です。

ここが一番モヤモヤしていた部分だったんですが、

調べてわかったのは「Next.jsが悪いフレームワークだから非推奨」なのではなく

向いている場面と向いていない場面がハッキリしている

というだけの話でした。

Next.jsの本当の強みは、次の2つです。

Next.jsの強み
  • 検索エンジンに強い(SEO対策がしやすい)
  • サイトを開いた瞬間の表示が速い

これは「サーバー側であらかじめページを完成させてから送る」※3という仕組みのおかげで、GoogleのロボットにもWebサイトの中身がすぐ理解してもらえるからなんだそうです。

なので→

  • 向いている:ECサイト、ブログやメディア、会社の公式サイトなど「検索されたい・SNSでシェアされたい」サイト
  • あまり向いていない:ログインしないと使えない社内システムや管理画面のような「検索される必要がない」サービス
Tomoya

以前ブログで紹介した音声AIアプリ(ScriptSpeak)はSNSでシェアされる想定もあるサービスなので、Next.jsを選んだこと自体は的外れではなかったんだな、とホッとしました。


「バックエンドだけNext.js」が微妙と言われる理由も覗いてみた

もうひとつ、

画面(フロント)は別のツールで作って、裏側の処理(バックエンド)だけNext.jsにする」という組み合わせもあまりおすすめされていないようでした。

理由をかみ砕くと、こんな感じです。

FE+ BEでの別々の組み合わせがおススメでない理由
  • Next.jsの一番の強みは「画面と裏側の処理がセットで動く」からこそ発揮されるもので、画面を別のツールに任せてしまうと、その強みがまるごと使えなくなる
  • 画面用と裏側用で、それぞれ別のビルド※4(コードを実際に動く形に組み立てる作業)が必要になり、管理する場所が二重になって面倒
  • 単なる裏側の処理係(API※5)として使うには、Next.jsは機能が多すぎて逆に扱いにくい
Tomoya

「せっかくの多機能マシンなのに、半分の機能しか使わずに複雑さだけ背負ってしまう」というイメージで、自分の中では腑に落ちました。


結局どれを選べばいいの?→目的別・早見表

技術者ではない私たちが全部を理解する必要はなくて、「自分が作りたいものはどっちに近いか」だけ判断できれば十分だと思います。

作りたいものおすすめの方向性
ブログ・メディアサイト・会社の公式サイトNext.js、またはさらに軽量なAstro※6
ネットショップ(ECサイト)Next.js
ログイン後だけ使う社内システム・管理画面Vite※7+Vue.jsなどの組み合わせ + Hono※8Supabase※9のような裏側専用ツール
とにかく求人・情報が多くて安心したいNext.js(一番使われている)

「なんでもNext.jsで作る」時代から、「作りたいものに応じて選ぶ」時代に変わってきている

というのが今回一番の学びでした。


用語がわからない人向けのミニQ&A

本文中の※マークの用語は、ここでまとめてゆるく解説しています。読み飛ばしてもらってもOKです。

※1 フレームワークって何?

Webサイトやアプリを作るときの「土台・骨組みセット」のことです。

ゼロから家を建てるより、あらかじめ骨組みが用意されているキットを使ったほうが早く建てられる、というイメージです。

※2 ロックインって何?

特定のサービスに合わせて作りすぎてしまい、あとから別の会社のサービスに引っ越そうとすると、設定をやり直すのが大変になる状態のことです。

※3「サーバー側であらかじめページを完成させる」って?

専門的には「SSR(サーバーサイドレンダリング)」と呼ばれる仕組みです。

お客さんが見る前に、お店側(サーバー)で商品をあらかじめ完成品として並べておくイメージ、と捉えるとわかりやすいです。

※4 ビルドって何?

人間が書いたコードを、ブラウザやサーバーが実際に動かせる形に変換・組み立てる作業のことです。

※5 APIって何?

アプリ同士がデータをやり取りするときの「窓口」のようなものです。

※6 Astroって何?

Next.jsと同じような役割を持つ、検索エンジン向けサイトに特化した別のフレームワークです。より軽くて表示が速いのが特徴だそうです。

※7 Viteって何?

画面(フロント)側だけを、サーバーを挟まずに高速に動かすための仕組みです。社内システムのようにSEOが不要なサービスでよく使われます。

※8 Honoって何?

日本発の、裏側の処理(API)だけをシンプルかつ高速に作れるツールです。

※9 Supabaseって何?

データベースやユーザー認証、ファイル保存などを、まとめて用意してくれる裏側サービスです。自分でゼロから裏側を構築しなくて済むのが魅力です。


今回調べてみて、個人開発者として思ったこと

大きなNのロゴを中心に、VR操作を行う人物やAIクラウド、ネットワークの繋がりを描いた概念図
Next.jsを中心に、AIエージェントやクラウド基盤、VR環境がシームレスに連携する未来的な開発環境の概念図です。

一番の収穫は、「非推奨」という強い言葉に振り回されずに済んだことです。

エンジニアの方々が言う「非推奨」は、たいてい「なんでもかんでも同じ道具で解決しようとするのはやめよう」という文脈での話で、「その道具自体がダメ」という意味ではないケースが多い、というのが今回わかったことでした。

このブログでNext.jsを使ってきたチェスBotや音声AIアプリは、どちらも「検索されたい・見てもらいたい」性質のあるサービスなので、選択としては間違っていなかったと考えています。一方で、もし今後「自分専用の管理画面」のような、誰にも見せない社内ツール的なものを作るなら、Vite+別のバックエンドという組み合わせも選択肢に入れてみようと思いました。

技術選定は「正解を選ぶゲーム」というより、「今作りたいものに一番近い道具を選ぶゲーム」なんだな、というのが今回の一番の気づきです。

その流れはAIエージェントによるコーディングが一般的になるにつれて強くなっていくと感じました。


まとめ

まとめ
  • Next.jsが「非推奨」と言われるのは、Next.js自体がダメという意味ではなく「向いていない場面にまで使われがちだから」
  • 本当の強みは「検索されやすさ」と「表示の速さ」。ブログやECサイトなど「見てもらいたいサービス」に向いている
  • ログイン後だけの社内システムなどは、Vite+別のバックエンドという組み合わせのほうが軽くて向いている
  • 大事なのは「なんでも使う」ではなく「作りたいものに合わせて選ぶ」という視点

次は、Search Consoleの反応やDiscord Botの使われ方を見ながら、次のテーマを考えていきたいと思います。

「Next.jsは非推奨」ってホント?非エンジニアなりに調べて、頭を整理してみた話

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

始めまして。このブログを運営するTomoyaです。
未経験個人開発者。AI×個人開発(Vibe Cording)で学習して参入してくれる人が増えて広がっていくと良いなと思って始めました。

実際に作成→デプロイ(公開)→運営を行ってそれについての問題や疑問を記録していきます。
また行っていく上で内容(セキュリティ・制限など)にもこだわっていきたいなと思っています。

コメント

コメントする


目次