WhoBuilt

Publishing And Maintaining A React Native Library

Oct 8, 2019· 10 min· 425 views·Watch on YouTube

Speaker

Thibault Malbranche, an open-source contributor at French startup Regal, shares lessons from maintaining React Native WebView at React Native EU 2019.

How WebView became a community project

Malbranche describes fixing and combining existing WebView forks after his team needed a working WebView to reuse its website in a React Native app. After Facebook opened core components to community maintenance, the project grew to more than 100 releases and 100 contributors.

Set limits and invite contributions

At first, Malbranche tried to answer everyone immediately, even keeping GitHub notifications on his phone. He learned to protect his time and ask issue reporters for enough context. He recommends issue and pull request templates, guidance for newcomers, and giving contributors ownership so the work does not depend on one maintainer.

Use tools to make maintenance safer

Malbranche recommends Prettier and ESLint to keep code style consistent, and TypeScript or Flow to catch problems and provide autocomplete. He also uses GitHub Actions to run tests and automate pull request handling, reducing manual work.

Automate releases and give contributors feedback

With semantic-release, commit or pull request labels determine the version change: fixes trigger patch releases, features trigger minor releases, and breaking changes trigger major releases. Malbranche demonstrates merging a small iOS fix and explains that automatic releases can give contributors quick feedback while semantic versioning helps protect users. The live release did not finish during the talk.

Takeaways

  • Set boundaries around open-source support; maintainers are not responsible for doing more work than issue reporters provide.
  • Use issue and pull request templates to help contributors provide useful context.
  • Give newcomers guidance and ownership so project work can be shared.
  • Automate formatting, type checks, tests, and releases to reduce repetitive maintenance.
  • Use semantic versioning to ship contributor changes quickly while communicating their impact.

Mentioned in this talk

Search inside this talk

What was claimed 11

Show all 11 facts

Related talks