Installation
Starte mit Cmssy in unter 5 Minuten.
Voraussetzungen
Eine Cmssy-Site ist ein normales Next.js (App Router)-Projekt, das deine veröffentlichten Inhalte mit dem Cmssy SDK rendert. Du brauchst:
- Node.js 20+ - wir empfehlen nvm
- pnpm - unser empfohlener Paketmanager (npm und yarn funktionieren auch)
- Eine Next.js App Router App - neu oder bestehend
- Einen Cmssy-Workspace - für den Workspace-Slug und die Draft-/Editor-Einstellungen
SDK installieren
Füge die beiden SDK-Pakete zu deinem Next.js-Projekt hinzu:
Eine Next.js-App erstellen
Du startest bei null? Erstelle ein App-Router-Projekt und füge dann das SDK hinzu. (Oder überspringe diesen Schritt und nutze deine bestehende App.)
Konfigurieren
Erstelle cmssy/config.ts, das eine CmssyNextConfig exportiert, und füge dann die folgenden Schlüssel zu deiner .env hinzu. Kopiere die Werte von der Seite Settings → Headless deines Workspace im Cmssy-Dashboard. In der cmssy cloud setzt du nur zwei Werte - apiUrl und editorOrigin haben automatische Defaults:
| Variable | Bedeutung | Erforderlich |
|---|---|---|
CMSSY_WORKSPACE_SLUG | Dein Workspace-Slug (löst die Workspace-ID auf) | Ja |
CMSSY_DRAFT_SECRET | Secret, das den Draft-/Preview-Modus freischaltet | Ja |
CMSSY_REVALIDATE_SECRET | Secret für den ISR-Revalidierungs-Webhook beim Publish | Ja |
CMSSY_API_URL | GraphQL-Delivery-Endpoint. Standard: https://api.cmssy.io/graphql | Nur Self-Host / Staging |
CMSSY_EDITOR_ORIGIN | Admin-Origin, der deine Site einbettet. Standard: https://www.cmssy.io | Nur Self-Host |
Halte diese Werte geheim - committe .env nie in die Versionskontrolle. Setze in Produktion dieselben Variablen bei deinem Hosting-Anbieter (z. B. in den Vercel-Projekteinstellungen).
Projektstruktur
Eine typische Cmssy-Site sieht so aus:
my-site/
├── app/
│ ├── layout.tsx # CmssyServerLayout (header/footer)
│ ├── [[...path]]/page.tsx # createCmssyPage - the catch-all page
│ └── api/draft/route.ts # createDraftRoute - editor preview
├── blocks/
│ └── hero/
│ ├── block.ts # defineBlock(...) + fields
│ └── src/index.tsx # the React component
├── cmssy/
│ ├── config.ts # CmssyNextConfig + resolveLocale
│ └── blocks.ts # registry: exports the `blocks` array
└── proxy.ts # locale + edit-mode + CSPJeder Block liegt in einem eigenen Ordner unter blocks/ und wird in cmssy/blocks.ts registriert.
Entwicklung starten
Starte den Next.js-Dev-Server:
Öffne http://localhost:3000 - deine Site rendert veröffentlichte Cmssy-Inhalte.
Editor-Vorschau
Um Inhalte visuell mit Live-Vorschau zu bearbeiten, bettet der Cmssy-Editor deine deployte (oder lokale) Site in ein iframe ein. Damit dein Projekt im Editor erscheint, brauchst du:
- Die Preview URL deines Workspace (Settings → Headless), gesetzt auf deine Site - z. B.
https://your-site.comoderhttp://localhost:3000während der Entwicklung. - Die Draft-Route
app/api/draft/route.ts=createDraftRoute(cmssy), damit der Editor in den Preview-/Draft-Modus wechseln kann. proxy.ts, das im Edit-Modus die CSP überapplyCmssyCspanwendet.
In der cmssy cloud ist der Editor-Origin bereits für dich konfiguriert. Wenn du den Admin selbst hostest, setze CMSSY_EDITOR_ORIGIN auf deinen Admin-Origin - das SDK nutzt ihn für die postMessage-Bridge und die CSP frame-ancestors, die dem Admin erlaubt, deine Site einzubetten. Öffne dann den Seiteneditor im Admin - deine Site lädt im Canvas und Änderungen erscheinen sofort.
Deployen
Deploye wie jede Next.js-App (z. B. auf Vercel). Setze dieselben Umgebungsvariablen bei deinem Hosting-Anbieter und richte dann die Preview URL deines Workspace auf die deployte Site, damit der Editor sie einbetten kann.
SDK aktualisieren
Aktualisiere beide Pakete zusammen, um SDK-Fixes zu erhalten, und deploye dann neu:
Fehlerbehebung
Häufige Probleme
- "Preview didn't connect" - prüfe, ob die Preview URL des Workspace auf deine Site zeigt. Wenn du den Admin selbst hostest, muss
CMSSY_EDITOR_ORIGINdein Admin-Origin sein. - Leere Seite - prüfe, ob
CMSSY_WORKSPACE_SLUGzu deinem Workspace passt (und beim Self-Hosting, dassCMSSY_API_URLder vollständige GraphQL-Endpoint ist). - "Port 3000 already in use" - stoppe andere Dev-Server oder starte mit
next dev -p 3001. - Node.js-Versionsfehler - aktualisiere mit
nvm install 20auf Node.js 20+.
Nächste Schritte
Jetzt, wo alles eingerichtet ist, sieh dir diese Guides an:
- Schnellstart - baue deinen ersten Block von Anfang bis Ende
- Block-Entwicklung - Block-Anatomie, Schemas und Feldtypen
- Page Builder - Inhalte im visuellen Editor bearbeiten