@menestrel/astro
v0.1.1
Published
Astro Content Layer loader and components for Menestrel: typed content collections, immutable snapshots, zero runtime requests
Maintainers
Readme
@menestrel/astro
Astro Content Layer loader and components for Menestrel, the CMS built for Astro sites. Your content collections stay typed, your site stays 100 % static, and a CMS outage can never break a build: content is served from immutable snapshots on a CDN.
Install
npm install @menestrel/astroRequires Astro 6 or 7 (each new Astro major is supported within 14 days).
Loader
// src/content.config.ts
import { defineCollection } from 'astro:content';
import { menestrelLoader } from '@menestrel/astro';
export const collections = {
services: defineCollection({
loader: menestrelLoader({ collection: 'services' }),
}),
};The loader resolves content in this order:
MENESTREL_OFFLINE=1: read the last snapshot pulled locally withmenestrel pull(works with no network at all).MENESTREL_CONTENT_URL: read a published snapshot straight from the CDN. No token, no API call, builds keep passing even if the Menestrel app is down.MENESTREL_TOKEN: fetch the latest published snapshot through the API (also unlocks draft content for previews).
Entries are one per (entry, locale), with data.locale and data.translations for i18n routing. Zod schemas are built from your server-side schema definition, so getCollection() is fully typed. Incremental builds reuse the content layer cache via snapshot ids and digests.
Components
---
import RichText from '@menestrel/astro/components/RichText.astro';
import CmsImage from '@menestrel/astro/components/CmsImage.astro';
import CmsSeo from '@menestrel/astro/components/CmsSeo.astro';
---RichText: renders Menestrel rich text (structured JSON, never stored HTML), with a component mapping for custom nodes.CmsImage: signed imgproxy URLs, AVIF/WebP srcset, focal point, required alt.CmsSeo: title, description, canonical and social tags from a SEO field.
Documentation
Full guides and reference (English and French): docs.menestrel.dev
License
MIT
