Introduction
What is frontend-qa?
Section titled “What is frontend-qa?”frontend-qa is a local-first, deterministic frontend runtime inspection and
QA tool for React and Next.js applications. It drives a real headless (or
headed) Chromium browser via Playwright, opens your
app, and records what actually happens — console errors, failed network
requests, a screenshot, and navigation timing on every run, with
accessibility, performance, and visual-regression checks available as opt-in
flags. Everything is normalized into a single structured Report, written to
disk as JSON.
It also ships an MCP server that exposes the same scan/report/issue data as tools an AI coding assistant (Claude Code, Cursor, etc.) can call directly, instead of parsing terminal output.
Who it’s for
Section titled “Who it’s for”- Developers who want a fast, repeatable way to check “did I just break anything obvious” before opening a PR, without wiring up a hosted QA service.
- AI coding agents that need ground-truth about a running app — what the browser console actually printed, what a request actually returned — rather than guessing from source code alone.
- Anyone working on a Vite or Next.js React app locally; project detection currently recognizes those two.
What problem it solves
Section titled “What problem it solves”Frontend regressions — a console error on mount, a network call that now
404s, an image missing its alt, a bundle that quietly doubled in size —
are easy to miss because nothing routinely looks. Opening dev tools by hand
on every route doesn’t scale, and most “QA automation” either means a full
E2E test suite (assertions you have to write and maintain) or a hosted
synthetic-monitoring product (your traffic leaves your machine, and it’s
built for production uptime, not a local dev loop).
frontend-qa sits in between: point it at a URL, get back what a careful
developer would have found by opening the browser and checking — evidence-
tagged, not inferred, and entirely local.
What it explicitly does not do
Section titled “What it explicitly does not do”- No LLM or hosted-AI dependency in the scan path. The core report is produced by deterministic collectors, not a model. AI is an optional consumer of the report (via MCP), never the thing producing it.
- No cloud upload. Reports, screenshots, and HAR files stay under
.local/frontend-qa/in the project you scanned. - No authoring of E2E assertions.
frontend-qaobserves what happens on the routes you give it; it isn’t a Playwright-test replacement.