Eine Alternative zu Contentful und DatoCMS

Ein Panel, N Projekte, eine Rechnung die nicht mit dem Traffic wächst

API-first, mandantenfähiges Headless CMS. Der Lesepfad erreicht die API nie — mit mehr Besuchern steigt Ihre Cache-Trefferquote, nicht Ihre Rechnung.

Ihre Daten liegen auf Servern, die wir betreibenKeine nutzungsabhängig abgerechneten FremddiensteInstallation auf Ihren eigenen Servern im Enterprise-Plan

Der Lesepfad in Zahlen

Datenbankabfragen pro Lesevorgang
0
HTTP-Anfragen pro Seite
2
Antwortzeit der tippfehlertoleranten Suche
<50 ms
Einzeln abschaltbare Module
7+

Jede Komponente auf unserer eigenen Infrastruktur

PostgreSQL
Valkey
Typesense
Garage · S3-kompatibel
nginx Edge-Cache
NestJS
Drizzle
Next.js

Funktionen

Content-Infrastruktur ohne Kopfzerbrechen

Alles liegt hinter der API; keine Funktion ist ans Panel gebunden.

Mandantenfähigkeit und RLS

Jedes Projekt ist ein eigener Space. Die Isolation liegt in der Datenbank, nicht in der Anwendung: Die Sicherheit auf Zeilenebene von PostgreSQL verhindert, dass Daten eines Mandanten zu einem anderen gelangen — selbst wenn die Anwendungsschicht einen Fehler macht.

Schema-Engine und Feldrollen

Inhaltstypen sind nicht im Code festgeschrieben; Sie definieren sie im Panel oder über die API. Felder tragen Rollen wie title, slug und body — die Build-Pipeline und die SEO-Erzeugung richten sich nach der Rolle, nicht nach dem Feldnamen.

Modulare Architektur

Medien, Suche, Webhooks, SEO, GraphQL, Import, Analytics — jedes davon getrennt und abschaltbar. Abschalten löscht keine Daten; wird ein Modul wieder aktiviert, macht es dort weiter, wo es aufgehört hat.

Lesezugriffe vom Edge

Veröffentlichte Inhalte werden beim Build an eine unveränderliche Adresse geschrieben und aus dem nginx Edge-Cache ausgeliefert. Weder die Zahl der Einträge noch die der Besucher erhöht die Kosten eines Lesevorgangs.

Medienbibliothek

S3-kompatibler Objektspeicher (Garage), über drei Zonen replizierte Bilder und automatische Ableitungen. Hochgeladene Dateien bleiben auf unserer eigenen Infrastruktur und gehen nie an ein nutzungsabhängig abgerechnetes CDN.

Tippfehlertolerante Suche

Mehrsprachige Volltextsuche auf Basis von Typesense. Auch wer "Istanul" eintippt, findet den richtigen Eintrag; die Antwort kommt in unter 50 Millisekunden zurück.

Webhooks

Veröffentlichen, Aktualisieren, Löschen — bei jedem Ereignis erfahren Ihre Systeme davon. Die Zustellung liegt in einer dauerhaften Warteschlange und wird mit exponentiellem Backoff wiederholt; selbst wenn der Prozess abstürzt, geht das Ereignis nicht verloren.

GraphQL

Das Schema wird nicht von Hand geschrieben, sondern aus den Inhaltstypen des Space abgeleitet. Legen Sie einen neuen Typ an, wird er abfragbar. Tiefen- und Längenbegrenzungen sind verpflichtend — als Schutz gegen Query-Bomben.

Typsicheres SDK

@corpusctl/client mit Adaptern für React, Vue und Next.js. Block-Renderer kommen mit null Standard-Styling — wir schreiben Ihnen keine einzige Zeile CSS vor, das Design gehört ganz Ihnen.

Codebeispiele

Im Panel — oder mit einem einzigen Befehl

Alles, was im Panel möglich ist, hat ein API-Äquivalent; keine Funktion ist an die Oberfläche gebunden.

publish.sh
# 1) Inhaltstyp definieren — das Schema steht nicht im Code
curl -X PUT "$API/v1/content-types/post" \
  -H "authorization: Bearer $TOKEN" \
  -H "x-corpusctl-tenant: $TENANT" \
  -H "content-type: application/json" \
  -d '{
    "name": "post",
    "title": "Post",
    "fields": [
      { "name": "title", "type": "text",   "role": "title", "required": true },
      { "name": "slug",  "type": "slug",   "role": "slug",  "required": true },
      { "name": "body",  "type": "blocks", "role": "body" }
    ]
  }'

# 2) Entwurf anlegen
curl -X POST "$API/v1/documents" \
  -H "authorization: Bearer $TOKEN" \
  -H "x-corpusctl-tenant: $TENANT" \
  -d '{ "type": "post", "data": { "title": "Hello", "slug": "hello" } }'

# 3) Veröffentlichen — Validierung, Build und Auslieferung ans Edge in einem Aufruf
curl -X POST "$API/v1/documents/$ID/publish" \
  -H "authorization: Bearer $TOKEN" \
  -H "x-corpusctl-tenant: $TENANT"

# → { "data": { "version": 3, "contentHash": "…", "durationMs": 42 } }

Der Lesepfad berührt die Datenbank nicht

  • Inhaltsadressierter Cache. Die Adresse ist der Hash des Inhalts. Da sie sich nicht ändern kann, lässt sie sich unbegrenzt speichern — "veraltete Daten" sind kein Thema mehr.
  • Mehr Traffic heißt nicht mehr Kosten. Weil Leseanfragen die API nie erreichen, gibt es keinen Aufruf zu zählen; die Rechnung steigt nicht mit den Besuchern.
  • Schreiben und Lesen in getrennten Klassen. ReadClient trägt kein geheimes Token und läuft im Browser; ManagementClient ausschließlich auf dem Server. Wäre es eine einzige Klasse, wäre ein durchgesickertes Token ein Fehler von einer Zeile.

