# nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect

🙅‍♂️ Catch unnecessary React effects for simpler, faster, safer code.

Repository: https://github.com/nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect
Canonical: https://ross.abutalabs.com/products/eslint-plugin-react-you-might-not-need-an-effect
Homepage: https://www.npmjs.com/package/eslint-plugin-react-you-might-not-need-an-effect
Language: JavaScript
License: MIT
License Family: permissive
Topics: eslint, eslint-plugin, eslint-rules, react, react-hooks, reactjs
Last push: 2026-08-21T02:54:29+00:00

## Health v2 (maintenance only)
Score: 85/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 98, release rhythm 98, longevity 35
- inputs: {"age_days": 495, "days_push": 12, "days_rel": 13, "gap_med": 3.5, "n_releases_24m": 15}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1908, forks 19 (observed 2026-08-28T04:05:52.740685+00:00)

## What it is
An ESLint (and Oxlint) plugin that detects unnecessary React useEffect calls based on React's 'You Might Not Need an Effect' guidance. It analyzes state, props, refs, and effect timing to flag redundant effects with actionable fixes.

## Use cases
- catch unnecessary useEffect calls in React components
- lint derived state anti-patterns in React
- reduce redundant re-renders from effects
- teach new React developers the effects mental model
- enforce React hook best practices in CI
- find setState calls inside effects

## When to choose
- you maintain a React codebase using hooks and want to eliminate redundant effects
- you want actionable lint rules with suggestions and documentation links
- you use ESLint flat config or legacy config, or Oxlint

## When to avoid
- your project does not use React
- you need general-purpose React linting beyond effects (use eslint-plugin-react or react-hooks)
- you need runtime behavior analysis rather than static linting

## Facets
- artifact type: plugin
- maturity: active
- function: linter, developer-tools
- domain: frontend, web-development, developer-tools
- platform: -
- tags: eslint-plugin, react-hooks, useeffect, static-analysis, code-quality, nodejs, javascript

## Member repositories
- nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect (main) score 85

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:52.740685+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:11:13.614682+00:00, confidence not recorded.
  - readme: https://github.com/nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect (fetched 2026-08-28T04:05:52.740685+00:00, sha 9237134e47f3)
  - registry_npm: https://registry.npmjs.org/eslint-plugin-react-you-might-not-need-an-effect (fetched 2026-08-29T10:50:37.771450+00:00, sha 832232a8845f)
- Data as of 2026-08-30T08:39:29.467469+00:00.
