WhoBuilt

React Native CLI A Community Takeover

Jul 15, 2019· 42 min· 364 views·Watch on YouTube

Speaker

Michał Pierzchała, a Callstack developer and React Native Community contributor, traces the community takeover of React Native CLI and its improvements at React Native Wrocław Meetup #1.

Why React Native moved toward Lean Core

Pierzchała links Facebook’s 2018 open source roadmap to the plan to make React Native core smaller and easier to use as a building block. The proposed Lean Core effort moved modules out of core so they could be maintained and developed more independently.

Building a community home for packages

The React Native Community organization became a place to maintain packages extracted from core, including WebView, NetInfo, and React Native Maps. Pierzchała says WebView closed about 150 pull requests and nearly 100 issues in eight months, while the CLI closed 260 pull requests and around 130 issues.

Making the CLI faster and easier to use

After the CLI moved to the community repository, contributors reduced the simplest command’s startup time from 2.5 seconds to 0.2 seconds by compiling its source instead of using Babel Register. Other improvements included unified logging, a maintained upgrade command using React Native Upgrade Helper, clearer documentation, and a simpler init command with configurable templates.

Autolinking native dependencies

Autolinking aims to make adding native packages as simple as installing an npm package, without manually editing platform files. The CLI reads project dependencies and platform configuration, then Gradle and CocoaPods scripts generate the linking setup. Pierzchała demonstrates adding react-native-device-info and building without manually changing native files.

Supporting the wider React Native ecosystem

Pierzchała summarizes the CLI work as including better documentation, faster startup, end-to-end tests, new commands, autolinking, and broader platform support, including React Native Windows. In the Q&A, he describes moving under-maintained packages into community organizations, finding maintainers, and sharing contribution responsibility to help reduce burnout.

Takeaways

  • Moving packages out of a large core repository can give maintainers more room to release fixes independently.
  • Measure developer-tool startup time; replacing runtime transpilation cut the simplest CLI command from 2.5 seconds to 0.2 seconds.
  • Document configuration in one place so library authors, platform maintainers, and users can find relevant guidance.
  • Automate native dependency linking to reduce manual project-file edits and upgrade friction.
  • Share maintenance across contributors and repositories to broaden ownership and help limit maintainer burnout.

Mentioned in this talk

Search inside this talk

What was claimed 16

Related talks