乱立するフロントエンドフレームワークから私たちは何を選べばいいのか????
こんにちは!助太刀でフロントエンドエンジニアをしている木下です!
皆さんはフロントエンドフレームワーク、いくつ知っていて、いくつ使ったことがありますか?
2025年現在、Next.js、Nuxt.jsといった有名どころから、SvelteKit、Remix、Astro、最近ではTanStack Startなど・・・
検索サジェストでは、frontend frameworkというキーワードに続いて、"2025"など「年」が真っ先にサジェストされるあたり、いかにフロントエンドのフレームワーク事情が常に変化しているかがわかります。
そしてX(旧Twitter)やRedditではフレームワーク作者やそのファンたちが、これがいい、あれがダメなど、白熱した議論を繰り広げています。
はいはいそれは分かりましたと。みんな違ってみんないいのでしょう。
で、実際のところ私たちは何を選べばいいのでしょうか????🤔
今回は技術選定を初めて行う立場になった等、主にフロントエンドフレームワーク選びに迷っている方に向けて、フロントエンドの世界で11年ほど彷徨ってきた私個人のちょっとした考え方などを共有できればと思っています。
あくまでも考え方の話がメインで、何が一番いいといった話を深くしないつもりですので、ベストを求めてる方は他の記事を参考にしていただければと思います!
個人開発におけるフレームワーク選定
結論、何を選んでもいいと思ってます。だって個人プロジェクトですので。責任は全て自分にあります。
自分が勉強したいフレームワーク、興味のあるフレームワーク、また安定版が出ていない新しいフレームワークなど、好きに選んでも誰も文句は言いません。
個人的にはSvelteとか使ってみたいですね、AppleのWeb版App Storeでも使われているみたいですし[1]🧡
チーム開発におけるフレームワーク選定
チーム開発や、事業でのプロジェクトの開発に関しては事情が当然異なってきます。自分だけのコードではなく、他のメンバーも当然触りますし、自分がプロジェクトから去ることもあるかと思います。そういった中で、特に考えずに選んでしまうと後々技術負債を置き土産しちゃうことになるかもしれません。
一度選んだら、長い付き合いとなること、すぐには変えられないことを前提に考えていく必要があります。
というわけで、私が選定する際に意識することをちょっとだけ紹介します。
プロジェクトへの適合性
基本的に最新のフレームワークであれば、このフレームワークでできないことがあのフレームワークだとできないみたいなことはないと思っています。どのライブラリもDX(開発体験)や、設計思想などで差別化を図っていることが多いです。
しかし、一番重要なところでもあるので、一応要件を舐めつつ、できるかどうかはチェックした方が良いです。
ただ、あまりにも特殊な要件でない限り、どのフレームワークを選んでも大きな差は出ないかなという印象です。
もしパフォーマンスセンシティブなどそういった要件があるのであれば、ベンチマークとかをみて選ぶのも良いかもしれません。
メンバーのスキルセット
例えば全員がVue.jsの経験者なのに、突然Reactベースのフレームワークを選ぶとなると、それなりの学習コストを払う必要が出てきます。
全員が全員前向きであればいいですが、そうでない場合もあるでしょう。
プロジェクトやスケジュールの状況に応じて、そういったコストを許容できるのか、できないのかを判断しつつ、たとえば将来的にNext.jsに移行する予定があるのであれば、選んでみる価値はあるかもしれません。
開発速度と安定を求めるなら、メンバーのスキルセットに合わせた方が良いです。
採用の難易度
採用の観点も大事です。とはいえ、大元のライブラリは大抵React、Vue.js、Angularのどれかなので、同じライブラリを採用するフレームワークの差に関してはそこまでこだわることはないかなとは思います。
しかし、たとえば、これら三大ライブラリから外れた、マイナーなものやWeb componentsベースのフレームワーク、新興ライブラリを採用する場合は、まず、その道のプロフェッショナルを雇うことは諦めなければなりません。
フロントエンドの経験が長い人であれば、未知のライブラリへの適応力が高いと思うので、そういう人を採用することで代替とすることは可能ですが、まあ、人手不足の時代にそうそう見つけるのは難しいのが現実だったり・・・
日本であれば、Reactベースか、Vue.jsベースのフレームワークを選んでおくのが無難かもしれませんね。
一貫性
どうでしょう、このプロジェクトではNext.js、あのプロジェクトではNuxt.js、さらに別のプロジェクトではSvelteKit・・・プロジェクトごとにフレームワークがバラバラだと、横断して開発する際にコンテキストスイッチがどうしても発生し、生産性が落ちてしまうかもしれません。
大規模な組織で1プロジェクトごとにチームができているのであれば問題ないですが、小規模なチームだと同じメンバーが複数のプロジェクトを担当することも多いでしょう。全員が全員多種多様なフレームワークに精通しているわけでもないと思うので、実装だけではなくレビューなどのコストも当然高くなります。
エンジニアとして、新しいフレームワークを試してみたくなる気持ちはわかりますが、多くて2つ、できれば1つに統一しておくほうが、実装方針も揃えやすいですし、採用の観点でも楽になります。
これはサイドプロジェクトだからせっかくなら違うものを試したい・・・と思うこともあるかもですが、そのサイドプロジェクトが急にグロースするかもしれませんし、1年後にメンテしないといけなくなるかもしれません。
普段実装していないと実装の仕方を忘れますし、そもそも1年後には書き方が変わってるかもしれない。サイドプロジェクト担当者もいなくなっており、コードの意図がわからないなんてことも。
サイドプロジェクトほど、試してみたくなる気持ちを抑えて、統一しておくのが無難かもしれません。
気持ちは分かります、私も何度も他のフレームワークに浮気したくなりましたのでね。ですがグッと堪えます。
フレームワークの安定性・将来性
まあ、こればっかりは未来予知の超能力を持ってない限りわかりません。Vue.jsはv3で大幅な転換を行い、Remixはv3でReactを捨てる"かも"しれません[2]。もっと昔の話で言えば、一世を風靡したjQueryはもはやレガシーです。
変化の著しいフロントエンド界ではこのようなことが起こる可能性は常にありますし、Reactが廃れてWeb Components一強の時代が来るかもしれません。
というわけで全ての可能性を考慮して構えるのは不可能なので、あまり過度に怖がる必要もありませんが、流石にv1に達していない、プロダクションレディでないものは避けた方が無難かなとは思います。フロントエンドのフレームワークの複雑性を考えると、明らかに個人が趣味で作っているようなものも同様です。アクティブにメンテされているなら安心と考えがちですが、将来も安泰とは限りません。突然放棄される可能性もあるでしょう。
また先述のRemixなどの話で、技術的に先鋭的なメンバーが多いプロジェクトであればあるほど、急な方針転換みたいなリスクは高まるかもしれません。
特に新興ライブラリは、大手ライブラリとの競争力を高めるために、積極的に新機能を取り入れたり、設計思想を変えたりすることがあります。
もしそういうのに耐えられないのであれば、ある程度歴史のあるフレームワークを選ぶのが無難です。たくさんのプロジェクトを抱えているほど、移行コストは馬鹿になりません。
Next.jsとかは、かなり後方互換性を意識しているので(App Router推奨ですが、Pages Routerも相当年サポートされると明言されています[3])、その点ではNext.jsは無難な選択肢なのかもしれません。
エコシステム・コミュニティの充実度
昨今ではそこまで差分がなくなってきた印象です。たとえば、TanStackは色々な素晴らしいパッケージを提供していますが、思想がFramework Agnosticであり[4]、色々なライブラリ向けのものが存在します。
しかし、やはり人気のないフレームワークほど、求めるパッケージがなかったり、あってもメンテされてなかったりすることがあるかなと思います。 当然、コミュニティも小さいので、何かバグがあった時は自分でissue立ててオープンソースに貢献するか、自分で作っちゃうくらいの勢いが必要かもしれません。
そういったリソースがないなら、比較的人気のあるNext.jsやNuxt.jsを選んでおくのが無難でしょう。
あと、これはAI開発においても重要な視点かもしれないですね。コミュニティが大きいほど、当然AIが学習するデータが増えるので、回答精度や実装精度が上がるかもしれません。AIはちょっと齧った知識を使って平気で嘘つく時ありますからね。
AIを多用する予定の場合は、その辺意識した方が良さそうです。
まとめ
結論、2025年現在においては、何を選んでも良いと思います(責任放棄)。そのチーム全員が、後悔しない選択肢であれば、それでいいと思います。
一応、個人的なおすすめで言うとNext.jsですかね。助太刀のフロントエンドは全てNext.jsに統一しています。以前はNuxt 2とかあったんですが、統一性の観点から全て移行しました。
Next.jsのいいところはドキュメントの充実、AIフレンドリーなところ、歴史があり安定しつつもReactの新しい機能を積極的に取り込んでおり、また開発者体験にもフォーカスするなど、モダンな開発を快適に行えるところです。大手企業が採用しているっていうのも、意思決定層に説明するには良さげなポイントかなと思います。
Next.jsはパフォーマンスが・・・みたいな意見をたまに見かけるのですが、パフォーマンスも良好ですよ!
(最近第一弾リリースした助太刀タイムズ は、Next.js 16で安定版となったCache Componentsを使ってみています。爆速でしょ?この辺の感想は後で記事書いてみようかなと思います。)

しかし思想が合わない人もいると思うので(新しいuseディレクティブが出るたびに色々議論が行われたり)、そう言う人はTanStack Startとか、試してみても良いんじゃないかなと思います。
Next.jsはもはやつまらない選択肢だと感じる人ももしかしたらいるかもしれませんが、大事なのはプロダクトですからね。あくまでもフレームワークは手段として、早くshipできることが一番重要かなと思っています。
以上!ご清聴?ありがとうございました!
最後に
助太刀では一緒に開発してくれるメンバを募集してます!特にフロントエンドは積極採用中です!
少しでもご興味を持っていただけたら下記よりお気軽にご連絡ください!
Discussion