Tourlane · 2023
Migrating Tourlane from CRA to Vite
Senior Frontend Engineer
Cut build times roughly in half and tightened dev feedback loops by moving a large production React app off Create React App onto Vite.
Problem
Tourlane’s main customer-facing app had outgrown Create React App. Cold builds and CI pipelines were slow, local dev startup lagged, and Webpack’s HMR had grown unpredictable on a codebase of this size — every change cost the team seconds of waiting that added up across dozens of engineers, many times a day.
Options weighed
I evaluated three realistic paths: stay on CRA and tune Webpack (lowest risk, lowest ceiling); migrate to Next.js (powerful, but a heavier architectural shift than the app needed and a larger blast radius); or adopt Vite (esbuild-powered dev server, Rollup production builds, minimal config). I prototyped the Vite path against the real app to validate the build output and dev experience before committing.
Tradeoff
Vite meant trading CRA’s batteries-included familiarity for an explicit, configure-it-yourself setup — plugins, env handling, and a handful of CRA-specific assumptions to unwind. The bet was that a one-time migration cost would pay back continuously in faster builds and a sharper feedback loop, without forcing the broader framework change a Next.js move would have required.
Outcome
Build times dropped by roughly 50% and local dev startup became near-instant, visibly tightening the feedback loop for the whole frontend team. The migration shipped incrementally with no disruption to feature delivery, and the leaner config lowered the day-to-day cost of working in the codebase.
- Vite
- React
- TypeScript
- esbuild