Avvyr CMS
Avvyr CMS is a headless CMS built into Avvyr. Editors build pages from blocks, write articles and manage navigation in the Avvyr app. Your site reads the published content as JSON over a fast, fully cacheable delivery API.
It is independent of the Storefront API: a site can use the CMS for content and the Storefront API for products, or the CMS on its own.
/v1/cms returns 403 ADDON_NOT_AVAILABLE. Ask your Avvyr contact to turn it on.Concepts
| Concept | What it is |
|---|---|
| Site | One website. Has its own languages, delivery keys, preview URL and a content version that goes up on every publish. A tenant can have several sites. |
| Type | A schema. An entry type describes something editors create (a page, an article, the navigation). A block type describes a section that goes inside a blocks field (a hero, an image grid, an FAQ). |
| Field | One value on a type: text, rich text, media, link, reference, blocks, object and more. Any field can be localized. |
| Entry | One piece of content of an entry type. Has a draft and, once published, a published version. |
| Folder | Groups entries and gives them a URL segment, e.g. /blog. |
| Singleton | An entry type with exactly one entry per site, e.g. navigation or settings. |
| Routable | An entry type whose entries have a path and become pages on the site. |
Two APIs
| Management API | Delivery API | |
|---|---|---|
| Base path | https://api.avvyr.com/v1/cms | https://api.avvyr.com/v1/content/{siteId} |
| Used by | The Avvyr app, scripts, migrations, CI (avvyr-cms push) | Your site |
| Auth | Avvyr API key in x-api-key | The site's delivery key in x-cms-key |
| Reads | Drafts and everything else | Published content (drafts with the preview key) |
| Writes | Sites, types, folders, entries, publishing | Never |
The delivery API serves everything under a version number, /v/{version}/..., and those responses never change. Your CDN and the browser can cache them for a year, and a publish shows up as soon as the site asks for the new version. See Delivery API.
Packages
| Package | What it is |
|---|---|
@avvyr/cms | Framework-agnostic delivery client, schema-as-code (defineType), the avvyr-cms CLI and helpers for media and rich text. Node 18+ and the browser. |
@avvyr/cms-nuxt | Nuxt 4 layer. Keeps the whole published site in server memory, and adds composables, a block renderer, rich text, responsive images, preview, live preview and a sitemap helper. |
There is no Next.js package yet. On other frameworks, use @avvyr/cms on the server and map block types to your own components; see JavaScript client.
What is not in the CMS
- Product data. Products, prices and stock come from the Storefront API. Link to them from your own components.
- Redirects. Handle redirects in your site's middleware.
- SEO fields out of the box. Add them to your types; the convention is an
objectfield calledseowithtitleanddescription. - Webhooks on publish. Not delivered yet. Poll
GET /version(cheap and cached for 5 seconds), as@avvyr/cms-nuxtdoes.
Next steps
- Quickstart: create a site, a type and a page, then read it back
- Keys and access
- Types and fields
- Nuxt layer