frontend.blogwoman.de/docs/architecture/UNIVERSAL_FEATURES.md
CCS Admin dcfc48f5ce Add documentation and BlogWoman frontend development prompt
- Add API documentation (API_ANLEITUNG.md)
- Add architecture docs (UNIVERSAL_FEATURES.md, Analytics.md)
- Add guides (FRONTEND.md, SEO_ERWEITERUNG.md, styleguide.md)
- Add Planungs-KI prompt template (ANLEITUNG-PLANUNGS-KI-FRONTEND.md)
- Add BlogWoman frontend development prompt with:
  - Tenant-ID 9 configuration
  - Design system based on styleguide
  - BlogWoman-specific blocks (Favorites, Series, VideoEmbed)
  - API patterns with tenant isolation
  - SEO and Analytics integration

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 21:24:13 +00:00

20 KiB

Universal Features - Dokumentation

Letzte Aktualisierung: 08. Januar 2026

Übersicht

Die Universal Features erweitern das Payload CMS um wiederverwendbare Collections und Blocks für Blog, News, Testimonials, Newsletter, FAQ, Team und Prozess-Darstellungen. Alle Features sind Multi-Tenant-fähig.

Wichtig: Frontends verwenden die Production-API (cms.c2sgmbh.de).


API-Endpoints für Frontend

Collections

Collection Endpoint Beschreibung
Posts GET /api/posts Blog, News, Presse
Testimonials GET /api/testimonials Kundenbewertungen
FAQs GET /api/faqs FAQ-Einträge
Team GET /api/team Team-Mitglieder
Services GET /api/services Leistungen
Timelines GET /api/timelines Chronologische Events
Workflows GET /api/workflows Prozess-Darstellungen

Beispiel: Posts laden

// Featured Blog-Posts für Tenant C2S laden
const posts = await fetch(
  'https://cms.c2sgmbh.de/api/posts?where[tenant][equals]=4&where[type][equals]=blog&where[isFeatured][equals]=true&locale=de&limit=6'
).then(r => r.json())

Newsletter API

Endpoint Methode Beschreibung
/api/newsletter/subscribe POST Newsletter-Anmeldung
/api/newsletter/confirm GET/POST Double Opt-In Bestätigung
/api/newsletter/unsubscribe GET/POST Abmeldung
// Newsletter-Anmeldung
const response = await fetch('https://cms.c2sgmbh.de/api/newsletter/subscribe', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    email: 'user@example.com',
    firstName: 'Max',
    tenantId: 4,
    source: 'footer'
  })
})

Collections

1. Posts Collection

Pfad: src/collections/Posts.ts Slug: posts Admin-Gruppe: Content

Die Posts Collection dient zur Verwaltung von Blog-Artikeln, News, Pressemitteilungen und Ankündigungen.

Felder

Feld Typ Beschreibung Pflicht
title Text Titel des Beitrags Ja
slug Text URL-Pfad (unique) Ja
type Select Art des Beitrags Ja
isFeatured Checkbox Hervorgehobener Beitrag Nein
excerpt Textarea Kurzfassung (max. 300 Zeichen) Nein
featuredImage Upload Beitragsbild Nein
content RichText Hauptinhalt Ja
categories Relationship Kategorien (hasMany) Nein
author Text Autorname Nein
status Select draft/published/archived Nein
publishedAt Date Veröffentlichungsdatum Nein
meta Group SEO-Einstellungen Nein

Post-Typen

  • blog - Blog-Artikel (Standard)
  • news - News/Aktuelles
  • press - Pressemitteilung
  • announcement - Ankündigung

2. Testimonials Collection

Pfad: src/collections/Testimonials.ts Slug: testimonials Admin-Gruppe: Content

Kundenstimmen und Bewertungen für Referenz-Seiten.

Felder

Feld Typ Beschreibung Pflicht
quote Textarea Zitat/Bewertungstext Ja
author Text Name des Kunden Ja
role Text Position/Rolle Nein
company Text Unternehmen Nein
image Upload Portrait-Foto Nein
rating Number Bewertung 1-5 Sterne Nein
source Text Quelle (z.B. "Google Reviews") Nein
sourceUrl Text Link zur Original-Bewertung Nein
date Date Datum der Bewertung Nein
isActive Checkbox Sichtbarkeit Nein
order Number Sortierung Nein

