Documentation

crawwwl is a CLI tool that audits Next.js and React projects for performance, accessibility, SEO, code quality, and security issues.

Quick start

Install crawwwl globally from npm, then run an audit from inside your project directory.

npm install -g crawwwl

# Run a quick audit (no AI, instant results)
crawwwl audit --scale quick

# Run a standard audit (AI explanations)
crawwwl audit

# Run a deep audit (full reasoning model)
crawwwl audit --scale deep

Quick and standard audits are free and require no account. Deep audits require a paid balance. See the pricing page.

What crawwwl checks

Performance

Unoptimised images, missing lazy loading, large SVGs, video autoplay, synchronous scripts.

Accessibility

Missing alt text, unlabelled inputs, empty buttons, icon-only links without ARIA labels, missing lang attributes.

SEO

Title tags, meta descriptions, Open Graph tags, Next.js metadata exports, heading hierarchy.

Code quality

Unused imports, console statements, TODO comments, missing React keys, missing useEffect dependencies.

Security

Hardcoded secrets and API keys, eval() usage, dangerouslySetInnerHTML, each with severity ratings.

How it works

  1. 1

    CLI crawls your project

    The CLI discovers source files (JS, TS, JSX, TSX, CSS) and collects context files (README, package.json, etc.). It sends a payload to the crawwwl API.

  2. 2

    API queues the job

    The API stores the audit payload and returns an audit ID. The CLI polls every 2 seconds for the result.

  3. 3

    Worker runs the engine

    The worker picks up the job, runs five scanner categories in parallel, applies deduplication and context-aware scoring, then optionally passes findings to an AI model.

  4. 4

    CLI renders the report

    Once complete, the CLI fetches the report and renders it to your terminal. Use --markdown to save a Markdown file.

Suppressing findings

Add a // crawwwl-ignore comment on the line immediately above any finding to suppress it from future audits.

// crawwwl-ignore
<img src="/hero.png" />

Suppressed findings are excluded from scores and will not appear in the report.