Architektur

Getrennter Schreibpfad, getrennter Lesepfad

Die Schaltfläche „Veröffentlichen“ stößt einen Build an; Besucher lesen dessen Ergebnis, nicht das System selbst.

SCHREIBPFADLESEPFAD (SCHNELL)Panel · ManagementClientAPI — NestJSPostgreSQLRLS · PartitionveröffentlichenBuild-PipelineFrontend · ReadClientnginx Edge-CacheTreffer → Antwort in msbei MissOrigin — nginxObjektspeicher — S3-kompatibel<tenant>/c/<hash>.json · unveränderlichschreibenlesen
Die beiden Pfade treffen sich nur im Objektspeicher. Da Besucher-Traffic weder die API noch PostgreSQL erreicht, ist die Last auf der Schreibseite vollständig unabhängig von der Leseseite.

Unveränderliche Adresse

Inhalte werden über ihren Hash adressiert. Dieselbe Adresse liefert nie einen anderen Inhalt, deshalb lässt sie sich 30 Tage cachen; beim Veröffentlichen wird das Manifest aktualisiert.

Das Manifest wird geteilt

Welcher Manifest-Shard gelesen wird, berechnet der Client aus dem Slug. Auch in einem Space mit zehntausend Einträgen wird nur eine kleine Datei geladen.

Versionierung und Planung

Jeder Datensatz wird versioniert, eine ältere Version lässt sich als Entwurf wiederherstellen. Veröffentlichungen können auf ein späteres Datum geplant werden; der Scheduler stößt den Build selbst an.

Vergleich

Wo wir vorn liegen — und wo nicht

Wir gewinnen nicht jede Zeile. Diese Tabelle gibt es, damit Sie klar sehen, wofür Sie sich entscheiden.

corpusctl im Vergleich mit Contentful und DatoCMS — basierend auf öffentlich verfügbaren Produktinformationen mit Stand August 2026.
KriteriumcorpusctlContentfulDatoCMS
PreismodellFester Plan. Da Leseanfragen die API nie erreichen, gibt es keinen gezählten Aufruf.Abrechnung pro API-Aufruf, Datensatz und Nutzer; Überschreitungen kosten extra.Abrechnung pro API-Aufruf und Datenvolumen.
Verwaltung mehrerer ProjekteIm Kern verankert. Ein Panel, unbegrenzt viele Spaces; ein Nutzer trägt in jedem eine eigene Rolle.Jedes Projekt ist ein eigener „Space“; in den meisten Plänen kostet jeder Space extra.Jedes Projekt ist eine eigene Umgebung; ein Plan pro Projekt.
MandantenisolationAuf Datenbankebene — Sicherheit auf Zeilenebene von PostgreSQL (RLS).Auf Anwendungsebene; Details werden nicht offengelegt.Auf Anwendungsebene; Details werden nicht offengelegt.
DatenstandortServer, die wir betreiben; im Enterprise-Plan vollständig auf Ihren eigenen Servern.Die Cloud des Anbieters; Regionswahl in höheren Plänen.Die Cloud des Anbieters; Regionswahl in höheren Plänen.
Nutzungsabhängige FremddiensteKeine. PostgreSQL, Valkey, Typesense, Garage, nginx — alles auf unserer eigenen Infrastruktur.Ja; Such-, Bild- und CDN-Schichten werden abgerechnet.Ja; Bild-CDN und Transformationen werden abgerechnet.
Vorgegebenes RenderingKeines. Block-Renderer kommen mit null Standard-Styling; ein unbekannter Block wird übersprungen, nie fatal.Ein Rich-Text-Renderer ist vorhanden; Styling-Entscheidungen liegen bei Ihnen.Ein Renderer für strukturierten Text ist vorhanden; Styling-Entscheidungen liegen bei Ihnen.
Funktionen abschaltenJede Funktion ist ein abschaltbares Modul; Abschalten löscht keine Daten, ein Downgrade ebenso wenig.Plangrenzen machen die Funktion unzugänglich.Plangrenzen machen die Funktion unzugänglich.
Globales Edge-NetzwerkEdge-Cache in einer Region. Ein globales PoP-Netz haben wir nicht.Globales CDN über mehrere Regionen.Globales CDN über mehrere Regionen.
App-MarktplatzKeiner. Integrationen schreibt man mit Webhooks und der API.Ein breites, ausgereiftes App-Ökosystem.Ein Plugin-Ökosystem ist vorhanden.
Enterprise-ReifeJunges Produkt; SSO und ein formales SLA stehen auf der Roadmap.SOC 2, SSO, SLA — ausgereift.SSO und SLA in höheren Plänen.
Wenn Sie ein weltweites Publikum im Millisekundenbereich bedienen und einen fertigen Integrations-Marktplatz brauchen, lautet die ehrliche Antwort: Contentful ist heute reifer. Für Teams, die die Türkei und Europa bedienen, mehrere Projekte führen und nicht möchten, dass Besucherzahlen ihre Rechnung bewegen, ist corpusctl bewusst der bessere Kompromiss.

FAQ

Häufige Fragen

Wenn Sie nicht gefunden haben, wonach Sie gesucht haben, schreiben Sie an [email protected].

Eröffnen Sie heute Ihren ersten Space

Ein Konto anzulegen dauert wenige Minuten: E-Mail-Adresse, Passwort und ein Name für Ihren Space genügen. Wir fragen nicht nach einer Karte. Brauchen Sie Hilfe bei der Migration, schreiben Sie uns.