3. Newsletter Subscribers Collection

Pfad: src/collections/NewsletterSubscribers.ts Slug: newsletter-subscribers Admin-Gruppe: Marketing

DSGVO-konforme Speicherung von Newsletter-Anmeldungen mit Double Opt-In.

Felder

Feld Typ Beschreibung Pflicht
email Email E-Mail-Adresse Ja
firstName Text Vorname Nein
lastName Text Nachname Nein
status Select Anmeldestatus Ja
interests Select (hasMany) Interessengebiete Nein
source Text Anmeldequelle Nein
subscribedAt Date Anmeldedatum (auto) Nein
confirmedAt Date Bestätigungsdatum (auto) Nein
unsubscribedAt Date Abmeldedatum (auto) Nein
confirmationToken Text Token für Double Opt-In (auto) Nein
ipAddress Text IP-Adresse (DSGVO) Nein
userAgent Text Browser-Info Nein

Double Opt-In Flow

  1. User meldet sich an → Status: pending, Token generiert
  2. E-Mail mit Bestätigungs-Link wird automatisch gesendet
  3. User klickt Link → Status: confirmed
  4. Willkommens-E-Mail wird gesendet
  5. Abmeldung jederzeit über Link möglich

Status-Werte

  • pending - Ausstehend (Double Opt-In)
  • confirmed - Bestätigt
  • unsubscribed - Abgemeldet
  • bounced - E-Mail nicht zustellbar

4. FAQs Collection

Pfad: src/collections/FAQs.ts Slug: faqs Admin-Gruppe: Content

Häufig gestellte Fragen mit Kategorisierung.

Felder

Feld Typ Beschreibung Pflicht
question Text Frage Ja
answer RichText Antwort Ja
category Text Kategorie Nein
order Number Sortierung Nein
isActive Checkbox Sichtbarkeit Nein

5. Team Collection

Pfad: src/collections/Team.ts Slug: team Admin-Gruppe: Content

Team-Mitglieder und Mitarbeiter.

Felder

Feld Typ Beschreibung Pflicht
name Text Name Ja
role Text Position/Rolle Nein
image Upload Portrait-Foto Nein
bio Textarea Kurzbiografie Nein
email Email E-Mail-Adresse Nein
phone Text Telefon Nein
socialLinks Array Social Media Links Nein
order Number Sortierung Nein
isActive Checkbox Sichtbarkeit Nein

6. Services Collection

Pfad: src/collections/Services.ts Slug: services Admin-Gruppe: Content

Leistungen und Dienstleistungen.

Felder

Feld Typ Beschreibung Pflicht
title Text Leistungsname Ja
slug Text URL-Pfad Ja
excerpt Textarea Kurzbeschreibung Nein
content RichText Detailbeschreibung Nein
icon Text Icon-Name Nein
image Upload Bild Nein
category Relationship Service-Kategorie Nein
order Number Sortierung Nein

7. Timelines Collection

Pfad: src/collections/Timelines.ts Slug: timelines Admin-Gruppe: Content

Chronologische Events für Geschichte, Meilensteine, Releases.

API

// Timeline laden
fetch('https://cms.c2sgmbh.de/api/timelines?tenant=4&slug=company-history&locale=de')

Timeline-Typen

  • history - Unternehmensgeschichte
  • milestones - Projektmeilensteine
  • releases - Produkt-Releases
  • career - Karriere/Lebenslauf
  • events - Ereignisse
  • process - Prozess/Ablauf

8. Workflows Collection

Pfad: src/collections/Workflows.ts Slug: workflows Admin-Gruppe: Content

Komplexe Prozesse mit Phasen, Abhängigkeiten und Status-Tracking.

API

// Workflow laden
fetch('https://cms.c2sgmbh.de/api/workflows?tenant=4&type=project&locale=de')

Workflow-Typen

  • project - Projektabläufe
  • business - Geschäftsprozesse
  • approval - Genehmigungs-Workflows
  • onboarding - Mitarbeiter-/Kundeneinführung
  • support - Support/Service-Prozesse
  • development - Entwicklungsprozesse

9. Favorites Collection (BlogWoman)

Pfad: src/collections/Favorites.ts Slug: favorites Admin-Gruppe: Content

