React Doctor v2
React Doctor v2 is here, and it's built to run every day.
v1 scored your React. v2 covers a lot more of it, reads your project more carefully, and fits into the way you already work.
React Native and Expo
The biggest addition is mobile. React Doctor now detects React Native and Expo projects and runs a dedicated set of rules for them, from non-virtualized lists that mount every row to shadow styles that silently don't render on Android. The score finally means something for mobile codebases, not just web.
Rules that catch real bugs
We went deep on the patterns that actually break apps. A full useEffect
analyzer flags mirrored props, mutable dependencies, missing cleanup, effect
chains, and state set straight from an event. There's a set of React 18 to 19
migration rules, design-quality checks for frontend polish, and framework rules
for stacks like TanStack Start.
It uses your config
React Doctor now ships as an ESLint plugin and adopts your existing lint setup, so it builds on the rules you already run instead of fighting them.
Suppressions that stay out of the way
Real codebases need escape hatches. v2 adds per-file rule overrides, stacked and multi-line suppressions, and near-miss hints that tell you when a suppression almost matched but didn't.
Output you can actually read
A noisy scanner gets ignored. The summary now collapses to the top rules by
default, breaks the score down by category inline, and keeps the full detail
behind --verbose. On a branch, scan only what changed:
npx react-doctor@latest --verbose --diffThe GitHub Action grew up too, posting a PR comment with the score and the diff's findings so review happens in the pull request.
A leaderboard
We also published a leaderboard so you can see how real React projects score, and where yours lands.