Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/linters/.htmlhintrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
"attr-value-double-quotes": true,
"attr-value-not-empty": false,
"attr-no-duplication": true,
"attr-unsafe-chars": true,
"doctype-first": true,
"attr-unsafe-chars": false,
"doctype-first": false,
"doctype-html5": true,
"empty-tag-self-close": true,
"id-unique": true,
"id-unique": false,
"id-class-value": true,
"head-script-disabled": false,
"href-abs-or-rel": false,
Expand Down
4 changes: 2 additions & 2 deletions .github/linters/.htmlhintrc_morechecks
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
"attr-value-double-quotes": true,
"attr-value-not-empty": false,
"attr-no-duplication": true,
"attr-unsafe-chars": true,
"attr-unsafe-chars": false,
"doctype-first": true,
"doctype-html5": true,
"empty-tag-self-close": true,
"id-unique": true,
"id-unique": false,
"id-class-value": true,
"head-script-disabled": false,
"href-abs-or-rel": false,
Expand Down
47 changes: 47 additions & 0 deletions astro.config.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
import starlightLinksValidator from 'starlight-links-validator';
import starlightLlmsTxt from 'starlight-llms-txt';

const sourceMaps = process.env.SOURCE_MAPS === 'true';

Expand All @@ -19,6 +22,50 @@ export default defineConfig({
// Don't add trailing slashes to output filenames
format: 'directory',
},
integrations: [
starlight({
title: 'HTTP Archive Docs',
disable404Route: true,
components: {
Header: './src/components/docs/Header.astro',
},
sidebar: [
{
label: 'Guides',
items: [
{ label: 'Getting started', link: 'docs/guides/getting-started' },
{ label: 'Minimizing query costs', link: 'docs/guides/minimizing-costs' },
{ label: 'Guided tour', link: 'docs/guides/guided-tour' },
{ label: 'Release cycle', link: 'docs/guides/release-cycle' },
],
},
{
label: 'Tables',
items: [{ autogenerate: { directory: 'docs/reference/tables' } }]
},
{
label: 'Structs',
items: [{ autogenerate: { directory: 'docs/reference/structs' } }]
},
{
label: 'Blobs',
items: [{ autogenerate: { directory: 'docs/reference/blobs' } }]
},
{
label: 'Custom Metrics',
items: [{ autogenerate: { directory: 'docs/reference/custom-metrics' } }]
},
{
label: 'Functions',
items: [{ autogenerate: { directory: 'docs/reference/functions' } }]
},
],
editLink: {
baseUrl: 'https://github.com/HTTPArchive/httparchive.org/edit/main/'
},
plugins: [starlightLlmsTxt(), starlightLinksValidator()],
}),
],
vite: {
build: {
sourcemap: sourceMaps,
Expand Down
133 changes: 129 additions & 4 deletions config/last_updated.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,140 @@
"date_modified": "2026-07-02T00:00:00.000Z",
"hash": "ef6555255ad26e4e47da7186be9bd999"
},
"docs/guides/getting-started": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "cd0a8ad4379b0f3b312e8ba56032d4a6"
},
"docs/guides/guided-tour": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "a52176e67f1d794e051c1aebd471f471"
},
"docs/guides/minimizing-costs": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "a103e22b684565b1a55e4b722d66f0bf"
},
"docs/guides/release-cycle": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "8259e9969874283a66929c525e1e2e19"
},
"docs/index": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "c374905b3752c4c66b835830bd8940f8"
},
"docs/reference/blobs/lighthouse": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "de55578fc8edfadce490f0ce9205d279"
},
"docs/reference/blobs/page-metadata": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "3d746a46653adc82819e234d9c092f32"
},
"docs/reference/blobs/page-payload": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "564869fe373e6de48547b627f4bc7287"
},
"docs/reference/blobs/page-summary": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "ab57f4a09c389cf6bdbb1c0dbe83a31b"
},
"docs/reference/blobs/request-payload": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "a4e80fb44f65e6504d2b9e5b2e87f22f"
},
"docs/reference/blobs/request-summary": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "72d4210cd35088c8706a1ea02f58c952"
},
"docs/reference/custom-metrics/ads": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "6261101aa4c53499a24f49431a5a1027"
},
"docs/reference/custom-metrics/other": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "999e963a01ec07de9bd58e1cfb28aab3"
},
"docs/reference/custom-metrics/privacy": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "a8c0e88f953021ffcfbf037bdadfea4b"
},
"docs/reference/functions/capo": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "f030d469063a7ca5ac5881e300995a93"
},
"docs/reference/functions/get_host_categories": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "74e4235447f6d0f8e9e66957ae2fdbd5"
},
"docs/reference/functions/get_lcp_lazy": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "9347d792c09501f366e8673714b42c89"
},
"docs/reference/functions/get_lcp_priority": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "70b1661490313f5cf448e20b4568924d"
},
"docs/reference/functions/get_origin": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "a75d9efb5b4e0a260ef7de7d7e51e293"
},
"docs/reference/structs/custom-metrics": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "4b2eeb1aaec6c982ae82031de1061546"
},
"docs/reference/structs/feature": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "387f5c67a41f137abea9817ff9396de3"
},
"docs/reference/structs/header": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "2ec68ca21788e35622b1312452c6ea94"
},
"docs/reference/structs/technology": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "6f2463eb1f62e9a15717f9f186eccb61"
},
"docs/reference/tables/pages": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "8183f41800e611b1d94eaf1d7fd3e656"
},
"docs/reference/tables/requests": {
"date_published": "2026-09-14T00:00:00.000Z",
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "cebd71a60ba1b7d32af85baab3a224bf"
},
"faq.html": {
"date_published": "2018-05-08T00:00:00.000Z",
"date_modified": "2026-06-29T00:00:00.000Z",
"hash": "474a30967e56a20920b1aed21c276923"
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "ae9d8ef644bae6fea657921c8f65bcdf"
},
"index.html": {
"date_published": "2018-05-08T00:00:00.000Z",
"date_modified": "2026-08-10T00:00:00.000Z",
"hash": "e12fad43d5aaa52dba0f32e7101f0f39"
"date_modified": "2026-09-14T00:00:00.000Z",
"hash": "c2a97964a5e61083bba0831b010c40f4"
},
"reports.html": {
"date_published": "2018-05-08T00:00:00.000Z",
Expand Down
4 changes: 2 additions & 2 deletions docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ The list of URLs is fed to our private instance of [WebPageTest](https://webpage

As of March 1 2016, the tests are performed on Chrome for desktop and emulated Android (on Chrome) for mobile.

The test agents are run from [Google Cloud regions](https://cloud.google.com/compute/docs/regions-zones) across the US. Each URL is loaded once with an empty cache ("first view") for normal metrics collection and again, in a clean browser profile, using [Lighthouse](https://developers.google.com/web/tools/lighthouse). The data is collected via a [HAR file](https://en.wikipedia.org/wiki/.har). The HTTP Archive collects these HAR files, parses them, and populates [a public dataset in BigQuery](https://har.fyi/guides/getting-started/).
The test agents are run from [Google Cloud regions](https://cloud.google.com/compute/docs/regions-zones) across the US. Each URL is loaded once with an empty cache ("first view") for normal metrics collection and again, in a clean browser profile, using [Lighthouse](https://developers.google.com/web/tools/lighthouse). The data is collected via a [HAR file](https://en.wikipedia.org/wiki/.har). The HTTP Archive collects these HAR files, parses them, and populates [a public dataset in BigQuery](/docs/guides/getting-started/).

## How accurate is the data, in particular the time measurements?

Expand All @@ -33,7 +33,7 @@ Given these conditions it's virtually impossible to compare the HTTP Archive's t

## How do I use BigQuery to write custom queries over the data?

The HTTP Archive dataset is available publicly on BigQuery. Check out [Getting Started Accessing the HTTP Archive with BigQuery](https://har.fyi/guides/getting-started/).
The HTTP Archive dataset is available publicly on BigQuery. Check out [Getting Started Accessing the HTTP Archive with BigQuery](/docs/guides/getting-started/).

## What changes have been made to the test environment that might affect the data?

Expand Down
Loading