← All news
ARTICLE
22 September 2026

Headless CMS, the Osprey way

A TypeScript loader pulls your published content into Astro at build time. No API key on the edge, no runtime calls.

<p>Connecting a static site to a headless CMS usually means shipping an API key to the edge or making a network call on every request. Neither is great. Osprey does it differently.</p>

<h2>Build-time, not request-time</h2>

<p>The <code>@osprey/astro</code> loader fetches your published entries during the build and hands them to Astro’s content collections. Your deployed site is static HTML; the CMS is a build dependency, never a runtime one.</p>

<h2>Public by opt-in</h2>

<p>A collection is only publicly readable when its <code>access.read</code> admits an anonymous caller. Private collections return a 404 — their existence is never disclosed. You decide what the world sees.</p>

<h2>SEO that is already done</h2>

<p>Every entry comes with a merged SEO object: title, description, Open Graph, Twitter, canonical, hreflang, robots. Render it into your <code>&lt;head&gt;</code> and move on.</p>