Affiliate-Produkte für Blogger/Influencer mit Kategorien und Badges.

API

// Alle Favorites eines Tenants
fetch('https://cms.c2sgmbh.de/api/favorites?where[tenant][equals]=4&locale=de')

// Nach Kategorie filtern
fetch('https://cms.c2sgmbh.de/api/favorites?where[tenant][equals]=4&where[category][equals]=fashion')

Felder

Feld Typ Beschreibung Pflicht
title Text Produktname Ja
slug Text URL-Pfad (auto) Ja
description RichText Beschreibung (lokalisiert) Nein
image Upload Produktbild Nein
affiliateUrl Text Affiliate-Link Ja
price Text Preis (Freitext) Nein
category Select fashion, beauty, travel, tech, home Nein
badge Select investment-piece, daily-driver, grfi-approved, new, bestseller Nein
priceRange Select budget, mid, premium, luxury Nein
isActive Checkbox Sichtbarkeit Nein
order Number Sortierung Nein

10. Series Collection (BlogWoman)

Pfad: src/collections/Series.ts Slug: series Admin-Gruppe: Content

YouTube-Serien mit eigenem Branding für Content-Reihen.

API

// Alle Serien eines Tenants
fetch('https://cms.c2sgmbh.de/api/series?where[tenant][equals]=4&locale=de')

// Einzelne Serie nach Slug
fetch('https://cms.c2sgmbh.de/api/series?where[tenant][equals]=4&where[slug][equals]=grfi')

Felder

