Automated website audit tool β transform any URL into a structured technical audit report in minutes.
AuditLab crawls your target website, captures screenshots, runs Lighthouse performance audits, and uses AI vision analysis to detect UI/UX issues β all from a single CLI command.
- Smart Page Discovery β automatically detects homepage, service, and contact pages
- Dual Viewport Screenshots β full-page captures at desktop (1280Γ800) and mobile (375Γ667)
- Lighthouse Audits β Performance, Accessibility, and SEO scoring
- AI Vision Analysis β Google Gemini detects layout, readability, CTA, and accessibility issues
- Structured Reports β generates Markdown reports with embedded screenshots and issue breakdowns
- Graceful Error Handling β retries failed pages, skips errors, and continues the pipeline
- Node.js v18 or higher
- Google Chrome installed (for Lighthouse)
- Gemini API key (optional, for AI vision analysis)
# Clone the repository
git clone https://github.com/dixonsilveroff/auditlab.git
cd auditlab
# Install dependencies
npm install
# Install Playwright's Chromium browser (~150MB download)
npx playwright install chromiumCreate a .env file in the project root:
# Required for AI vision analysis (optional β audits work without it)
GEMINI_API_KEY=your-gemini-api-key-here
# Vision model (optional β defaults to gemini-2.5-pro)
GEMINI_MODEL=gemini-2.5-proGet a free Gemini API key at aistudio.google.com/apikey.
Note: If no API key is set, AuditLab will skip vision analysis and still produce a report with Lighthouse scores and screenshots.
node audit.js https://example.comThis will:
- Discover up to 3 key pages (homepage, service page, contact page)
- Capture desktop + mobile screenshots for each page
- Run Lighthouse audits on each page
- Perform AI vision analysis on each screenshot (if API key is set)
- Generate a Markdown report at
./outputs/example.com/report.md
node audit.js <url> [options]| Option | Alias | Default | Description |
|---|---|---|---|
--output <dir> |
-o |
./outputs |
Custom output directory |
--pages <n> |
-p |
3 |
Maximum number of pages to audit |
--help |
-h |
Show help | |
--version |
Show version |
# Audit with custom output directory
node audit.js https://example.com --output ./reports
# Audit only the homepage
node audit.js https://example.com --pages 1
# Short flags
node audit.js https://example.com -o ./reports -p 2
# URL without protocol (https:// is added automatically)
node audit.js example.comEach audit generates a directory under outputs/{domain}/:
outputs/example.com/
βββ report.md # The full Markdown audit report
βββ screenshots/
β βββ homepage-desktop.png # Desktop screenshot
β βββ homepage-mobile.png # Mobile screenshot
β βββ contact-desktop.png
β βββ contact-mobile.png
β βββ services-desktop.png
β βββ services-mobile.png
βββ lighthouse/
βββ homepage.json # Raw Lighthouse data
βββ contact.json
βββ services.json
The generated report.md includes:
- Executive Summary β issue counts by severity (High / Medium / Low)
- Lighthouse Scores β Performance, Accessibility, and SEO scores per page
- Key Issues β all detected issues with severity, source, and recommendations
- Page Breakdown β per-page details with screenshots, scores, and issues
When a GEMINI_API_KEY is configured, AuditLab sends desktop screenshots to Google Gemini for automated UI/UX analysis.
| Category | Examples |
|---|---|
| Layout Issues | Broken layouts, overlapping elements, excessive whitespace |
| Readability | Poor contrast, tiny text, missing visual hierarchy |
| CTA Issues | Missing calls-to-action, unclear buttons, poor placement |
| Responsiveness | Mobile layout problems, overflow issues |
| Accessibility | Missing alt text indicators, poor color contrast |
Each issue includes:
- Issue β concise description of the problem
- Severity β
High(blocks usability),Medium(degrades UX),Low(cosmetic) - Recommendation β specific, actionable fix
Update GEMINI_MODEL in your .env file. Available vision-capable models:
| Model | Speed | Quality | Cost |
|---|---|---|---|
gemini-2.5-flash |
β‘ Fast | Good | Low |
gemini-2.5-pro |
π’ Slower | Best | Higher |
gemini-1.5-flash |
β‘ Fast | Good | Low |
gemini-1.5-pro |
π’ Slower | Great | Medium |
Browse all models at ai.google.dev/gemini-api/docs/models.
audit.js CLI entry point & pipeline orchestrator
β
βββ src/crawler.js Page discovery (keyword matching + fallback)
βββ src/browser.js Playwright browser lifecycle
βββ src/screenshot.js Dual-viewport screenshot capture
βββ src/lighthouse.js Lighthouse audit runner (via chrome-launcher)
βββ src/vision.js Google Gemini vision analysis
βββ src/aggregator.js Issue merging & deduplication
βββ src/report.js Markdown report generator
URL β Discover Pages β Capture Screenshots β Run Lighthouse β Vision Analysis β Aggregate Issues β Generate Report
All steps are sequential. Failed pages are skipped and the pipeline continues.
| Problem | Solution |
|---|---|
Error: Chromium not found |
Run npx playwright install chromium |
Vision: 404 model not found |
Update GEMINI_MODEL in .env (check available models) |
Vision: No API key set |
Add GEMINI_API_KEY to your .env file |
| Lighthouse timeout | The target site may be slow β audit will continue with other pages |
| Screenshots are blank | Some JS-heavy sites need longer load times β try again |
- Audits up to 3 pages per run (configurable via
--pages) - Vision analysis may have minor inaccuracies
- Sites behind authentication are not supported
- Very large or JS-heavy SPAs may have incomplete screenshots
- Full site crawling
- Web dashboard UI
- Batch processing (multiple URLs)
- PDF report export
- Historical comparison (track scores over time)
MIT