speedlify2

Lighthouse lab metrics and Chrome UX Report field data for a list of sites, recorded on every run and compared over time — measured continuously.

Measurement runs · Embed a score ·

Measurement runs

Every measurement pass, read from the NDJSON run log. When a number looks wrong, the first question is whether that run actually finished — this answers it without shell access to the build machine.

Started Duration Measured Skipped Failed Warnings Form factor Log file
Aug 23, 2026, 9:20 PM UTC 41.8s 1 349 0 0 mobile logs/2026-08-23T21-20-23-516Z.ndjson
Aug 23, 2026, 9:20 PM UTC 0s 0 368 0 0 mobile logs/2026-08-23T21-20-21-459Z.ndjson
Aug 23, 2026, 9:20 PM UTC 0.1s 0 365 0 0 mobile logs/2026-08-23T21-20-21-291Z.ndjson
Aug 23, 2026, 9:20 PM UTC 0s 0 365 0 0 mobile logs/2026-08-23T21-20-24-040Z.ndjson
Aug 23, 2026, 9:20 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-23T21-20-21-149Z.ndjson
Aug 23, 2026, 8:20 PM UTC 0s 0 368 0 0 mobile logs/2026-08-23T20-20-56-986Z.ndjson
Aug 23, 2026, 8:20 PM UTC 0s 0 350 0 0 mobile logs/2026-08-23T20-20-50-552Z.ndjson
Aug 23, 2026, 8:20 PM UTC 0.1s 0 365 0 0 mobile logs/2026-08-23T20-20-56-282Z.ndjson
Aug 23, 2026, 8:20 PM UTC 0s 0 365 0 0 mobile logs/2026-08-23T20-20-53-814Z.ndjson
Aug 23, 2026, 8:20 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-23T20-20-50-071Z.ndjson
Aug 23, 2026, 7:21 PM UTC 65.9s 1 367 0 0 mobile logs/2026-08-23T19-21-00-997Z.ndjson
Aug 23, 2026, 7:20 PM UTC 41s 1 349 0 0 mobile logs/2026-08-23T19-20-59-589Z.ndjson
Aug 23, 2026, 7:20 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-23T19-20-58-364Z.ndjson
Aug 23, 2026, 7:20 PM UTC 0s 0 365 0 0 mobile logs/2026-08-23T19-20-55-538Z.ndjson
Aug 23, 2026, 7:20 PM UTC 0s 0 365 0 0 mobile logs/2026-08-23T19-20-53-842Z.ndjson
Aug 23, 2026, 6:27 PM UTC 261.6s 5 360 0 0 mobile logs/2026-08-23T18-27-32-763Z.ndjson
Aug 23, 2026, 6:27 PM UTC 214s 1 349 1 5 mobile logs/2026-08-23T18-27-34-248Z.ndjson
Aug 23, 2026, 6:27 PM UTC 0s 0 365 0 0 mobile logs/2026-08-23T18-27-39-862Z.ndjson
Aug 23, 2026, 6:27 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-23T18-27-36-694Z.ndjson
Aug 23, 2026, 6:27 PM UTC 0s 0 368 0 0 mobile logs/2026-08-23T18-27-34-105Z.ndjson
Aug 23, 2026, 5:19 PM UTC 63.7s 1 367 0 0 mobile logs/2026-08-23T17-19-40-244Z.ndjson
Aug 23, 2026, 5:19 PM UTC 18s 0 351 1 3 mobile logs/2026-08-23T17-19-38-669Z.ndjson
Aug 23, 2026, 5:19 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-23T17-19-45-245Z.ndjson
Aug 23, 2026, 5:19 PM UTC 0s 0 365 0 0 mobile logs/2026-08-23T17-19-42-962Z.ndjson
Aug 23, 2026, 5:19 PM UTC 0s 0 365 0 0 mobile logs/2026-08-23T17-19-38-127Z.ndjson
Aug 23, 2026, 4:24 PM UTC 61.7s 1 367 0 0 mobile logs/2026-08-23T16-24-16-507Z.ndjson
Aug 23, 2026, 4:24 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-23T16-24-16-751Z.ndjson
Aug 23, 2026, 4:24 PM UTC 0.1s 0 351 0 0 mobile logs/2026-08-23T16-24-23-705Z.ndjson
Aug 23, 2026, 4:24 PM UTC 0.1s 0 365 0 0 mobile logs/2026-08-23T16-24-21-437Z.ndjson
Aug 23, 2026, 4:24 PM UTC 0s 0 365 0 0 mobile logs/2026-08-23T16-24-15-764Z.ndjson
Aug 23, 2026, 3:20 PM UTC 94.5s 2 366 0 0 mobile logs/2026-08-23T15-20-52-689Z.ndjson
Aug 23, 2026, 3:21 PM UTC 0s 0 351 0 0 mobile logs/2026-08-23T15-21-05-731Z.ndjson
Aug 23, 2026, 3:20 PM UTC 0s 0 365 0 0 mobile logs/2026-08-23T15-20-54-897Z.ndjson
Aug 23, 2026, 3:20 PM UTC 0.1s 0 365 0 0 mobile logs/2026-08-23T15-20-50-898Z.ndjson
Aug 23, 2026, 3:20 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-23T15-20-48-985Z.ndjson
Aug 23, 2026, 2:21 PM UTC 61.3s 1 367 0 0 mobile logs/2026-08-23T14-21-38-176Z.ndjson
Aug 23, 2026, 2:21 PM UTC 0.1s 0 365 0 0 mobile logs/2026-08-23T14-21-39-476Z.ndjson
Aug 23, 2026, 2:21 PM UTC 0s 0 351 0 0 mobile logs/2026-08-23T14-21-39-069Z.ndjson
Aug 23, 2026, 2:21 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-23T14-21-39-025Z.ndjson
Aug 23, 2026, 2:21 PM UTC 0s 0 365 0 0 mobile logs/2026-08-23T14-21-35-466Z.ndjson
Aug 23, 2026, 1:31 PM UTC 319.9s 1 367 0 1 mobile logs/2026-08-23T13-31-46-367Z.ndjson
Aug 23, 2026, 1:31 PM UTC 66.7s 0 351 3 9 mobile logs/2026-08-23T13-31-46-656Z.ndjson
Aug 23, 2026, 1:31 PM UTC 36.8s 1 364 0 0 mobile logs/2026-08-23T13-31-50-636Z.ndjson
Aug 23, 2026, 1:31 PM UTC 36.2s 1 364 0 0 mobile logs/2026-08-23T13-31-47-051Z.ndjson
Aug 23, 2026, 1:31 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-23T13-31-43-928Z.ndjson
Aug 23, 2026, 12:37 PM UTC 408.8s 2 366 0 1 mobile logs/2026-08-23T12-37-52-964Z.ndjson
Aug 23, 2026, 12:37 PM UTC 135.5s 2 363 0 0 mobile logs/2026-08-23T12-37-39-964Z.ndjson
Aug 23, 2026, 12:37 PM UTC 29.1s 0 351 1 3 mobile logs/2026-08-23T12-37-51-256Z.ndjson
Aug 23, 2026, 12:37 PM UTC 0s 0 365 0 0 mobile logs/2026-08-23T12-37-47-588Z.ndjson
Aug 23, 2026, 12:37 PM UTC 0s 0 0 0 0 logs/backfill-2026-08-23T12-37-43-237Z.ndjson

Reading the logs

Each run writes a full NDJSON log to logs/<runId>.ndjson, one JSON object per line, plus a summary line appended to logs/runs.ndjson. Both are greppable:

# Every warning and error across all runs
grep -h '"level":"warn"\|"level":"error"' logs/*.ndjson | jq .

# What happened to one site in one run
jq 'select(.data.url == "https://example.com/")' logs/2026-01-01*.ndjson

# Run history at a glance
npx speedlify runs