Naptown Labs

ADA/WCAG Compliance
Monitoring Made Easy

Scan your websites for WCAG 2.1 AA accessibility violations, track compliance over time, and generate detailed reports. Identify issues before they become lawsuits.

auditpulse.naptownlabs.dev
8
DB Tables
12
API Routes
4
Docker Containers
4,000+
ADA Lawsuits in 2024
Find and fix accessibility issues before they find you

Automated WCAG scanning powered by axe-core and Playwright, with actionable reports and trend tracking.

axe-core Scanning

Industry-standard accessibility engine via @axe-core/playwright. Tests against WCAG 2.1 AA criteria with severity classification: critical, serious, moderate, and minor.

🔎

BFS Site Crawler

Breadth-first crawler built on Playwright discovers and scans pages across your site. Respects robots.txt, configurable depth and page limits, with 1.5s request delay.

📋

HTML Compliance Reports

Generate detailed accessibility reports with violation breakdowns, WCAG criteria references, element selectors, and a "Needs Manual Review" section. Print-to-PDF from browser.

📈

Trend Monitoring

Track your accessibility score over time with violation summaries per scan. See critical, serious, moderate, minor, and incomplete counts trend across scan history.

🔒

Accessibility Scoring

Smart scoring formula using pass/fail ratio with severity multipliers. Not just a penalty sum — a meaningful score from 0 to 100 reflecting real compliance posture.

🕑

Scheduled Scans

Automated scan scheduling via n8n cron (hourly). Sites are scanned on their configured frequency (daily, weekly, monthly). Race-condition-safe with DB transactions.

Four containers, one mission

Dockerized microservice architecture with isolated scanner, job queue, and persistent storage.

Web App
Next.js 16
Queue
BullMQ + Redis
Scanner
Playwright + axe-core
Database
PostgreSQL 16
n8n Cron
Hourly Trigger
API
/api/cron/scan-scheduler
Worker
BFS Crawl + Scan
Results
Score + Violations
# Docker Compose — 4 containers services: web: # Next.js app (port 3300 → 3000) scanner: # Playwright + axe-core worker (2G memory limit) db: # PostgreSQL 16 Alpine redis: # Redis 7 Alpine (BullMQ job queue) # Scanner flow per site: # 1. BFS crawl discovers pages (respects robots.txt) # 2. Each page loaded in Playwright headless Chromium # 3. axe-core injected → runs WCAG 2.1 AA audit # 4. Violations + incomplete items stored in PostgreSQL # 5. Score calculated: passRatio * penaltyFactor * 100
Plans for every stage

Start with a 14-day free trial. No credit card required.

Trial
$0
  • 14-day free trial
  • 1 site
  • Manual scans only
  • Basic reports
  • WCAG 2.1 AA checks
Starter
$49/mo
  • 5 sites
  • Weekly scheduled scans
  • HTML reports
  • Trend monitoring
  • Email alerts
Agency
$199/mo
  • Unlimited sites
  • Daily scheduled scans
  • White-label reports
  • Custom branding
  • Priority support
  • Multi-user access
Built for reliability and scale

Docker-first, self-hosted on VM108 with Cloudflare tunnel and NPM reverse proxy.

Next.js 16
App Router + API Routes
🐘
PostgreSQL 16
Primary Database
💧
Drizzle ORM
Type-safe Queries
🎭
Playwright
Headless Browser
axe-core
Accessibility Engine
🔥
BullMQ + Redis
Job Queue
🔐
NextAuth v4
Authentication
💌
Stripe
Billing (Live Mode)
Resend
Transactional Email
📦
Docker Compose
Container Orchestration
🎨
Tailwind 4 + shadcn
UI Components
Cloudflare Tunnel
HTTPS + DNS

Ready to audit your site?