Northwind Media

Documentation

Integration guide

Reference assets by their published path. Paths are emitted by the CMS at build time and should not be constructed by hand in templates.

Referencing an image

<img
  src="/media/2026/03/harbour-lights-960.avif"
  srcset="/media/2026/03/harbour-lights-640.avif 640w,
          /media/2026/03/harbour-lights-960.avif 960w,
          /media/2026/03/harbour-lights-1440.avif 1440w"
  sizes="(max-width: 700px) 100vw, 700px"
  width="960" height="540"
  alt="Harbour at dusk" loading="lazy">

Always set intrinsic width and height so the layout does not shift while the image loads.

Variants

SuffixLongest edgeTypical use
-320320 pxThumbnails, related-article strips
-640640 pxMobile body images
-960960 pxDefault article width
-14401440 pxLead images, high-density displays

Cache headers

Cache-Control: public, max-age=31536000, immutable   # fingerprinted paths
Cache-Control: public, max-age=300, stale-while-revalidate=86400   # rolling paths
Should templates append a query string for cache busting?
No. The fingerprint is already part of the path, and query strings reduce cache hit ratio.
What happens on origin failure?
The last good object continues to be served while revalidation is retried in the background.