v0.3 · seven tasks, one pass

Point it at a .tsx file.
Get back a runnable suite.

flawless-react is a multi-task quality kit for React components. Pick which checks to run and it scaffolds a Playwright perf harness and Vitest tests, then reports static perf, accessibility and correctness findings with file:line for every issue.

curl -fsSL https://raw.githubusercontent.com/lariocpt/flawless-react/main/install.sh | bash
$ flawless-react ./src/Widget.tsx --tasks a11y,react-rules

src/Widget.tsx
  warn   5:5   lint/a11y/useKeyWithClickEvents
  ERROR  7:7   lint/a11y/useAltText
  warn   6:40  lint/suspicious/noArrayIndexKey

Summary:
  [ok] a11y          files:1 findings:2
  [ok] react-rules   files:1 findings:1
The seven tasks

Scaffolders and scanners, pick what you need.

Run them all, or name a subset with --tasks. Four write a runnable suite you own; three report findings with file:line and change nothing.

perf-harness

Scaffolds a Playwright suite that mounts the component inside a React <Profiler>, with react-scan and budget assertions.

unit-browser

Generates Vitest unit tests plus real-browser tests from the props and interactions it found in your component.

perf-static

Static analysis for the usual re-render causes — unmemoised props, inline objects and closures, effects with unstable deps.

a11y

An accessibility scan over the same files — missing alt text, click handlers with no keyboard equivalent, label associations.

react-rules

Biome-driven React correctness rules: array-index keys, conditional hooks, missing dependencies.

e2e

One Playwright spec per app-router page against your real dev server: the route loads clean, then interactions taken from its own component tree.

load

crust load pipes per route and per API operation. First run writes baselines, later runs compare against them.

Next.js mode

--nextjs detects the router style, emits MSW handlers and a swagger from app/api, and wires the app resolver for you.

Point it at a component.

Install in one curl, then run it against a .tsx file and read what comes back.