Release 2.0.0
2.0.0 (2026-09-13)
Important
When upgrading from Boost 1.x, you need to migrate the Babel plugin to the new Metro plugin. See the documentation.
- ⚙️ Metro config plugin. Boost now provides a Metro config plugin instead of a Babel plugin, making a lot of the new features below possible.
- 🚀 Five new optimizers. Optimize Animated and ActivityIndicator components, as well as StyleSheet, Platform and other code.
- 🎨 Uniwind support. Resolving one of the longest-standing feature requests, Boost now supports Uniwind, preserving styling in optimized components.
- 🧠 Less bail-outs. Boost now analyzes ancestors and helper functions across files.
- 🖼️ Improved Image optimization. Static sources, callbacks, and accessibility props get better support.
- 🛡️ Improved runtime behavior parity. A ton of fixes and improvements around edge cases ensuring better parity with pure React Native.
- 📱 React Native 0.88 support. Runtime parity is validated against the latest React Native 0.88 RC.
- 🧰 Clearer configuration. Optimizers, integrations, assumptions, and logging now use one developer-friendly API.
✨ Features
- add ActivityIndicator optimizer (0c914dd)
- add support for React Native 0.88 (3d9c0c9)
- animated-value-initialization: lazily create animated values (e01a3f6)
- example: drive mount benchmark automatically (ef12fe2)
- image: optimize load-event callbacks (296493b)
- metro: add config adapter (613872b)
- metro: resolve cross-file component ancestors (1cdee30)
- platform-folding: fold Platform select calls and branches (efef2be)
- platform-folding: resolve platform branches and expressions (639479a)
- plugin: classify react-native ancestors (598e790)
- plugin: optimize literal JSX spread props (a0796a2)
- plugin: precompute static accessibility props (acc9cae)
- plugin: redesign configuration API (47199db)
- plugin: support Uniwind integration (ec287cd)
- resolve spread helper return keys (4f8a819)
- static-animated: remove wrappers without animated values (82625d6)
- stylesheet-operations: evaluate static StyleSheet operations (85389c8)
- view: preserve runtime Text context if needed (b26de72)
⚡ Performance Improvements
- metro: reduce redundant bundling transforms and analyses (2260b86)
- native-activity-indicator: remove text ancestry checks (6a34d7a)
- native-image: hoist static native image sources (7c19af6)
- native-image: narrow text ancestry checks (4e6b00d)
- native-image: optimize static srcSet sources (c280ac2)
- native-text: preprocess selectionColor (04b72b6)
- plugin: replace Object.assign with object spread (2ac8ec5)
- plugin: resolve version-dependent behavior at build time (21f60a2)
🐛 Bug Fixes
- fix type errors (8c1298c)
- fix TypeScript 7 type errors (9cd76d4)
- native-text: bail when runtime text context is unknown (5778bb8)
- platform-folding: preserve select value evaluations (8ab642e)
- plugin: allow boost-force decorator more often (601cb89)
- plugin: preserve text context through wrappers (7568253)
- preserve ancestor safety before React Compiler lowering (e712029)
- restore React Native version matrix compatibility (fb7c4fc)
- text: preserve React Native accessibility and style parity (5e5477c)