Manat Singh Brar
← All work

Row 02 of 07

Off Create React App

Area
Build tooling
Level
Engineer
Result
55% less JavaScript
Stack
esbuild · Webpack 5 · Gzip · Brotli · React 19 · Node 20

Replaced Babel with esbuild and moved a second app off Create React App. Total JavaScript shipped fell 55%, from 39.4 MB to 17.6 MB.

39.4 MB total JavaScript, before
17.6 MB, after
55% less JavaScript shipped. Bars drawn to scale.

Context

Every file went through Babel and ts-loader. A second app still ran on Create React App, which keeps its Webpack config out of reach, so there was no clean way to add compression to it.

What I did

I replaced Babel and ts-loader with esbuild-loader, and moved the second app to a custom Webpack config with Gzip and Brotli compression.

I also owned the upgrade to React 19, Axios 1 and Node 20.

Outcome

Total JavaScript shipped across the apps fell 55%, from 39.4 MB to 17.6 MB, and the codebase runs on React 19.