Building m.uber: Engineering a High-Performance Web App
Article Summary
Uber built a web app that loads in 3 seconds on 2G networks. Here's how they made it smaller than a typical image file.
Uber's engineering team rebuilt their mobile web experience from scratch to serve riders in emerging markets with low-end devices and slow networks. The result: m.uber, a fully functional ride-hailing app that weighs just 50kB.
Key Takeaways
- Swapped React for Preact (3kB vs 45kB) without losing functionality
- Server-side rendering delivers content before JavaScript downloads
- Service workers cache everything for instant reloads and offline support
- Dynamic code splitting loads payment and settings only when needed
- Replaced custom fonts and PNGs with optimized SVGs (7.4kB to 500 bytes)
Critical Insight
By ruthlessly optimizing every dependency and asset, Uber created a 50kB web app that matches native app functionality and loads in 3 seconds on 2G.