Score: 95/100 · 1 error · 10 warnings
Copy as prompt
Fix the following React Review diagnostics in my codebase.
## Errors (1)
1. [error] require-reduced-motion — apps/website/package.json:0
Project uses a motion library but has no prefers-reduced-motion handling — required for accessibility (WCAG 2.3.3)
## Warnings (10)
2. [warning] no-array-index-as-key — apps/demo/src/app.tsx:96
Array index "index" used as key — causes bugs when list is reordered or filtered
3. [warning] no-array-index-as-key — apps/website/app/claude-spinner.tsx:38
Array index "index" used as key — causes bugs when list is reordered or filtered
4. [warning] click-events-have-key-events — apps/website/app/page.tsx:579
Enforce a clickable non-interactive element has at least one keyboard event listener.
5. [warning] click-events-have-key-events — apps/website/app/page.tsx:759
Enforce a clickable non-interactive element has at least one keyboard event listener.
6. [warning] no-static-element-interactions — apps/website/app/page.tsx:579
Static HTML elements with event handlers require a role.
7. [warning] no-static-element-interactions — apps/website/app/page.tsx:759
Static HTML elements with event handlers require a role.
8. [warning] nextjs-missing-metadata — apps/website/app/page.tsx:6
Page without metadata or generateMetadata export — hurts SEO
9. [warning] use-lazy-motion — apps/website/app/page.tsx:9
Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size
10. [warning] no-cascading-set-state — apps/website/app/page.tsx:196
39 setState calls in a single useEffect — consider using useReducer or deriving state
11. [warning] no-array-index-as-key — apps/website/app/page.tsx:758
Array index "index" used as key — causes bugs when list is reordered or filtered
❌ Errors (1)
require-reduced-motion
Project uses a motion library but has no prefers-reduced-motion handling — required for accessibility (WCAG 2.3.3)
Add useReducedMotion() from your animation library, or a @media (prefers-reduced-motion: reduce) CSS query
apps/website/package.json:0
⚠️ Warnings (10)
no-array-index-as-key
Array index "index" used as key — causes bugs when list is reordered or filtered
Use a stable unique identifier: key={item.id} or key={item.slug} — index keys break on reorder/filter
apps/demo/src/app.tsx:96
apps/website/app/claude-spinner.tsx:38
apps/website/app/page.tsx:758
click-events-have-key-events
Enforce a clickable non-interactive element has at least one keyboard event listener.
Visible, non-interactive elements with click handlers must have one of keyup, keydown, or keypress listener.
apps/website/app/page.tsx:579
apps/website/app/page.tsx:759
no-static-element-interactions
Static HTML elements with event handlers require a role.
Add a role attribute to this element, or use a semantic HTML element instead.
apps/website/app/page.tsx:579
apps/website/app/page.tsx:759
nextjs-missing-metadata
Page without metadata or generateMetadata export — hurts SEO
Add export const metadata = { title: '...', description: '...' } or export async function generateMetadata()
apps/website/app/page.tsx:6
use-lazy-motion
Import "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size
Use import { LazyMotion, m } from "framer-motion" with domAnimation features — saves ~30kb
apps/website/app/page.tsx:9
no-cascading-set-state
39 setState calls in a single useEffect — consider using useReducer or deriving state
Combine into useReducer: const [state, dispatch] = useReducer(reducer, initialState)
apps/website/app/page.tsx:196
Last scored 2026-05-13T07:59:45.910Z. Maintained by React Review.
Score: 95/100 · 1 error · 10 warnings
Copy as prompt
❌ Errors (1)
require-reduced-motionProject uses a motion library but has no prefers-reduced-motion handling — required for accessibility (WCAG 2.3.3)
apps/website/package.json:0no-array-index-as-keyArray index "index" used as key — causes bugs when list is reordered or filtered
apps/demo/src/app.tsx:96apps/website/app/claude-spinner.tsx:38apps/website/app/page.tsx:758click-events-have-key-eventsEnforce a clickable non-interactive element has at least one keyboard event listener.
apps/website/app/page.tsx:579apps/website/app/page.tsx:759no-static-element-interactionsStatic HTML elements with event handlers require a role.
apps/website/app/page.tsx:579apps/website/app/page.tsx:759nextjs-missing-metadataPage without metadata or generateMetadata export — hurts SEO
apps/website/app/page.tsx:6use-lazy-motionImport "m" with LazyMotion instead of "motion" — saves ~30kb in bundle size
apps/website/app/page.tsx:9no-cascading-set-state39 setState calls in a single useEffect — consider using useReducer or deriving state
apps/website/app/page.tsx:196Last scored 2026-05-13T07:59:45.910Z. Maintained by React Review.