Airbnb's frontend has upgraded to React 18 using the React Upgrade System, which allows for incremental and testable upgrades without requiring a long-running feature branch.
Module aliasing and environment targeting split React versions into separate build artifacts and runtime environments.
TypeScript discrepancies were handled using shims, type augmentation, and progressive TypeScript error fixes.
Comprehensive testing included visual regression, integration, and unit testing, with unit tests run under both React 16 and 18.
Progressive rollout controlled traffic to both React 16 and 18 environments, allowing for internal testing and gradual surface upgrades.
The system allowed for the testing of React 19 canary releases without pointing to React 18.
Performance improvements were observed after adopting React 18 features like new root APIs and concurrent rendering.
The system promotes continuous upgrade efforts, avoiding large, one-off changes.
The React team's focus on backwards compatibility facilitated this upgrade approach.
Airbnb's frontend is now running on React 19 beta, providing a head start for future React upgrades.
medium.com
medium.com
Create attached notes ...
