Hacker News 中文摘要

RSS订阅

我们将Railway的前端从Next.js迁移出来,构建时间从10多分钟缩短至不到2分钟。 -- We moved Railway's frontend off Next.js. Builds went from 10+ mins to under 2

文章摘要

Railway将前端从Next.js迁移至Vite+TanStack Router,通过两个PR无停机完成切换,解决了Next.js的局限性,同时保留了核心功能。整个迁移过程平稳高效。

文章总结

Railway前端架构迁移:从Next.js转向Vite+TanStack

作者:Victor Ramirez
发布日期:2026年4月3日

核心内容概述

Railway已完成其生产环境前端从Next.js到Vite+TanStack Router的技术栈迁移,涵盖仪表盘、画布和官网等所有功能模块。整个迁移过程仅通过两个Pull Request实现,且做到了零停机。

迁移背景

Next.js曾帮助Railway从零发展到月服务数百万用户的生产级应用,但随着业务发展逐渐显现瓶颈: - 构建时间超过10分钟(其中6分钟来自Next.js自身) - 页面路由器的共享布局方案存在缺陷 - 服务端优先的设计理念与Railway客户端驱动的产品特性不匹配

技术选型考量

选择TanStack Start+Vite组合主要基于: 1. 开箱即用的类型安全路由系统 2. 原生支持的布局方案 3. 极快的开发反馈循环(即时HMR) 4. 按需SSR能力 5. 更透明的底层实现机制

迁移实施

采用两阶段策略: 1. PR1:替换所有Next.js专属功能(图片组件、路由等),解除框架依赖 2. PR2:完成框架切换,迁移200+路由,引入Nitro作为服务层

得失权衡

优势获得: - 构建时间从10+分钟降至2分钟内 - 开发服务器即时启动 - 更符合产品特性的技术架构

功能妥协: - 放弃内置图片优化功能,改用Fastly边缘处理 - 需要自建SEO和站点地图工具 - 新框架的成熟度相对较低

基础设施协同

迁移后的前端部署完全基于Railway自身平台能力: - 每个PR自动生成预览部署 - Fastly边缘节点处理大部分流量 - Vite的资产模型实现精准缓存更新

战略意义

此次迁移的核心目标是缩短"代码编写-用户可见"的交付周期。通过框架优化、边缘缓存和资产模型改进,Railway正在构建近乎即时交付的前端开发生态。

(注:原文中的推广内容、相关文章推荐及页脚导航信息已根据编辑要求省略)

评论总结

以下是评论内容的总结,涵盖主要观点和论据:

  1. 对Next.js构建速度的不满

    • 许多用户抱怨Next.js构建时间过长,从10分钟到2分钟仍然被认为太慢。
    • 引用:
      • "Incredible that the builds were ever 10min. How far things have regressed."(评论3)
      • "Two minutes is still way too long. What are we doing? This is ridiculous."(评论11)
  2. 迁移到其他框架的经验

    • 一些用户分享了从Next.js迁移到Vite、TanStack或Astro的经历,构建时间显著减少。
    • 引用:
      • "We made a similar move from Next.js to Vite... CI build dropped from 12 min to barely 2 min."(评论18)
      • "I migrated the landing pages... from Nextjs to Astrojs mainly because I was paying Vercel $20 per month..."(评论15)
  3. 对Next.js架构的批评

    • 用户认为Next.js的服务器优先假设不适合客户端密集型应用,导致开发效率低下。
    • 引用:
      • "Our app is heavily client-side... fighting Next.js's server-first assumptions wasn't worth it."(评论5)
      • "For a mostly-static marketing site it’s tolerable, but... it becomes a dealbreaker for a rich client-side app."(评论16)
  4. 对Vercel和生态系统的担忧

    • 用户提到Vercel作为Next.js的开发商,可能通过LLM和工具链进一步绑定开发者。
    • 引用:
      • "Vercel is also aggressively building an ecosystem around their tooling for LLMs."(评论13)
      • "Next.js is produced by Vercel, a competitor to Railway."(评论1)
  5. 对轻量级替代方案的推崇

    • 部分用户推荐HTMX、TanStack等轻量级工具,认为它们更适合现代Web开发需求。
    • 引用:
      • "Wait till you use HTMX!"(评论10)
      • "Tanstack start is the new dominator on the stack!"(评论20)
  6. 对技术趋势的反思

    • 一些用户质疑现代前端开发的复杂性,怀念简单的技术栈(如HTML/jQuery)。
    • 引用:
      • "Can we just get back to html/jQuery/handlebars? Those were the good old days."(评论21)
      • "Is the quality of software engineers really dropped that low..."(评论12)

总结:评论反映了对Next.js构建速度和架构的普遍不满,许多用户通过迁移到轻量级框架(如Vite、TanStack)获得了更好的体验。同时,对现代前端开发的复杂性和工具链绑定提出了批评。