Enforces React component ownership boundaries—colocate state, queries, and mutations with consuming leaves; avoid prop drilling and parent data hubs; structure trees for render isolation and composability. Includes TanStack Query, Router, Start, Form, and Store patterns. Use when designing or reviewing component architecture, refactoring prop-heavy trees, fixing unnecessary re-renders from lifted state, deciding where API or query logic should live, or when the user says react-boundaries, owner…
Enforces React component ownership boundaries—colocate state, queries, and mutations with consuming leaves; avoid prop drilling and parent data hubs; structure trees for render isolation and composability.
Includes TanStack Query, Router, Start, Form, and Store patterns.
Use when designing or reviewing component architecture, refactoring prop-heavy trees, fixing unnecessary re-renders from lifted state, deciding where API or query logic should live, or when the user says react-boundaries, ownership boundaries, push state down, or stop prop drilling.
Similar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Claude CodeNot declared
CursorNot declared
CodexNot declared
GitHub CopilotNot declared
WindsurfNot declared
Gemini CLINot declared
ClineNot declared
OpenCodeNot declared
Repository health
Stars1
LicenseLICENSE
Default branchmain
Open issues0
Status
Active
Package contents
Files included with this skill beyond the listing page.
skill mdSKILL.md4,093 B
docsSUMMARY.md581 B
History
First seen on skills.sh
First recorded snapshot · 31 installs
SKILL.md
React Boundaries
Own state, data, and side effects at the lowest correct boundary. Parents compose structure; they do not become data hubs.
Principle: a component should own what it needs to render and act—unless another boundary must genuinely coordinate, gate, or load in parallel.
Hard Defaults
Push down. State and fetches live with the consumer. Lift only via the exception list.
Pass identity, not payloads. Give children an id (or stable handle); let them subscribe or query. Do not drill entities through wrappers that never use them.
Compose UI, don’t pipe props. Prefer children / slots / named parts over threading data, isLoading, and handlers through layout shells.
Shared clients, local hooks. One API or QueryClient; many leaf hooks. Do not centralize “call the API” five layers up.
Structure over memo theater. Fix ownership and tree shape before spraying memo / useCallback / useMemo. Prefer patterns that work with React Compiler.
Justify every hoist in one line when you lift or route-fetch (“SEO”, “gate before mount”, “sibling sync”, “anti-waterfall”).
When Hoisting Is Correct
Hoist state or data ownership only for:
Exception
Own at
Route / SSR / SEO needs data before paint or for meta
Router loader, Start server function, or RSC prefetch
Auth, permissions, or “don’t mount until X”
Route or parent gate
Two+ siblings must share one interactive source of truth
Nearest common parent or a narrow store
Parent must know which children exist before they can fetch