- checker.js: checkSecurityHeaders() graded A+-F, checkSSL() via SSL Labs API
- Both run in parallel with sitespeed.io to minimise wait time
- DB: auto-migrate headers_json + ssl_json columns
- Layout: coach scores + CWV side-by-side, headers + SSL below
- Scorecard + CWV made compact
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- LCP/TTFB/TBT: read from statistics.googleWebVitals (flat median values)
- FCP: statistics.timings.paintTiming['first-contentful-paint']
- pageTimings: nested under statistics.timings.pageTimings, not at root
- Remove PerceptualSpeedIndex (not present in this sitespeed version)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sitespeed.io web UI with Express/Pug/SQLite — port 3132.
Includes job queue, SSE live log, full metrics dashboard,
site history, CO2/axe/CWV sections, and Docker support.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>