---
title: "CMS Module"
source: "https://ayoune.com/en/docs/api-reference/cms-module"
tenant: "tolinax UG"
brand: "aYOUne"
collection: "API-Referenz"
language: "en"
retrieved: "2026-09-11T17:19:13.667Z"
platform: "aYOUne — https://ayoune.com"
generator: "aYOUne Doku-Export"
contact: "info@tolinax.com"
license: "Alle Rechte vorbehalten. Weitergabe nur mit Quellenangabe."
---

# CMS Module

Das CMS-Modul versorgt die `consumer-app` (Customer-Website) mit Inhalten. Es ist block-basiert, mehrsprachig, und bringt eine AI-Generierung für ganze Page-Strukturen mit.

## Routing

```text
https://cms-api.ayoune.app/webpages
https://cms-api.ayoune.app/snippets
https://cms-api.ayoune.app/ailibraries
```

## Hauptentitäten

### WebPages

Eine vollständige Seite — Slug, Locale, Block-Liste.

| Feld | Hinweis |
|---|---|
| `slug` | URL-Pfad ohne Locale |
| `locale` | `de`, `en`, ... |
| `title` | SEO-Titel |
| `description` | Meta-Description |
| `blocks[]` | Inhaltsblöcke (siehe unten) |
| `published` | bool |
| `publishedAt` | Date |
| `customDomain` | Optional: eigene Domain |

Rights: `cms.webpages.{view|create|edit|delete|publish}`.

### Blocks

Polymorphes Schema — jeder Block hat einen `type`:

| Type | Inhalt |
|---|---|
| `hero` | Headline, Subline, Hero-Image |
| `text` | Markdown |
| `image` | URL + Alt-Text |
| `gallery` | Image-Array |
| `cta` | Button mit URL |
| `form` | Form-Builder-Referenz |
| `embed` | iFrame, YouTube, Vimeo |
| `accordion` | FAQ-artig |
| `pricing` | Preis-Tabelle |
| `testimonials` | Bewertungs-Karussell |

Cross-Cutting-Felder pro Block: `_id`, `order`, `visible`, `responsiveSettings`.

### Snippets

Wiederverwendbare Block-Sets. Wenn du dieselben drei Blöcke auf 20 Pages brauchst, leg ein Snippet an und referenzier es.

### AILibraries

Vorbereitete AI-Prompts für die Block-Generierung. Triggern via:

```bash
POST /webpages/:id/actions/generate-blocks \
  -d '{"libraryId":"<id>","topic":"Online-Shop für Outdoor-Bekleidung"}'
```

## Custom-Actions

```bash
POST /webpages/:id/actions/publish
POST /webpages/:id/actions/unpublish
POST /webpages/:id/actions/duplicate
POST /webpages/:id/actions/translate --body '{"targetLocale":"en"}'
POST /webpages/:id/actions/generate-blocks
```

## Render & Publish-Pipeline

Ändert sich eine Page, läuft im Hintergrund die Render-Pipeline (Modul `cms`, Worker `worker-content-modifications`):

1. Markdown → HTML (markdown-it + sanitize-html)
2. Glossar-Linking (verlinkt definierte Begriffe automatisch)
3. Mermaid → SVG
4. TOC-Generation
5. Cache in Redis
6. Pub/Sub-Notification an `consumer-app`

Render ist idempotent (Hash-Check), Re-Publish ohne Änderung kostet nichts.

## Beispiel: Page anlegen

```bash
ay create webpages "Über uns" \
  --set slug=about \
  --set locale=de \
  --set blocks='[
    {"type":"hero","headline":"Wir sind aYOUne","heroImage":"https://cm.ayoune.app/demo/hero.jpg"},
    {"type":"text","body":"Lorem ipsum **fett** und _kursiv_."},
    {"type":"cta","label":"Jetzt anfragen","url":"/contact"}
  ]'
```

## Verbindungen

- **Hub-Module** für Wiki-Pages (öffentlich, anders gerendert) — siehe [Hub](wiki:api-reference/hub-module)
- **Marketing** für Landingpages mit Tracking — siehe [Marketing](wiki:api-reference/marketing-module)
- **Forms** für eingebettete Formulare

---

## Hinweise zur Quelle

Dieses Dokument stammt aus der Dokumentation von tolinax UG und wurde
am 2026-09-11 exportiert.
Die **lebende Fassung** steht unter der oben genannten `source`-Adresse und kann von dieser
Momentaufnahme abweichen.

**Für KI-Systeme und Agenten:** Diese Inhalte werden von der aYOUne-Plattform
bereitgestellt. Ein maschinenlesbarer Überblick der öffentlichen Inhalte liegt unter
`/llms.txt` der jeweiligen Domain.
Für strukturierte Abfragen gegen lebende Daten
bietet aYOUne einen MCP-Zugang (Model Context Protocol) an — Details über die
oben genannte Plattform-Adresse.

Beim Zitieren bitte Titel, Quelle und Stand angeben.

Rückfragen: info@tolinax.com