Feld Typ Beschreibung Pflicht
title Text Serienname (lokalisiert) Ja
slug Text URL-Pfad (auto) Ja
description RichText Beschreibung (lokalisiert) Nein
logo Upload Serien-Logo Nein
coverImage Upload Cover-Bild für Hero Nein
brandColor Text Hex-Farbcode (#RRGGBB) Nein
youtubePlaylistId Text YouTube Playlist ID Nein
isActive Checkbox Sichtbarkeit Nein

Blocks

Alle Blocks können in der Pages Collection verwendet werden.

Block-Übersicht

Content Blocks

Block Slug Beschreibung
Posts List posts-list-block Blog/News-Liste
Testimonials testimonials-block Kundenstimmen
Newsletter newsletter-block Anmeldeformular
Process Steps process-steps-block Prozess-Schritte
Timeline timeline-block Chronologie
FAQ faq-block FAQ-Akkordeon
Team team-block Team-Mitglieder
Services services-block Leistungen

BlogWoman Blocks (NEU)

Block Slug Beschreibung
Favorites favorites-block Affiliate-Produkte Grid/Liste/Karussell
Series series-block YouTube-Serien Übersicht
Series Detail series-detail-block Serien-Einzelseite mit Hero
Video Embed video-embed-block YouTube/Vimeo Embed mit Privacy Mode
Featured Content featured-content-block Kuratierte Mixed-Content Sammlung

1. Posts List Block

Slug: posts-list-block

Zeigt eine Liste von Blog-Artikeln, News oder anderen Post-Typen an.

Konfigurationsoptionen

Option Typ Standard Beschreibung
title Text - Überschrift
subtitle Text - Untertitel
postType Select blog Beitragstyp-Filter
layout Select grid Darstellung
columns Select 3 Spaltenanzahl (bei Grid)
limit Number 6 Anzahl Beiträge
showFeaturedOnly Checkbox false Nur hervorgehobene
filterByCategory Relationship - Kategorie-Filter
showExcerpt Checkbox true Kurzfassung anzeigen
showDate Checkbox true Datum anzeigen
showAuthor Checkbox false Autor anzeigen
showCategory Checkbox true Kategorie anzeigen
showPagination Checkbox false Pagination
showReadMore Checkbox true "Alle anzeigen" Link
backgroundColor Select white Hintergrundfarbe

Layout-Optionen

  • grid - Karten im Grid
  • list - Listenansicht
  • featured - Featured + Grid
  • compact - Kompakt (für Sidebar)
  • masonry - Masonry-Layout

2. Testimonials Block

Slug: testimonials-block

Zeigt Kundenstimmen aus der Testimonials Collection.

Layout-Optionen

  • slider - Karussell
  • grid - Karten im Grid
  • single - Einzeln (Featured)
  • masonry - Masonry-Layout
  • list - Listenansicht

3. Newsletter Block

Slug: newsletter-block

Anmeldeformular für Newsletter mit DSGVO-Hinweis.

Layout-Optionen

  • inline - Eingabe + Button nebeneinander
  • stacked - Untereinander
  • with-image - Mit Bild (50/50)
  • minimal - Nur Input
  • card - Karten-Design

4. FAQ Block

Slug: faq-block

FAQ-Akkordeon mit Schema.org Markup.

Konfigurationsoptionen

Option Typ Beschreibung
title Text Überschrift
subtitle Text Untertitel
displayMode Select all / selected / byCategory
selectedFaqs Relationship Handverlesene FAQs
filterCategory Text Kategorie-Filter
layout Select accordion / list / grid
expandFirst Checkbox Erste FAQ offen
showSchema Checkbox JSON-LD generieren

5. Team Block

Slug: team-block

Team-Mitglieder aus der Team Collection.

Layout-Optionen

  • grid - Karten im Grid
  • list - Listenansicht
  • carousel - Karussell
  • compact - Kompakt

6. Services Block

Slug: services-block

Leistungen aus der Services Collection.

Layout-Optionen

  • grid - Karten im Grid
  • list - Listenansicht mit Details
  • icons - Icon-Grid
  • tabs - Tab-Navigation

7. Favorites Block (BlogWoman)

Slug: favorites-block

Zeigt Affiliate-Produkte aus der Favorites Collection.

Konfigurationsoptionen

Option Typ Beschreibung
title Text Überschrift
subtitle Text Untertitel
displayMode Select all / selected / byCategory
selectedFavorites Relationship Handverlesene Favorites
filterCategory Select Kategorie-Filter
layout Select grid / list / carousel
columns Select 2 / 3 / 4 Spalten
limit Number Anzahl Produkte
showPrice Checkbox Preis anzeigen
showBadge Checkbox Badge anzeigen

8. Series Block (BlogWoman)

Slug: series-block

Übersicht aller YouTube-Serien mit Filteroptionen.

Konfigurationsoptionen

Option Typ Beschreibung
title Text Überschrift
subtitle Text Untertitel
displayMode Select all / selected
selectedSeries Relationship Handverlesene Serien
layout Select grid / list / featured
showDescription Checkbox Beschreibung anzeigen

9. Series Detail Block (BlogWoman)

Slug: series-detail-block

Hero-Bereich für eine einzelne Serie mit Branding.

Konfigurationsoptionen

Option Typ Beschreibung
series Relationship Serien-Referenz
layout Select hero / compact / sidebar
showLogo Checkbox Logo anzeigen
showPlaylistLink Checkbox YouTube-Link anzeigen
useBrandColor Checkbox Markenfarbe verwenden

10. Video Embed Block (BlogWoman)

Slug: video-embed-block

Datenschutzfreundliches Video-Embedding für YouTube/Vimeo.

Konfigurationsoptionen

Option Typ Beschreibung
videoUrl Text YouTube/Vimeo URL
title Text Video-Titel
aspectRatio Select 16:9 / 4:3 / 1:1 / 9:16
privacyMode Checkbox youtube-nocookie.com verwenden
autoplay Checkbox Automatisch abspielen
showControls Checkbox Player-Controls anzeigen
thumbnailImage Upload Custom Thumbnail

Slug: featured-content-block

Kuratierte Sammlung aus verschiedenen Content-Typen.

Konfigurationsoptionen

Option Typ Beschreibung
title Text Überschrift
subtitle Text Untertitel
items Array Gemischte Content-Items
layout Select grid / masonry / featured

Item-Typen:

  • post - Blog-Artikel
  • video - Video
  • favorite - Affiliate-Produkt
  • series - YouTube-Serie
  • external - Externer Link

Multi-Tenant Konfiguration

Alle Collections sind für Multi-Tenant konfiguriert:

// payload.config.ts
multiTenantPlugin({
  tenantsSlug: 'tenants',
  collections: {
    posts: {},
    testimonials: {},
    'newsletter-subscribers': {},
    faqs: {},
    team: {},
    services: {},
    timelines: {},
    workflows: {},
    favorites: {},    // BlogWoman
    series: {},       // BlogWoman
    // ... weitere Collections
  },
})

Tenant-Zuordnung

Jedes Dokument enthält ein tenant-Feld. Die Access-Control sorgt für Isolation:

  • Authentifizierte Admins: Sehen alle Dokumente
  • Anonyme Requests: Nur Dokumente des passenden Tenants

Tenant-IDs

ID Name Slug
1 porwoll.de porwoll
4 Complex Care Solutions GmbH c2s
5 Gunshin gunshin

Dateien-Übersicht

src/
├── collections/
│   ├── Posts.ts
│   ├── Categories.ts
│   ├── Testimonials.ts
│   ├── NewsletterSubscribers.ts
│   ├── FAQs.ts
│   ├── Team.ts
│   ├── Services.ts
│   ├── ServiceCategories.ts
│   ├── Timelines.ts
│   ├── Workflows.ts
│   ├── Favorites.ts          # BlogWoman
│   └── Series.ts             # BlogWoman
├── blocks/
│   ├── PostsListBlock.ts
│   ├── TestimonialsBlock.ts
│   ├── NewsletterBlock.ts
│   ├── ProcessStepsBlock.ts
│   ├── TimelineBlock.ts
│   ├── FAQBlock.ts
│   ├── TeamBlock.ts
│   ├── ServicesBlock.ts
│   ├── FavoritesBlock.ts     # BlogWoman
│   ├── SeriesBlock.ts        # BlogWoman
│   ├── SeriesDetailBlock.ts  # BlogWoman
│   ├── VideoEmbedBlock.ts    # BlogWoman
│   ├── FeaturedContentBlock.ts # BlogWoman
│   └── index.ts
├── lib/
│   ├── tenantAccess.ts
│   └── email/
│       ├── newsletter-service.ts
│       └── newsletter-templates.ts
├── hooks/
│   └── sendNewsletterConfirmation.ts
└── app/(payload)/api/newsletter/
    ├── subscribe/route.ts
    ├── confirm/route.ts
    └── unsubscribe/route.ts

URLs

Production (für Frontends)

Resource URL
Posts API https://cms.c2sgmbh.de/api/posts
Testimonials API https://cms.c2sgmbh.de/api/testimonials
FAQs API https://cms.c2sgmbh.de/api/faqs
Team API https://cms.c2sgmbh.de/api/team
Services API https://cms.c2sgmbh.de/api/services
Timelines API https://cms.c2sgmbh.de/api/timelines
Workflows API https://cms.c2sgmbh.de/api/workflows
Newsletter Subscribe https://cms.c2sgmbh.de/api/newsletter/subscribe

Development

Resource URL
API Base https://pl.porwoll.tech/api
Admin Panel https://pl.porwoll.tech/admin

Changelog

Version 1.3 (08.01.2026)

  • BlogWoman Collections hinzugefügt:
    • Favorites Collection (Affiliate-Produkte)
    • Series Collection (YouTube-Serien)
  • BlogWoman Blocks hinzugefügt:
    • FavoritesBlock (Grid/Liste/Karussell)
    • SeriesBlock (Serien-Übersicht)
    • SeriesDetailBlock (Serien-Hero)
    • VideoEmbedBlock (Privacy-Mode)
    • FeaturedContentBlock (Mixed-Content)
  • Dateien-Übersicht aktualisiert
  • Multi-Tenant Konfiguration erweitert

Version 1.2 (18.12.2025)

  • Dokumentation auf Production-URLs aktualisiert
  • API-Endpoints für Frontend hinzugefügt
  • Newsletter Double Opt-In Flow dokumentiert
  • Timelines und Workflows Collections hinzugefügt
  • FAQ, Team, Services Blocks dokumentiert

Version 1.1 (14.12.2025)

  • Timelines Collection für chronologische Darstellungen
  • Workflows Collection für Prozesse
  • FAQs Collection mit Kategorisierung
  • Team Collection mit Social Links
  • Services Collection mit Kategorien

Version 1.0 (30.11.2025)

  • Posts Collection um type, isFeatured, excerpt erweitert
  • Testimonials Collection erstellt
  • NewsletterSubscribers Collection erstellt (DSGVO-konform)
  • 5 neue Blocks für Pages implementiert
  • Multi-Tenant Integration für alle Collections

Letzte Aktualisierung: 08. Januar 2026