From one 7.3 MB bundle to 141 chunks
- smaller initial load
- 45%
- route-level chunks
- 141
- React upgrade
- 16 → 19
- Situation
- The app shipped as a single 7.3 MB JavaScript bundle on a legacy stack (React 16.14, Ant Design v4, Create React App with Webpack), so every visit downloaded the entire product up front.
- What I did
- As the sole frontend architect, I led a full modernization: React 16.14 to 19, Ant Design v4 to v6, and CRA/Webpack to Vite. I added route-level code splitting so each page loads only the code it needs, and moved data fetching to RTK Query to unify caching and request handling.
- Result
- The single bundle became 141 chunks and the initial-load payload dropped by 45%, from 2,589 KB to 1,421 KB gzipped, on an up-to-date React 19 and Vite stack.
