feat: initial Speedboard implementation

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>
This commit is contained in:
2026-04-06 19:36:13 +02:00
commit 280e5f133f
28 changed files with 1222 additions and 0 deletions

21
views/layout.pug Normal file
View File

@@ -0,0 +1,21 @@
doctype html
html(lang='en')
head
meta(charset='UTF-8')
meta(name='viewport' content='width=device-width, initial-scale=1.0')
title= title + ' | Speedboard'
script(src='https://cdn.tailwindcss.com')
style.
.log-line { font-family: monospace; font-size: 0.78rem; }
.score-circle { border-radius: 50%; display:inline-flex; align-items:center; justify-content:center; font-weight:700; }
.metric-card { background:#fff; border:1px solid #e5e7eb; border-radius:0.5rem; padding:1rem; }
body(class='bg-gray-50 text-gray-800 min-h-screen')
nav(class='bg-indigo-700 text-white px-6 py-3 flex items-center gap-6 shadow')
a(href='/' class='font-bold text-lg tracking-tight') ⚡ Speedboard
a(href='/history' class='text-indigo-200 hover:text-white text-sm') History
a(href='/' class='text-indigo-200 hover:text-white text-sm') New Test
main(class='max-w-6xl mx-auto px-4 py-8')
block content
footer(class='text-center text-xs text-gray-400 py-6')
| Powered by&nbsp;
a(href='https://www.sitespeed.io' target='_blank' class='underline') sitespeed.io