Builds were slow
- Cause.
- A production frontend build took a median 12.3 minutes in CI.
- Fix.
- Vite builds the same app in a median 3.3 minutes. In a local rebuild, the embedded app went from 141 s to 12 s.
The frontend still built with webpack on React 17. A production build took a median 12.3 minutes in CI, and the app shipped nearly all of its JavaScript in one vendor chunk that every visit loaded up front.
I moved it to Vite on my own, and took React to 19, MUI to 7 and added Tailwind on the way, removing about 40 packages. The numbers below are for that whole upgrade, measured months later by rebuilding the last webpack commit.
The same upgrade moved React 17 to 19 and MUI 5 to 7, added Tailwind and removed about 40 packages, and the newer build carries six months of features. So these numbers are for the whole upgrade, not what Vite saved by itself. Total JavaScript barely moved (−11%); the win is what loads first.
The 359 KB is what the page itself asks for. A first visit also loads the code for the route it opens, which puts a real first page closer to 500–600 KB gzipped: still about a third of before.
Build times are medians of GitHub's job timings: 21 webpack runs (Feb 20 – Mar 21) and 25 Vite runs (Sep 15 – Oct 8). No webpack-era bundle survived, so sizes come from rebuilding the last webpack commit and current master in Docker, with no cached layers. Fonts and images are the same in both and left out.
fewer worker restarts in production
AptEdge · Oct 2026
Search workers restarted every few minutes for five years, because health checks were aging them out. One hook stopped it.
a year saved moving aptedge.io off WordPress
AptEdge · 2026
I designed and rebuilt AptEdge's website in Next.js and moved it off WordPress, saving more than $30k a year in hosting, plugin licences and agency fees.
a year in crawler runs, down to cents a run
AptEdge · 2025
A crawler scraped one customer's articles for $10 and a couple of hours a run, three times a day. Calling their API with the login they'd shared cut each run to minutes and cents.