[
  {
    "id": 1,
    "publisher": "Chrome for Developers",
    "title": "CrUX API",
    "url": "https://developer.chrome.com/docs/crux/api",
    "reviewed_at": "2026-09-24",
    "role": "28-day rolling average, daily update, p75, DESKTOP/PHONE/TABLET form factors, API key required",
    "source_type": "primary_documentation"
  },
  {
    "id": 2,
    "publisher": "Chrome for Developers",
    "title": "CrUX methodology",
    "url": "https://developer.chrome.com/docs/crux/methodology",
    "reviewed_at": "2026-09-24",
    "role": "Eligibility: publicly discoverable and sufficiently popular; Chrome on iOS and other Chromium browsers excluded",
    "source_type": "primary_documentation"
  },
  {
    "id": 3,
    "publisher": "web.dev",
    "title": "Web Vitals",
    "url": "https://web.dev/articles/vitals",
    "reviewed_at": "2026-09-24",
    "role": "LCP 2.5 s, INP 200 ms, CLS 0.1 at p75, split by mobile/desktop; INP stable Core Web Vital in 2024; Lighthouse cannot measure INP, TBT is the lab proxy",
    "source_type": "primary_documentation"
  },
  {
    "id": 4,
    "publisher": "Chrome for Developers",
    "title": "Lighthouse performance scoring",
    "url": "https://developer.chrome.com/docs/lighthouse/performance/performance-scoring",
    "reviewed_at": "2026-09-24",
    "role": "Variability comes mostly from changing conditions; treat performance as a distribution; Lighthouse 10 weights",
    "source_type": "primary_documentation"
  },
  {
    "id": 5,
    "publisher": "GoogleChrome/lighthouse (GitHub)",
    "title": "Lighthouse variability",
    "url": "https://github.com/GoogleChrome/lighthouse/blob/main/docs/variability.md",
    "reviewed_at": "2026-09-24",
    "role": "Median of 5 runs is twice as stable as 1 run; do not run several reports at once on one machine; sources of variance",
    "source_type": "primary_documentation"
  },
  {
    "id": 6,
    "publisher": "GoogleChrome/lighthouse (GitHub)",
    "title": "Network throttling and CPU throttling",
    "url": "https://github.com/GoogleChrome/lighthouse/blob/main/docs/throttling.md",
    "reviewed_at": "2026-09-24",
    "role": "Simulated throttling is the default; 150 ms latency, ~1.6 Mbps down; 4x CPU multiplier",
    "source_type": "primary_documentation"
  },
  {
    "id": 7,
    "publisher": "web.dev",
    "title": "Why lab and field data can be different",
    "url": "https://web.dev/articles/lab-and-field-data-differences",
    "reviewed_at": "2026-09-24",
    "role": "Cold cache, device/network, user behaviour; field data for prioritisation, lab for debugging",
    "source_type": "primary_documentation"
  },
  {
    "id": 8,
    "publisher": "Chrome for Developers",
    "title": "Lighthouse accessibility scoring",
    "url": "https://developer.chrome.com/docs/lighthouse/accessibility/scoring",
    "reviewed_at": "2026-09-24",
    "role": "Weighted average of pass/fail audits, no partial credit",
    "source_type": "primary_documentation"
  },
  {
    "id": 9,
    "publisher": "GoogleChrome/lighthouse (GitHub)",
    "title": "Lighthouse default config (v13.5.0 package, core/config/default-config.js)",
    "url": "https://github.com/GoogleChrome/lighthouse/blob/main/core/config/default-config.js",
    "reviewed_at": "2026-09-24",
    "role": "Performance weights in the version used (FCP 10, LCP 25, TBT 30, CLS 25, SI 10); accessibility category text: automatic detection finds only a subset of issues",
    "source_type": "primary_source_code"
  },
  {
    "id": 10,
    "publisher": "OWASP Cheat Sheet Series",
    "title": "HTTP Security Response Headers Cheat Sheet",
    "url": "https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Headers_Cheat_Sheet.html",
    "reviewed_at": "2026-09-24",
    "role": "Recommended values for HSTS, X-Content-Type-Options, Referrer-Policy, Permissions-Policy; frame-ancestors obsoletes X-Frame-Options",
    "source_type": "standards_guidance"
  },
  {
    "id": 11,
    "publisher": "MDN Web Docs",
    "title": "CSP: upgrade-insecure-requests",
    "url": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy/upgrade-insecure-requests",
    "reviewed_at": "2026-09-24",
    "role": "The directive only upgrades HTTP URLs; it does not restrict script sources and does not replace HSTS",
    "source_type": "reference_documentation"
  },
  {
    "id": 12,
    "publisher": "Cloudflare Docs",
    "title": "Error 525: SSL handshake failed",
    "url": "https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-5xx-errors/error-525/",
    "reviewed_at": "2026-09-24",
    "role": "Meaning of the status returned by the excluded first-choice page",
    "source_type": "primary_documentation"
  },
  {
    "id": 13,
    "publisher": "Google Search Central",
    "title": "Understanding page experience in Google Search results",
    "url": "https://developers.google.com/search/docs/appearance/page-experience",
    "reviewed_at": "2026-09-24",
    "role": "Google Search always seeks to show the most relevant content, even if the page experience is sub-par; no single page-experience signal",
    "source_type": "primary_documentation"
  }
]