Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
652f259
feat: merge har.fyi under docs
max-ostapenko Sep 14, 2026
3f42796
fix(linters): allow unsafe chars and non-unique ids for Starlight docs
max-ostapenko Sep 14, 2026
572787d
feat: merge har.fyi under docs
max-ostapenko Sep 14, 2026
9c9586f
fix(linters): allow unsafe chars and non-unique ids for Starlight docs
max-ostapenko Sep 14, 2026
9579c54
Merge branch 'merge-har-docs' of https://github.com/HTTPArchive/httpa…
max-ostapenko Sep 20, 2026
b016a8a
chore: revert stricter rules in HTMLHint configuration
max-ostapenko Sep 20, 2026
39ee01d
chore: update package-lock.json
max-ostapenko Sep 20, 2026
c2b143a
refactor: reuse main Header component in docs and add search slot
max-ostapenko Sep 20, 2026
aef9cf1
Merge branch 'main' into merge-har-docs
max-ostapenko Sep 20, 2026
0311adf
feat: enforce light theme for documentation and update workbook links
max-ostapenko Sep 21, 2026
59f1dc4
fix(ci): resolve HTMLHint attr-unsafe-chars, stylelint hue notation, …
max-ostapenko Sep 21, 2026
05130c1
fix(linters): adjust stylelint rules for custom property spacing and …
max-ostapenko Sep 21, 2026
b3a4348
refactor: migrate hero image to src/assets and update docs and 404 re…
max-ostapenko Sep 21, 2026
e63190a
refactor: extract shared Footer component and add docs links to navig…
max-ostapenko Sep 23, 2026
0a70e01
Merge remote-tracking branch 'origin/main' into merge-har-docs
max-ostapenko Sep 23, 2026
5de2fc9
chore: add wasm-unsafe-eval and worker-src blob to Content-Security-P…
max-ostapenko Sep 28, 2026
ab75cc7
Merge branch 'main' into merge-har-docs
max-ostapenko Sep 28, 2026
4bde6c8
refactor: remove docs footer override and update header and footer la…
max-ostapenko Sep 28, 2026
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
2 changes: 1 addition & 1 deletion .github/linters/.htmlhintrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"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,
Expand Down
3 changes: 3 additions & 0 deletions .github/linters/.stylelintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@
"extends": "stylelint-config-standard",
"rules": {
"alpha-value-notation": null,
"color-function-alias-notation": null,
"color-function-notation": null,
"comment-empty-line-before": null,
"custom-property-empty-line-before": null,
"font-family-no-duplicate-names": [
true,
{
"ignoreFontFamilyNames": ["monospace"]
}
],
"hue-degree-notation": null,
"length-zero-no-unit": null,
"media-feature-range-notation": "prefix",
"no-descending-specificity": null,
Expand Down
56 changes: 56 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,59 @@ export default defineConfig({
// Don't add trailing slashes to output filenames
format: 'directory',
},
integrations: [
starlight({
title: 'HTTP Archive Docs',
disable404Route: true,
customCss: ['./src/styles/starlight-custom.css'],
components: {
Header: './src/components/docs/Header.astro',
Sidebar: './src/components/docs/Sidebar.astro',
ThemeProvider: './src/components/docs/ThemeProvider.astro',
ThemeSelect: './src/components/docs/EmptyComponent.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({
exclude: ['/', '/about/**', '/faq/**', '/reports/**'], // Pages outside starlight
}),
],
}),
],
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-21T00:00:00.000Z",
"hash": "2488204cad0bb28a18b06dfdfbcfabd6"
},
"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
2 changes: 1 addition & 1 deletion firebase.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
},
{
"key": "Content-Security-Policy",
"value": "default-src 'self' https:; script-src 'self' https: 'unsafe-inline'; style-src 'self' https: 'unsafe-inline'; img-src 'self' https: data:; font-src 'self' https: data:; connect-src 'self' https:;"
"value": "default-src 'self' https:; script-src 'self' https: 'unsafe-inline' 'wasm-unsafe-eval'; style-src 'self' https: 'unsafe-inline'; img-src 'self' https: data:; font-src 'self' https: data:; connect-src 'self' https:; worker-src 'self' blob:;"
}
]
},
Expand Down
Loading
Loading