[
  {
    "id": 1,
    "publisher": "Google Search Central",
    "title": "Understanding Core Web Vitals and Google search results",
    "url": "https://developers.google.com/search/docs/appearance/core-web-vitals",
    "reviewed_at": "2026-09-13",
    "role": "CWV nie gwarantują pozycji",
    "source_type": "primary_documentation"
  },
  {
    "id": 2,
    "publisher": "web.dev",
    "title": "Web Vitals",
    "url": "https://web.dev/articles/vitals",
    "reviewed_at": "2026-09-13",
    "role": "LCP, INP, CLS; progi; Lighthouse nie mierzy INP przy samym ładowaniu",
    "source_type": "primary_documentation"
  },
  {
    "id": 3,
    "publisher": "Google for Developers",
    "title": "About PageSpeed Insights",
    "url": "https://developers.google.com/speed/docs/insights/v5/about",
    "reviewed_at": "2026-09-13",
    "role": "URL/origin; wyjątek oceny przy braku INP; odrębność lab/field",
    "source_type": "primary_documentation"
  },
  {
    "id": 4,
    "publisher": "Chrome for Developers",
    "title": "CrUX API",
    "url": "https://developer.chrome.com/docs/crux/api",
    "reviewed_at": "2026-09-13",
    "role": "28-dniowe okno i codzienne aktualizacje",
    "source_type": "primary_documentation"
  },
  {
    "id": 5,
    "publisher": "Chrome for Developers",
    "title": "CrUX methodology",
    "url": "https://developer.chrome.com/docs/crux/methodology",
    "reviewed_at": "2026-09-13",
    "role": "Kwalifikowalność; brak danych; brak iOS/Safari w CrUX",
    "source_type": "primary_documentation"
  },
  {
    "id": 6,
    "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-13",
    "role": "Warunki laboratoryjne i doświadczenie rzeczywistych użytkowników",
    "source_type": "primary_documentation"
  },
  {
    "id": 7,
    "publisher": "web.dev",
    "title": "Optimize Largest Contentful Paint",
    "url": "https://web.dev/articles/optimize-lcp",
    "reviewed_at": "2026-09-13",
    "role": "Etapy LCP; odkrywanie zasobu; mniejszy plik nie gwarantuje wcześniejszego renderu",
    "source_type": "primary_documentation"
  },
  {
    "id": 8,
    "publisher": "MDN",
    "title": "Using responsive images in HTML",
    "url": "https://developer.mozilla.org/en-US/docs/Web/HTML/Guides/Responsive_images",
    "reviewed_at": "2026-09-13",
    "role": "srcset, sizes i dobór zasobu",
    "source_type": "primary_documentation"
  },
  {
    "id": 9,
    "publisher": "web.dev",
    "title": "Image performance",
    "url": "https://web.dev/learn/performance/image-performance",
    "reviewed_at": "2026-09-13",
    "role": "Format, wymiary, jakość i DPR",
    "source_type": "primary_documentation"
  },
  {
    "id": 10,
    "publisher": "web.dev",
    "title": "Optimize resource loading with the Fetch Priority API",
    "url": "https://web.dev/articles/fetch-priority",
    "reviewed_at": "2026-09-13",
    "role": "Wskazówka priorytetu; preload i konkurencja zasobów",
    "source_type": "primary_documentation"
  },
  {
    "id": 11,
    "publisher": "web.dev",
    "title": "Optimize Time to First Byte",
    "url": "https://web.dev/articles/optimize-ttfb",
    "reviewed_at": "2026-09-13",
    "role": "Sieć, serwer, cache, CDN i pomiar TTFB",
    "source_type": "primary_documentation"
  },
  {
    "id": 12,
    "publisher": "MDN",
    "title": "HTTP caching",
    "url": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Caching",
    "reviewed_at": "2026-09-13",
    "role": "Cache przeglądarki, współdzielony cache i dane spersonalizowane",
    "source_type": "primary_documentation"
  },
  {
    "id": 13,
    "publisher": "MDN",
    "title": "Cache-Control header",
    "url": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control",
    "reviewed_at": "2026-09-13",
    "role": "no-cache, no-store, private, immutable i max-age",
    "source_type": "primary_documentation"
  },
  {
    "id": 14,
    "publisher": "Chrome for Developers",
    "title": "Coverage: Find unused JavaScript and CSS",
    "url": "https://developer.chrome.com/docs/devtools/coverage",
    "reviewed_at": "2026-09-13",
    "role": "Zakres wykorzystania kodu w zarejestrowanym scenariuszu",
    "source_type": "primary_documentation"
  },
  {
    "id": 15,
    "publisher": "MDN",
    "title": "The script element",
    "url": "https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/script",
    "reviewed_at": "2026-09-13",
    "role": "defer, async, type=module",
    "source_type": "primary_documentation"
  },
  {
    "id": 16,
    "publisher": "web.dev",
    "title": "General HTML performance considerations",
    "url": "https://web.dev/learn/performance/general-html-performance",
    "reviewed_at": "2026-09-13",
    "role": "Minifikacja, kompresja tekstu i koszt generowania HTML",
    "source_type": "primary_documentation"
  },
  {
    "id": 17,
    "publisher": "web.dev",
    "title": "Optimize Interaction to Next Paint",
    "url": "https://web.dev/articles/optimize-inp",
    "reviewed_at": "2026-09-13",
    "role": "Czas obsługi interakcji i możliwość wyrenderowania odpowiedzi",
    "source_type": "primary_documentation"
  },
  {
    "id": 18,
    "publisher": "web.dev",
    "title": "Optimize long tasks",
    "url": "https://web.dev/articles/optimize-long-tasks",
    "reviewed_at": "2026-09-13",
    "role": "Długie zadania, dzielenie pracy, yield",
    "source_type": "primary_documentation"
  },
  {
    "id": 19,
    "publisher": "web.dev",
    "title": "Efficiently load third-party JavaScript",
    "url": "https://web.dev/articles/efficiently-load-third-party-javascript",
    "reviewed_at": "2026-09-13",
    "role": "Koszt skryptów zewnętrznych i odraczanie",
    "source_type": "primary_documentation"
  },
  {
    "id": 20,
    "publisher": "web.dev",
    "title": "How large DOM sizes affect interactivity",
    "url": "https://web.dev/articles/dom-size-and-interactivity",
    "reviewed_at": "2026-09-13",
    "role": "Koszt dużego drzewa DOM i zmian layoutu",
    "source_type": "primary_documentation"
  },
  {
    "id": 21,
    "publisher": "web.dev",
    "title": "Best practices for fonts",
    "url": "https://web.dev/articles/font-best-practices",
    "reviewed_at": "2026-09-13",
    "role": "WOFF2, liczba odmian, font-display, preload",
    "source_type": "primary_documentation"
  },
  {
    "id": 22,
    "publisher": "web.dev",
    "title": "Optimize Cumulative Layout Shift",
    "url": "https://web.dev/articles/optimize-cls",
    "reviewed_at": "2026-09-13",
    "role": "Wymiary obrazów, rezerwowanie miejsca, fonty i stany dynamiczne",
    "source_type": "primary_documentation"
  },
  {
    "id": 23,
    "publisher": "web.dev",
    "title": "Browser-level image lazy loading for the web",
    "url": "https://web.dev/articles/browser-level-image-lazy-loading",
    "reviewed_at": "2026-09-13",
    "role": "Lazy loading poniżej pierwszego ekranu i heurystyki przeglądarki",
    "source_type": "primary_documentation"
  },
  {
    "id": 24,
    "publisher": "Chrome for Developers",
    "title": "Network features reference",
    "url": "https://developer.chrome.com/docs/devtools/network/reference",
    "reviewed_at": "2026-09-13",
    "role": "Waterfall, transfer, cache i initiator",
    "source_type": "primary_documentation"
  },
  {
    "id": 25,
    "publisher": "web.dev",
    "title": "Cumulative Layout Shift (CLS)",
    "url": "https://web.dev/articles/cls",
    "reviewed_at": "2026-09-13",
    "role": "Okna sesyjne, recent input, obserwacja layout-shift",
    "source_type": "primary_documentation"
  },
  {
    "id": 26,
    "publisher": "web.dev",
    "title": "Largest Contentful Paint (LCP)",
    "url": "https://web.dev/articles/lcp",
    "reviewed_at": "2026-09-13",
    "role": "PerformanceObserver i kandydaci LCP",
    "source_type": "primary_documentation"
  },
  {
    "id": 27,
    "publisher": "CometWeb",
    "title": "Audytor wydajności — darmowy skan",
    "url": "https://cometweb.io/pl/tools/auditor",
    "reviewed_at": "2026-09-13",
    "role": "Zakres jednego publicznego adresu, dostępność źródeł i pomiary HTTP",
    "source_type": "first_party_product_page"
  },
  {
    "id": 28,
    "publisher": "CometWeb",
    "title": "Moduł Wydajność — CometWeb Insight",
    "url": "https://cometweb.io/pl/insight/performance",
    "reviewed_at": "2026-09-13",
    "role": "Kontekst produktu; nie niezależny dowód skuteczności",
    "source_type": "first_party_product_page"
  },
  {
    "id": 29,
    "publisher": "Chrome for Developers",
    "title": "Lighthouse performance scoring",
    "url": "https://developer.chrome.com/docs/lighthouse/performance/performance-scoring",
    "reviewed_at": "2026-09-13",
    "role": "Wynik złożony oraz zmienność pomiarów",
    "source_type": "primary_documentation"
  },
  {
    "id": 30,
    "publisher": "web.dev",
    "title": "Interaction to Next Paint (INP)",
    "url": "https://web.dev/articles/inp",
    "reviewed_at": "2026-09-13",
    "role": "Opóźnienie wejścia, obsługa, prezentacja; kliknięcia i klawiatura",
    "source_type": "primary_documentation"
  },
  {
    "id": 31,
    "publisher": "MDN",
    "title": "font-display",
    "url": "https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/%40font-face/font-display",
    "reviewed_at": "2026-09-13",
    "role": "Okresy wyświetlania i font optional",
    "source_type": "primary_documentation"
  },
  {
    "id": 32,
    "publisher": "MDN",
    "title": "Content-Encoding header",
    "url": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Encoding",
    "reviewed_at": "2026-09-13",
    "role": "Kompresja przesyłanej reprezentacji",
    "source_type": "primary_documentation"
  }
]
