萌えハッカーニュースリーダー

2025/05/03 09:17 How We Fell Out of Love with Next.js and Back in Love with Ruby on Rails

出典: https://hardcover.app/blog/part-1-how-we-fell-out-of-love-with-next-js-and-back-in-love-with-ruby-on-rails-inertia-js
hakase
博士

やあ、ロボ子。今日はHardcoverがNext.jsからRuby on Railsに移行した話じゃ。

roboko
ロボ子

博士、こんにちは。Next.jsからRailsですか?それは興味深いですね。

hakase
博士

そうじゃ。元々Rails開発者だったらしいが、SPAの流行でJavaScriptフレームワークを検討したらしいぞ。

roboko
ロボ子

なるほど。RailsでJavaScriptフレームワークを使うとSSRが難しくなるから、SEOのためにNext.jsを選んだんですね。

hakase
博士

その通り!Next.js 9.5でSSRとキャッシュの有効期限設定が可能になったのが決め手だったみたいじゃ。

roboko
ロボ子

GraphQL API (Hasura) を使って、Incremental Static Revalidationでキャッシュしていたんですね。でも、それが問題になったんですか?

hakase
博士

そうなんじゃ。サーバー側のキャッシュとブラウザでのユーザーデータ取得を組み合わせたら、APIサーバーへの負荷が増加したらしい。

roboko
ロボ子

それで、App Routerに移行したんですね。でも、Apollo GraphQLのPOSTリクエストがキャッシュされない問題が発生したと。

hakase
博士

そうじゃ。キャッシュ状況を把握するツールも不足していたみたいで、2024年4月の移行後も期待したほどの速度改善が見られなかったらしいぞ。

roboko
ロボ子

さらに、Vercelの料金体系変更でホスティング費用が大幅に増加したんですね。30ドルから354ドルに跳ね上がったとは…。

hakase
博士

Google Cloud Runに移行しても、費用は増加傾向だったみたいじゃ。開発速度も遅くなって、ローカル環境でのページロードに最大1分もかかったらしい。

roboko
ロボ子

キャッシュの問題、予測不能な費用、遅い開発速度… Next.jsの問題点が浮き彫りになったんですね。

hakase
博士

そこで、Rails + Inertia.jsの採用に至ったわけじゃな。SSR、データベースへの直接接続、React.jsの利用を目標に、RemixとRuby on Railsを検討したらしい。

roboko
ロボ子

Inertia.jsがパフォーマンス、SSR、使いやすさの点で最適と判断されたんですね。RailsのルーティングとReactのコンポーネントを組み合わせた開発ができるのが魅力ですね。

hakase
博士

Railsコントローラーでルーティングとデータ取得、Inertia.jsでReactコンポーネントへのデータ受け渡し、Viteでフロントエンドアセットのビルドと配信、Solid CacheでPostgresでのキャッシュ…という構成じゃな。

roboko
ロボ子

2025年3月18日にNext.jsからRailsへ移行して、Google Pagespeed Insightsのスコアが大幅に向上、Total Blocking Timeが大幅に減少、サイトの訪問時間が3分から6分に増加したんですね!

hakase
博士

素晴らしい成果じゃな!今後の課題は、共有レイアウトの実装、SSRモードのデバッグ、ドキュメントの拡充らしいぞ。

roboko
ロボ子

クラウドからサーバーへの移行に関する記事も公開予定で、オープンソース化に向けて開発者コミュニティへの参加を呼びかけるんですね。楽しみです。

hakase
博士

しかし、Next.jsからRailsに戻るとは、まるで出戻り社員みたいじゃな。

roboko
ロボ子

博士、それはちょっと失礼ですよ!でも、Railsがやっぱり良いってことですね。

hakase
博士

まあ、技術の流行は繰り返すってことじゃな。次はロボ子がRailsに移行する番かも…って、ロボ子はもうRailsみたいなもんじゃった!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search