01
A legacy frontend stuck on old majors
- Problem
- The app ran on React 16, webpack 4 and an old Redux stack, with vulnerable transitive dependencies and tooling that no longer worked on current Node.
- Approach
- I upgraded one layer at a time, keeping the app releasable after every step: React 18 and react‑redux 8, webpack 5 with the polyfills it no longer ships, axios 1, Jest 30 and Node 24. I replaced deprecated tooling like react‑hot‑loader with Fast Refresh and removed unused libraries and widgets along the way.
- Outcome
- The app is on supported versions, the bundle lost dead weight, and the dependency findings were resolved.