Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/Renvia-code/best-cursor-rulesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/renvia-code/best-cursor-rules/react-19)<a href="https://agentmods.dev/rules/renvia-code/best-cursor-rules/react-19"><img src="https://agentmods.dev/badge/rules/renvia-code/best-cursor-rules/react-19/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/renvia-code/best-cursor-rules/react-19"><img src="https://agentmods.dev/badge/rules/renvia-code/best-cursor-rules/react-19.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.01725 |
| Opus 5.5 | $0.00000 | $0.00690 |
| Sonnet 5.5 | $0.00000 | $0.00345 |
| Haiku 4.5 | $0.00000 | $0.00172 |
Grade A, and why
react-19 scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 339 lines — stays where its author put it; the contents beside it link to each section on GitHub.
React 19 Best Practices
Overview
| Feature | Status |
|---|---|
| Server Components | Stable |
| useActionState | New (replaces useFormState) |
| useFormStatus | Enhanced |
| use() hook | New |
| Ref as prop | No forwardRef needed |
| Document Metadata | Native support |
Component Patterns
✅ DO: Use function components with TypeScript
interface UserCardProps {
name: string
email: string
onEdit?: () => void
}
export function UserCard({ name, email, onEdit }: UserCardProps) {
return (
<div className="card">
<h3>{name}</h3>
<p>{email}</p>
{onEdit && <button onClick={onEdit}>Edit</button>}
</div>
)
}
✅ DO: Use early returns
export function UserProfile({ user }: { user: User | null }) {
if (!user) return null
if (user.banned) return <BannedMessage />
return <ProfileCard user={user} />
}
❌ DON'T: Nested conditionals in JSX
// Bad
return (
<div>
{user && user.name && user.isActive && (
<span>{user.name}</span>
)}
</div>
)
// Good
if (!user?.name || !user.isActive) return null
return <span>{user.name}</span>
Hooks Best Practices
useState
// ✅ Simple state
const [count, setCount] = useState(0)
// ✅ Functional updates for derived state
setCount(prev => prev + 1)
// ✅ Lazy initialization for expensive defaults
const [data, setData] = useState(() => computeExpensiveDefault())
useEffect
// ✅ Cleanup subscriptions
useEffect(() => {
const subscription = api.subscribe(handler)
return () => subscription.unsubscribe()
}, [handler])
// ✅ Dependency array should include all used values
useEffect(() => {
fetchUser(userId)
}, [userId]) // userId is used, so include it
useMemo and useCallback
// ✅ Memoize expensive calculations
const sortedItems = useMemo(
() => items.sort((a, b) => a.name.localeCompare(b.name)),
[items]
)
// ✅ Memoize callbacks passed to children
const handleClick = useCallback(() => {
doSomething(id)
}, [id])
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 339 lines · 0 tokens per session scan A dc3af614eaf2
react-19 is a cursor rule published in the GitHub repository Renvia-code/best-cursor-rules (13 stars, last pushed 10mo ago), licensed CC0-1.0. It costs nothing until one of its globs matches a file; then it loads 1,725 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other cursor rules, from other repositories
semiotic-react-dataviz-cursorrules-prompt-file
Cursor rules for Semiotic data visualization library with 30+ chart types, MCP server, and AI-assisted chart generation.
react-tanstack-router-query-cursorrules-prompt-file
Cursor rules for React SPAs combining TanStack Router v1 and TanStack Query v5 for zero-loading-spinner routing and type-safe server state.
cursorrules-cursor-ai-nextjs-14-tailwind-seo-setup
Cursor rules for Next.js development with Tailwind CSS and SEO optimization.
react-formengine-ai-form-builder-cursorrules-prompt-file
Cursor rules for generating React forms from screenshots, PDFs, HTML, or text descriptions with validated FormEngine JSON schema. Renders through RSuite, Material UI, or Mantine.
nextjs15-supabase-cursorrules-prompt-file
27 architecture rules preventing AI hallucinations: insecure auth (getSession vs getUser), synchronous params, deprecated imports, missing RLS, and Stripe key exposure. Built for Cursor Agent and Claude Code.
react-zustand-cursorrules-prompt-file
React and TypeScript state management guidance for Zustand stores, selectors, middleware, persistence, and testing.