Aether StaticOpen JSON

Documentation

Aether Static publishes an HTML catalog for review and JSON metadata for release automation. The public site uses the same format it documents: the current catalog describes the files served by aetherstatic.com, while each release keeps an immutable manifest.

Current API version: schema 1, release [email protected]. All dates use ISO 8601 and all byte counts are integers.

Quickstart

No client library is required. Fetch the catalog, verify the release identifier, and use each asset's publicUrl as the canonical path.

1. FetchRequest the current catalog JSON over HTTPS.
2. ValidateCheck schema, release, and required asset fields.
3. PublishStore an immutable manifest for the release version.
const response = await fetch("https://aetherstatic.com/catalog/index.json");

if (!response.ok) throw new Error(`Catalog request failed: ${response.status}`);

const catalog = await response.json();
if (catalog.schema !== 1) throw new Error("Unsupported catalog schema");

console.log(catalog.release, catalog.assets.length);

Manifest schema

The manifest should be small enough to inspect in a review and specific enough to support a release note.

{
  "schema": 1,
  "release": "[email protected]",
  "published": "2026-07-09T16:20:00Z",
  "source": "aetherstatic.com",
  "assets": [
    {
      "file": "product.css",
      "version": "2.2.0",
      "type": "css",
      "bytes": 56971,
      "checksum": "69543c402c87",
      "cache": "public, max-age=86400",
      "publicUrl": "/assets/product.css"
    }
  ]
}

Asset fields

FieldTypeRequiredDescription
filestringYesDisplay filename without the leading public path.
versionstringYesRelease version that owns the asset row.
typestringYesLowercase file family such as css, json, png, xml, or txt.
bytesintegerYesUncompressed file size in bytes.
checksumstringYesShortened SHA-256 reference used in the public review surface.
cachestringYesIntended Cache-Control directive for the public path.
publicUrlstringYesRoot-relative canonical path for the published file.

Cache headers

Use short cache windows for generated metadata and longer windows for stable media or styles. Catalog values document intent; the response header from the hosting layer remains authoritative.

Cache-Control: public, max-age=600
Content-Type: application/json

Cache-Control: public, max-age=86400
Content-Type: text/css; charset=utf-8
Do not infer freshness from the filename alone. Validate the live Cache-Control response after publishing, especially for catalog and status JSON.

Public routes

Keep the public file layout predictable. Teams often publish a catalog index, one release file per version, and asset paths that match the docs or static site output.

/catalog/index.json
/releases/[email protected]
/releases/feed.xml
/assets/product.css
/status.json
/.well-known/security.txt

Release checklist

  1. Collect the public files from the final build output, not an intermediate directory.
  2. Record versions, byte sizes, shortened SHA-256 references, cache directives, and public paths.
  3. Publish an immutable release manifest before updating the current catalog pointer.
  4. Request every catalog path and confirm the expected content type and success status.
  5. Verify live cache headers for metadata and stable assets.
  6. Publish the release note and feed entry with the same UTC timestamp.

Example response

{
  "schema": 1,
  "release": "[email protected]",
  "fileCount": 12,
  "published": "2026-07-09T16:20:00Z",
  "catalogUrl": "https://aetherstatic.com/catalog/index.json"
}

Validation

A release check should fail when the catalog cannot be parsed, the schema is unsupported, a required field is missing, or a public path does not return a successful response.

curl -fsS https://aetherstatic.com/catalog/index.json -o catalog.json
curl -fsSI https://aetherstatic.com/assets/product.css
curl -fsSI https://aetherstatic.com/status.json

For checksum verification, compute SHA-256 from the downloaded file and compare the first twelve lowercase hexadecimal characters with the catalog reference.

Common mistakes