Skip to main content
Thank you for your interest in contributing to React Native! This guide will walk you through the contribution process.

Ways to Contribute

There are many ways to contribute to React Native:

Report Bugs

Help identify and document issues in React Native

Improve Documentation

Fix errors or add missing information to the docs

Submit Pull Requests

Contribute code fixes and new features

Review Code

Help review pull requests from other contributors

Answer Questions

Help community members on GitHub, Discord, or Stack Overflow

Triage Issues

Help organize and prioritize reported issues

Getting Started

1

Set Up Your Development Environment

Clone the React Native repository and install dependencies:
git clone https://github.com/facebook/react-native.git
cd react-native
npm install
2

Understand the Codebase

Familiarize yourself with:
  • The project structure
  • Coding conventions
  • Testing practices
  • Build process
3

Find an Issue to Work On

Look for issues labeled:
  • good first issue - Great for newcomers
  • help wanted - Issues that need attention
  • Check the issues page
4

Make Your Changes

  • Create a new branch for your work
  • Write clean, well-documented code
  • Follow existing code style and conventions
  • Add tests for new functionality
5

Test Your Changes

Run the test suite to ensure nothing breaks:
npm test
6

Submit a Pull Request

  • Push your branch to your fork
  • Open a pull request against the main branch
  • Fill out the PR template completely
  • Link related issues
7

Participate in Code Review

  • Respond to feedback promptly
  • Make requested changes
  • Be patient and respectful

Reporting Issues

Before Creating an Issue

Check if the issue already exists
Ensure you’re using the latest version
Verify it’s a React Native issue (not your app code)
Prepare a minimal reproduction

Creating a Good Issue Report

A good bug report should include:
  1. Clear title - Summarize the problem in one line
  2. Description - Explain what happened and what you expected
  3. React Native version - Which version are you using?
  4. Platform - iOS, Android, or both?
  5. Reproduction - Steps to reproduce the issue
  6. Code snippet - Minimal code that demonstrates the problem
  7. Screenshots/videos - If applicable
  8. Environment info - OS, device, etc.
npx react-native info

Submitting Pull Requests

Pull Request Guidelines

Make sure your PR addresses an existing issue or has been discussed with maintainers first.
Your PR should:
  • Have a clear title and description
  • Reference related issues (e.g., “Fixes #12345”)
  • Include tests for new functionality
  • Update documentation if needed
  • Follow the existing code style
  • Pass all CI checks
  • Be focused on a single concern

PR Review Process

  1. Automated checks run on your PR (tests, linting, etc.)
  2. Maintainers review your code and provide feedback
  3. You address feedback by pushing new commits
  4. Approval - Once approved, a maintainer will merge your PR
Be patient during code review. Maintainers are often reviewing many PRs and may take time to respond.

Development Workflow

Testing Changes on iOS

cd packages/rn-tester
npx pod-install
npx react-native run-ios

Testing Changes on Android

cd packages/rn-tester
npx react-native run-android

Running Tests

# Run all tests
npm test

# Run specific test file
npm test -- MyComponent-test.js

# Run Flow type checking
npm run flow

Code Style

React Native uses:
  • Prettier for code formatting
  • ESLint for code quality
  • Flow for type checking (being migrated to TypeScript)
Run the linter before submitting:
npm run lint

Commit Message Guidelines

Write clear, concise commit messages:
  • Use the imperative mood (“Add feature” not “Added feature”)
  • Keep the first line under 72 characters
  • Reference issues and PRs when relevant
  • Provide context in the commit body
Example:
Fix crash when TextInput receives null value

Fixes #12345

The TextInput component would crash when receiving a null value
for the defaultValue prop. This adds a null check to prevent
the crash.

Community Guidelines

Be respectful and inclusive
Welcome newcomers
Focus on constructive feedback
Follow the Code of Conduct

Getting Help

If you need help with your contribution:

Recognition

Contributors who demonstrate consistent commitment may be invited to become:
  • Core Contributors - Granted additional privileges and responsibilities
  • Maintainers - For community packages
Apply or nominate someone using our application form.

Resources

Thank you for helping make React Native better! Every contribution, no matter how small, is valuable to the community.

Build docs developers (and LLMs) love