Introducing Expo Atlas
Development••2 minutes read
Cedric van Putten
Engineering

Our goal at Expo is to create the best possible way to make apps. We are doing that through tooling that leverages the best of native and the most cutting-edge web patterns. By doing so, our framework became inherently more complicated. But, thanks to internal tooling, we are innovating our tooling faster than ever, introducing Expo Atlas.
Expo Atlas started as an internal tool to help us gain visibility into the more opaque parts of React Native development. The tool gives an excellent overview of the bundle, source and output code for individual modules, and each platform's dependency graph. And now we are shipping it to everyone.
Our Metro fast resolver is one of these new features, accelerated through Expo Atlas. The profiler in the Chrome Devtools helped us confirm that the default resolver is taking longer than it should be, and Expo Atlas helped us validate different approaches. We also have improved our Babel configuration to leverage more Hermes-supported language features, removing unnecessary transformations. Even early external testers, like Backpack, decreased their JS bundle size by ±38% in just under 2 days.
Built-in with Expo SDK 51
Expo Atlas works with expo start and expo export starting from Expo SDK 51. You can enable Atlas by setting the EXPO_UNSTABLE_ATLAS=true environment variable.
- Using Atlas with
expo start, you can open Atlas through the more tools option in the CLI —shift+m— or just by opening http://localhost:8081/_expo/atlas. After launching your app on Android, iOS, or the web, Atlas provides you with all the information for each platform. - Using Atlas with
expo export, Expo exports a .expo/atlas.jsonl file. This file contains all bundle information, including actual source code. You can share or open this file withnpx expo-atlas .expo/atlas.jsonl
Go ahead and try it today! We are excited to ship this tool to the whole community and can't wait to see what you'll do with Atlas.