← Back to projects
Dealer Website Check
Building

Deterministic Website Auditing for Automotive Dealerships

Headless browser scan engine that crawls dealer websites and produces evidence-based reports — missing lead-capture actions, blocked mobile CTAs, speed problems, and AI readiness gaps. Scans 30+ signals across 8 page types with a Playwright-powered worker, then generates prioritized fix plans with effort estimates. MVP shipped with a fully functional demo report.

ReactVitePlaywrightTypeScriptSupabaseDocker
100%
🎪
Dealer
Pastes website URL
Vercel API
3 endpoints: create/poll/get
🤖
Playwright Worker
Docker + Chromium
🔍
Page Discovery
Nav token matching
📋
8 Detectors
Actions, speed, AI, footprint
📄
Findings Engine
Severity + evidence + fix plan
🗄️
Supabase
Jobs + reports + assets
📊
Report UI
Interactive audit report
MVPScan Engine + Report UITap a node for details
Key component
Infrastructure
Data flow
Scan Engine + Report UI
MVP

The core scanning pipeline and report viewer. A Playwright-powered Docker worker receives fire-and-forget requests from the API, navigates dealer websites through 8 page types (Home, New/Used SRP, New/Used VDP, Service, Contact, Landing), runs 8 detector modules across each page, generates findings with severity rankings, and produces a prioritized fix plan. Demo report live at /report/demo.

What Ships
Playwright Docker worker (mcr.microsoft.com/playwright base) scanning 8 page types
Money Action Detection — 11 actions per page (call, text, chat, lead form, price CTA, digital retail, finance app, service scheduler)
Collision Detection — finds fixed/sticky overlays that geometrically block CTA elements
Speed Feel — FCP, LCP, CLS, long tasks, main thread responsiveness per viewport
Site Footprint — 3-strategy enumeration (sitemap.xml, robots.txt, bounded BFS crawl max 2000 pages)
AI Readiness — 15+ checks (JSON-LD, NAP in structured data, review schema, canonical, meta robots, H1, FAQ)
Effort Labeling — position-based scoring (fixed/sticky = easy, above fold = easy, below fold = medium, footer = hard, obstructed = blocked)
Findings Generator — deterministic severity (critical > high > medium > low > note) with evidence (selectors, bounding boxes)
Fix Plan — ordered by 'Fix Now' / 'Fix This Week' / 'Plan For Later'
Two scan modes: free (home only, ~15s) vs full (all pages, 30-120s)
Report UI with Quick Diagnosis, Big Three cards, page-by-page breakdown, fix plan
Vercel API (3 endpoints: create job, poll status, retrieve report)
Supabase backend (scan_jobs, scan_reports, scan_assets tables)
Impact
Dealers paste their URL and get a structured audit in under 2 minutes — not a generic Lighthouse score, but dealership-specific findings with evidence. Every blocked CTA, every missing lead form, every AI readiness gap is identified with fix recommendations and effort estimates.