A single response record is bounded by URL, representation, vantage point and time. Beside it, many observations form an aggregate trend whose provenance links back to the raw records.

Readable evidence before dashboards

Prefer a verifiable sentence over a colored panel when the claim has to survive an audit.

August 18, 2026 · 4 min · XB Field Notes
For max-age=60, age 59 seconds is fresh and reuses the response. Ages 60 and 61 seconds are stale and lead to validator comparison, which can yield 304 or 200.

Freshness and validation in the two-clock cache model

A cache is only as coherent as the pair of conditions your headers make explicit.

August 14, 2026 · 4 min · XB Field Notes
A browser boundary labeled enforcing CSP and script-src 'none' contains available HTML, CSS and SVG assets beside a blocked script lane. Content, publishing, generator and server responsibilities remain outside it.

The zero-JavaScript static site is a defensible choice

An explicit script-src ’none’ policy is a boundary with a measurable contract.

August 13, 2026 · 4 min · XB Field Notes
One clean public/ artifact feeds required-file inspection, staged-to-public route checks, and a release record. A separate reminder states that a source preview rebuilds. No check is marked complete.

A release checklist for a static site

Verify the artifact before replacing the live directory, and keep the checks close to the release command.

July 30, 2026 · 3 min · XB Field Notes
An HTML page loads a local stylesheet and favicon. script-src none is appropriate only when no executable scripts are needed.

Security headers should describe the actual page

Start with a narrow policy, then expand it only when a documented feature needs another resource.

July 23, 2026 · 3 min · XB Field Notes
HTML, download, and error-page artifact samples point to corresponding public GET bodies. Expected statuses are shown separately as 200, 200, and 404. These are post-selection samples to compare in English and Chinese.

A release is not complete until the public edge agrees

Validate one staged artifact, publish it, then compare representative public responses with those exact bytes.

July 9, 2026 · 3 min · XB Field Notes
A style request for /assets/site.css branches into schematic responses: 200 with CSS bytes declared text/css, or 404 with HTML bytes declared text/html. Nosniff is scoped to script and style destinations.

Content-Type should describe the bytes you actually send

A filename is only a hint; the response header is the browser-facing contract for the representation.

June 11, 2026 · 3 min · XB Field Notes
An editable version 2 source waits for a rebuild while the public directory still serves version 1 to requests. The pause marks the unpublished edit; saving does not publish it.

Why a small site can stay static

A static origin is a boundary you can name, cache, and roll back.

June 8, 2026 · 5 min · XB Field Notes