Introduction
Railway a migré son frontend de Next.js vers Vite + TanStack Router, réduisant ainsi les temps de build de 10 minutes à moins de deux minutes. Cette décision a été motivée par les limitations de Next.js pour les applications client-side riches et les besoins spécifiques de Railway.
Contexte Technique
Next.js a été utilisé pour développer l'application de production de Railway, mais il est devenu clair que le framework n'était plus adapté aux besoins de l'entreprise. Les builds prenaient trop de temps, avec plus de 6 minutes consacrées à la finalisation de l'optimisation des pages. De plus, les primitives serveur-premier de Next.js n'étaient pas utilisées, et l'équipe a dû créer ses propres abstractions pour gérer les layouts et les routes.
Railway a choisi Vite + TanStack Router pour son modèle explicite, client-premier et rapide. Les fonctionnalités clés incluent la gestion de routage type-safe, les layouts de première classe et un cycle de développement rapide. L'équipe a également apprécié la flexibilité et la personnalisation offertes par TanStack.
Analyse et Implications
La migration a été effectuée en deux pull requests, avec une mise en production sans temps d'arrêt. Les résultats ont été positifs, avec des builds plus rapides et une réduction des temps de chargement. Cependant, il y a eu des compromis, tels que la perte de certaines fonctionnalités intégrées de Next.js, comme l'optimisation des images.
La nouvelle pile technologique de Railway est conçue pour être plus explicite, plus rapide et plus adaptable aux besoins de l'entreprise. L'utilisation de Vite + TanStack Router a permis à l'équipe de se concentrer sur le développement de l'application plutôt que sur la gestion de l'infrastructure.
Perspective
La migration de Railway vers Vite + TanStack Router montre l'importance de choisir les bonnes technologies pour les besoins spécifiques d'une entreprise. La vitesse d'itération sur le frontend est cruciale pour les entreprises qui cherchent à innover et à se développer rapidement. La nouvelle pile technologique de Railway est conçue pour soutenir cette vitesse d'itération et pour offrir une expérience de développement plus fluide et plus efficace.