我們將 Railway 前端移出了 Next.js:構建時間從 10 分鐘以上縮短至不到 2 分鐘

我們將 Railway 前端移出了 Next.js:構建時間從 10 分鐘以上縮短至不到 2 分鐘

Hacker News·大約 7 小時前

我們成功將 Railway 的整個生產環境前端從 Next.js 遷移到 Vite 加 TanStack Router 的架構,在保持零停機的情況下將構建時間縮短了 80% 以上。這次遷移是為了追求更符合我們產品需求的客戶端優先架構,以支援高度互動的儀表板與即時畫布功能。

背景

雲端基礎設施平台 Railway 最近分享了其前端架構的重大轉型,將原本支撐數百萬用戶的 Next.js 框架全面遷移至 Vite 與 TanStack Router。這項決策的核心動機在於解決日益膨脹的編譯時間,以及 Next.js 逐漸轉向以伺服器端為中心的開發範式,與 Railway 高度依賴客戶端狀態與即時通訊的產品特性產生了摩擦。

社群觀點

在 Hacker News 的討論中,社群對於這項遷移展現了高度的共鳴,特別是在編譯效率與框架定位這兩個議題上。許多開發者對於現代前端編譯動輒超過十分鐘感到不可思議,甚至有評論戲稱,現在建置一個網頁前端的時間竟然比編譯 Linux 核心還要長。這種開發體驗的倒退引發了廣泛討論,不少人認為 Next.js 在處理大型專案時的效能瓶頸已成為團隊迭代的沉重負擔,且缺乏有效的優化手段。

針對框架的選擇,社群中出現了兩極化的看法。支持者認為 Next.js 雖然功能強大,但其設計邏輯與 Vercel 的商業利益高度綁定,對於不打算使用其伺服器端渲染功能的團隊來說,反而成了一種過度設計。有開發者分享了類似的遷移經驗,指出 TanStack Router 提供的類型安全路由與 Vite 的快速回饋,更符合現代單頁應用程式(SPA)的需求。然而,也有另一派觀點質疑,頻繁更換框架是否只是另一種形式的過度工程。部分評論者認為,前端領域不斷在「簡化」與「重新發明輪子」之間循環,雖然宣稱是為了提升效率,但本質上可能只是在處理 Web 基礎技術(如 HTML、CSS、JS)先天設計不良所衍生的副作用。

此外,社群也敏銳地指出這項遷移背後的商業競爭關係。由於 Next.js 是由 Railway 的競爭對手 Vercel 所主導,Railway 選擇脫離該生態系在戰略上具有合理性。有趣的是,有用戶提到 Next.js 在不同平台上的部署表現差異極大,認為 Railway 遇到的編譯緩慢問題,部分原因可能源於在 Docker 環境下執行 Next.js 的效率不如在 Vercel 原生環境。儘管如此,多數討論仍達成一項共識:當框架的預設假設與產品核心架構不符時,果斷切換到更輕量、更具彈性的工具鏈,對於長期維護與團隊士氣是有正面幫助的。

延伸閱讀

在討論過程中,有開發者提到了 Cloudflare 的 vinext 作為另一種可能的替代方案,認為其在特定生產環境下或許能提供更佳的效能表現。此外,TanStack Start 作為新興的全端框架,也因為其在類型安全與開發體驗上的平衡,被視為未來值得關注的技術選項。

https://blog.railway.com/p/moving-railways-frontend-off-nextjs