welldone-software/why-did-you-render

why-did-you-render by Welldone Software monkey patches React to notify you about potentially avoidable re-renders. (Works with React Native as well.)

View on GitHub ↗Jump to charts ↓

welldone-software/why-did-you-render has 12k+ stars and 200+ forks on GitHub, is written in JavaScript, and was last pushed on Apr 15, 2026. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 20 minutes ago
Added to GitGenius on September 4th, 2026
Created on November 10th, 2018
Open Issues & Pull Requests: 45 (+0)
GitHub issues: Enabled
Number of forks: 225
Total Stargazers: 12,526 (+0)
Total Subscribers: 39 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 6.7 days
Mean response time: 84.7 days
90th percentile: 379.3 days
Tracked items: 26

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 10
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 973 days
Stale 30+ days: 9
Stale 90+ days: 9

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • help wanted (9)
  • good first issue (8)
  • Low priority (3)
  • bug (3)
  • enhancement (3)
  • high priority (2)
  • question (2)
  • blocked by an issue in another library (1)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

why-did-you-render is a React development tool that detects and reports potentially avoidable component re-renders.

The tool works by monkey-patching React to intercept render cycles and identify when components re-render without their props or state actually changing. This catches performance issues that are easy to miss during development, particularly in applications with complex component hierarchies where unnecessary re-renders can accumulate and degrade user experience. The tool notifies developers about these wasteful renders so they can optimize their components using techniques like memoization or by restructuring how props are passed down the component tree.

Developers should adopt this tool if they are building React applications where performance matters and want to catch render inefficiencies early in development. It works with both React and React Native projects. The tool is most valuable during active development and debugging rather than as a production dependency, since it requires configuration to specify which components to track and operates through runtime inspection.

The project maintains active engagement with its issue tracker, responding to bug reports and feature requests from users. Development includes regular updates to maintain compatibility with new React versions and patterns. The codebase receives contributions addressing edge cases and expanding support for different React usage patterns.