Contributing to React DevTools Plus

December 7, 2025 ยท View on GitHub

Thank you for your interest in contributing to React DevTools Plus! This guide will help you get started.

๐ŸŒŸ Ways to Contribute

  • Report bugs - Open an issue describing the problem
  • Request features - Open an issue describing your use case
  • Fix bugs - Submit a PR with the fix
  • Add features - Discuss in an issue first, then submit a PR
  • Improve documentation - Fix typos, add examples, clarify explanations
  • Share feedback - Tell us about your stack and pain points

๐Ÿ› ๏ธ Development Setup

Prerequisites

  • Node.js >= 16.0.0
  • pnpm >= 10.0.0

Getting Started

  1. Fork the repository

    Click the "Fork" button at the top right of the repository page.

  2. Clone your fork

    git clone https://github.com/YOUR_USERNAME/react-devtools-plus.git
    cd react-devtools-plus
    
  3. Install dependencies

    pnpm install
    
  4. Start development mode

    pnpm dev
    
  5. Run the playground

    # Vite playground
    pnpm play
    
    # Webpack playground
    pnpm play:webpack
    

๐Ÿ“ Project Structure

packages/
โ”œโ”€โ”€ react-devtools/           # Main Vite/Webpack plugin (entry point)
โ”œโ”€โ”€ react-devtools-client/    # DevTools client UI
โ”œโ”€โ”€ react-devtools-core/      # Core functionality & plugin system
โ”œโ”€โ”€ react-devtools-kit/       # State management & messaging
โ”œโ”€โ”€ react-devtools-overlay/   # Floating overlay component
โ”œโ”€โ”€ react-devtools-scan/      # Render scanning utilities
โ”œโ”€โ”€ react-devtools-ui/        # Shared UI components
โ”œโ”€โ”€ shared/                   # Shared utilities
โ””โ”€โ”€ playground/               # Example projects

Key Packages

PackageDescription
react-devtoolsThe main package users install. Contains Vite/Webpack plugins.
react-devtools-coreCore functionality, plugin system, and RPC communication.
react-devtools-kitState management using Zustand-like stores.
react-devtools-clientThe DevTools UI that runs at /__react_devtools__/.
react-devtools-overlayThe floating overlay toggled with keyboard shortcut.

๐Ÿ”„ Development Workflow

Building Packages

# Build all packages
pnpm build

# Build specific package
pnpm build:core    # react-devtools-core
pnpm build:ui      # react-devtools-ui
pnpm build:kit     # react-devtools-kit
pnpm build:client  # react-devtools-client
pnpm build:overlay # react-devtools-overlay

Running Tests

pnpm test

Linting

# Check for lint errors
pnpm lint

# Auto-fix lint errors
pnpm lint:fix

๐Ÿ“ Submitting Changes

Commit Messages

We follow Conventional Commits:

<type>(<scope>): <description>

[optional body]

[optional footer]

Types:

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • style: Code style changes (formatting, etc.)
  • refactor: Code refactoring
  • perf: Performance improvements
  • test: Adding or updating tests
  • chore: Maintenance tasks

Examples:

feat(overlay): add keyboard shortcut customization
fix(core): resolve fiber scanning memory leak
docs: update installation guide

Pull Request Process

  1. Create a branch

    git checkout -b feat/my-feature
    
  2. Make your changes

    • Write clear, documented code
    • Add tests if applicable
    • Update documentation if needed
  3. Run checks

    pnpm lint
    pnpm test
    pnpm build
    
  4. Commit your changes

    git add .
    git commit -m "feat(scope): description"
    
  5. Push and create PR

    git push origin feat/my-feature
    

    Then open a Pull Request on GitHub.

PR Guidelines

  • Title: Use conventional commit format
  • Description: Explain what, why, and how
  • Screenshots: Include for UI changes
  • Testing: Describe how to test your changes

๐Ÿ› Reporting Bugs

When reporting bugs, please include:

  1. Environment

    • Node.js version
    • pnpm version
    • React version
    • Vite/Webpack version
    • Browser and version
  2. Steps to reproduce

    • Minimal code example
    • Expected behavior
    • Actual behavior
  3. Screenshots/Videos (if applicable)

๐Ÿ’ก Feature Requests

When requesting features:

  1. Describe the problem - What pain point does this solve?
  2. Describe the solution - How would this feature work?
  3. Alternatives - What alternatives have you considered?
  4. Context - Share your use case and stack

๐Ÿ”’ Security

If you discover a security vulnerability, please email the maintainers directly instead of opening a public issue.

๐Ÿ“„ License

By contributing, you agree that your contributions will be licensed under the MIT License.

๐Ÿ™ Thank You!

Every contribution, no matter how small, helps make React DevTools Plus better. Thank you for being part of our community!