Metro is the JavaScript bundler purpose-built for React Native applications. It handles the core task of transforming and packaging React Native source code into optimized bundles that can run on mobile devices. The bundler is designed around three primary objectives: achieving sub-second reload cycles and fast startup times, scaling to handle thousands of modules within a single application, and providing seamless integration with React Native projects without requiring additional configuration.
The repository was separated from the main React Native codebase into a standalone project to enable faster iteration and more responsive issue and pull request handling. This architectural decision, announced in react-native issue 13976, allows the Metro team to focus exclusively on bundling concerns while maintaining closer engagement with the community. The project is written in JavaScript and distributed under the MIT license, with comprehensive documentation available on the Metro website at metrobundler.dev.
Metro's core functionality encompasses multiple interconnected systems. It performs dependency resolution to understand module relationships, applies code transformations to prepare source code for mobile execution, handles asset packaging to bundle non-JavaScript resources, generates source maps for debugging, and implements build optimization techniques to reduce bundle sizes and improve load times. The bundler also includes an integrated development server that supports the rapid reload cycles critical to React Native development workflows.
Activity tracking shows that Metro maintains active engagement with its community. Across 196 tracked issues and pull requests, the median response latency is 2.0 hours, indicating responsive triage and discussion. The most frequently applied issue labels are Needs: Triage, Bundler-related issues, and Feature Requests, suggesting the project receives consistent contributions and enhancement proposals. The core maintenance team includes robhogan as the most active contributor with 215 tracked events, followed by huntie with 39 events and cpojer with 23 events.
Metro's development is closely connected to the broader React Native ecosystem. GitGenius contributor overlap analysis identifies facebook/react-native, react/react-native, and oven-sh/bun as repositories sharing contributors with Metro, reflecting the bundler's central role in React Native tooling and its relevance to other JavaScript bundling projects. The project comes pre-installed with React Native, making it the default bundler for new React Native projects, though it can also be added to existing projects through the documented Getting Started guide.
The repository includes comprehensive documentation covering configuration options and usage patterns, with documentation source code maintained alongside the bundler implementation. Metro's approach to bundling emphasizes performance and scalability as first-class concerns, recognizing that mobile development workflows demand fast feedback loops and that production applications require efficient handling of large codebases. The project maintains a Code of Conduct and established contributing guidelines, setting expectations for community participation and development practices.