Kamaankamaan

Headless CMS für Astro: warum Kamaan zum statischen Modell passt

Astro braucht einen sauberen JSON-Endpoint, kein proprietäres SDK. So bindest du Kamaan per REST API ein, fügst mehrsprachige Routen hinzu und stellst einen SaaS-Blog in unter einer Stunde live.

Junaid Khalid
Junaid Khalid
30. Mai 2026 · 10 min read

Du hast dich für Astro entschieden, weil dein Blog schnell, statisch und frei vom Framework-Ballast sein soll, den du nicht brauchst. Dann hast du den CMS-Markt geöffnet, und jedes Tool wollte Schema-as-Code, eine Abrechnungsstufe pro Site oder ein eigenes SDK, das dich an eine Plattform bindet. Das ist die Lücke. Astro passt sauber zu jeder REST API: Standard-JSON, fetch() und getStaticPaths() ist alles, was es wirklich braucht. Die Frage ist nicht, welches CMS das schickste Astro-Plugin hat. Die Frage ist, welches CMS Astro einen sauberen JSON-Endpoint liefert und dir aus dem Weg geht, während das Produkt wächst.

Auf einen Blick

  • Astros getStaticPaths() plus ein Standard-REST-Endpoint ist die komplette Integration. Kein SDK-Lock-in, keine Schema-Konfiguration für einen Blog.
  • Kamaan liefert Artikelinhalte über eine standardisierte JSON-REST-API aus. Du holst sie in Astro genauso ab wie jede andere HTTP-Quelle.
  • Das Setup von einem frischen Astro-Projekt bis zum mehrsprachigen Blog dauert beim ersten Verdrahten 40 bis 60 Minuten, wobei die CMS-Seite beim ersten veröffentlichten Beitrag bei rund 14 Minuten liegt.
  • Auto-Multilingual Delivery macht aus einem englischen Beitrag 99+ Sprachversionen mit korrekten hreflang-Tags, ausgeliefert unter /es/blog, /de/blog, /fr/blog, /it/blog. Astro rendert sie mit derselben dynamischen Route.
  • Kamaan ist die Kommandozentrale für jeden SaaS-Blog, den du betreibst, bedient aus Claude, ChatGPT, Cursor oder jedem MCP-Client. Astro bleibt eine dünne Präsentationsschicht.

Warum Astro und ein Headless CMS zusammengehören

Astro liefert Inhalte als statisches HTML aus, wo immer es geht, und fällt nur auf serverseitig gerenderte oder live-gefetchte Routen zurück, wenn der Inhalt zur Request-Zeit wirklich aktualisiert werden muss. Ein Blog ist die kanonische statische Workload: einmal schreiben, einmal rendern, jahrelang ausliefern. Die Content Layer API wurde genau für diesen Fall gebaut. Du definierst einen Loader, der Beiträge aus jeder Quelle zieht, und Astro baut beim Kompilieren eine Route pro Beitrag.

Ein Headless-Blog-CMS, das Standard-JSON über HTTP ausgibt, passt ohne Reibung in dieses Modell. Du schreibst einen Loader, zeigst auf das CMS, und Astro übernimmt Routing, Rendering und SEO. Kein SDK. Kein Schema-as-Code. Keine proprietäre Query-Sprache. Wenn das CMS morgen ausfällt, läuft dein Build trotzdem, weil der Inhalt schon zum Build-Zeitpunkt geholt wurde.

Der Fehler der meisten Astro-Setups ist, mit einem meinungsstarken SDK zu starten. Sanity will, dass du Schemas in JavaScript schreibst. Storyblok liefert ein Block-Tree-Modell, das sich für einen 600-Wörter-Beitrag schwer anfühlt. Contentful verlangt 300 Dollar pro Monat, um die Content-Stufe freizuschalten, die zum typischen Volumen eines Multi-Produkt-Gründers passt. Diese Tools wurden für Content-Systeme mit Dutzenden Redakteuren und Freigabe-Workflows entworfen, nicht für eine SaaS-Gründerin, die bis Freitag einen Blog live haben will.

Das Standard-Fetch-Muster in Astro

Das Muster ist dasselbe, egal ob du Astros Content Layer API oder ein simples fetch() in getStaticPaths() nutzt. Du fragst das CMS nach der Artikelliste, baust eine Route pro Slug und übergibst den Artikel-Body als Props.

Kamaan Blog-Thumbnail: Headless CMS für Astro, mit Untertitel Statisches Blog-Setup mit einem REST-API-CMS, von null bis live

So sieht die Routendatei aus. src/pages/blog/[slug].astro:

---
export async function getStaticPaths() {
  const res = await fetch("https://api.kamaan.io/v1/sites/your-site-id/articles?language=en");
  const data = await res.json();

  return data.articles.map((article) => ({
    params: { slug: article.slug },
    props: { article },
  }));
}

const { article } = Astro.props;
---
<html lang="en">
  <head>
    <title>{article.meta_title}</title>
    <meta name="description" content={article.meta_description} />
    <link rel="canonical" href={`https://yoursite.com/blog/${article.slug}`} />
  </head>
  <body>
    <article>
      <h1>{article.title}</h1>
      <div set:html={article.content_html} />
    </article>
  </body>
</html>

Das ist die gesamte Route. getStaticPaths() läuft einmal beim Build, holt die Artikelliste und gibt eine Route pro Slug aus. Astro rendert jede beim Build zu statischem HTML. Für den Artikel selbst brauchst du kein clientseitiges JavaScript. Pack die Astro Content Layer API obendrauf, wenn du typsicheren Zugriff willst, oder bleib bei nacktem fetch(), wenn du null Abstraktion willst.

Wo bestehende CMS-Tools für Astro zu kurz greifen

Drei Fehlerbilder tauchen immer wieder auf, wenn Gründer ein CMS mit Astro koppeln.

Schema-as-Code ist Overkill für einen Blog. Sanity erwartet, dass du ein Schema in JavaScript definierst, bevor du auch nur einen Beitrag anlegen kannst. Für einen strukturierten Commerce-Katalog ist das korrekt. Für einen Blog mit Titel, Body, Slug und Meta-Description hast du eine Stunde Schemas konfiguriert, um das zu erreichen, was eine Markdown-Datei längst leistet. Die Astro Content Layer API existiert teils, weil das Framework genau diesen Overhead bemerkt und eine CMS-agnostische Schicht gebaut hat.

Per-Space-Abrechnung bestraft Multi-Produkt-Gründer. Contentful und Storyblok rechnen pro Space ab, was ungefähr einem Space pro Site entspricht. Eine Gründerin, die drei SaaS-Produkte auf Astro betreibt, zahlt für drei Spaces, bevor sie überhaupt ein Paid-Feature erreicht. Kamaans pauschale 19 Dollar pro Monat decken unbegrenzte Sites unter einem Account ab, ohne Per-Site-Gebühr. Ein Dashboard, eine Rechnung, alle Blogs.

Keine native Mehrsprachigkeit. Ghost hat keine. Sanity braucht eine eigene i18n-Konfiguration. Contentful verlangt ein Locale-Add-on. Wenn du fünf Sprachmärkte bedienst, summiert sich das auf einen nennenswerten Anteil der CMS-Rechnung im ersten Jahr. Kamaans Auto-Multilingual Delivery veröffentlicht in dem Moment, in dem du auf Englisch publizierst, eine Version jedes Artikels in jeder Sprache deines Plans, jede mit eigener URL und korrektem hreflang. Null zusätzliche Schritte.

Kamaan mit Astro in unter einer Stunde einrichten

Schritt eins: Lege einen Kamaan-Account an und füge eine Site hinzu. Die CMS-Seite dauert von der Account-Erstellung bis zum ersten veröffentlichten Artikel rund 14 Minuten. Der erste Monat ist in jedem Plan kostenlos, du kannst die komplette Pipeline also verdrahten, bevor du irgendetwas zahlst.

Schritt zwei: Installiere Astro und scaffolde die Routen.

npm create astro@latest my-saas-blog
cd my-saas-blog
npm install

Schritt drei: Kopiere das getStaticPaths()-Muster von oben in src/pages/blog/[slug].astro. Setze deine Kamaan-Site-ID in eine Umgebungsvariable. Füge src/pages/blog/index.astro hinzu, um Artikel aufzulisten.

Schritt vier: Behandle mehrsprachige Routen. Astros dynamische Route [lang]/blog/[slug].astro spiegelt Kamaans URL-Muster. Hole die Artikelliste mit ?language=es, ?language=de und so weiter. Kamaan liefert übersetzten Titel, content_html, meta_title, Slug und Alt-Text für jede Sprache. Gib hreflang-Tags im Article-Head aus Kamaans Translation-Map aus.

{article.translations.map((t) => (
  <link rel="alternate" hreflang={t.language} href={`https://yoursite.com/${t.language}/blog/${t.slug}`} />
))}

Das ist die vollständige Integration. Statischer Build, mehrsprachige Routen, hreflang serverseitig ausgegeben, Inhalte aus einer REST API geholt.

Vergleich: Astro-CMS-Optionen in den Dimensionen, die zählen

Die Tabelle unten vergleicht, wie die gängigsten Astro-kompatiblen Headless-CMS-Tools mit Setup-Zeit, Multi-Site-Abrechnung, Mehrsprachigkeit, Schema-Konfiguration, KI-Publishing und monatlichem Einstiegspreis umgehen.

Headless-CMS-Vergleich für Astro: Kamaan vs Sanity vs Storyblok vs Contentful bei Astro-Integration, Setup-Zeit, Multi-Site, Mehrsprachigkeit, Schema-Konfiguration, KI-Publishing und monatlichem Einstiegspreis

Dimension Kamaan Sanity Storyblok Contentful
Astro-Integration Standard-REST + fetch() Offizielles SDK + GROQ-Query-Sprache Offizielle Astro-Integration REST oder GraphQL
Setup des ersten Blogs ~14 Min CMS-Seite, 40-60 Min komplette Astro-Verdrahtung ~45 Min inklusive Schema-Konfiguration ~30 Min mit der Integration ~40 Min für das erste Content-Modell
Multi-Site-Account Unbegrenzte Sites, pauschal 19 Dollar pro Monat Pro-Projekt-Abrechnung Pro-Space-Abrechnung Pro-Space-Abrechnung
Mehrsprachigkeit out of the box 99+ Sprachen beim Publizieren i18n pro Schema konfigurieren Plan pro Sprache Locale-Add-on
Schema-Konfiguration für einen Blog Keine nötig Schema-as-Code Block-Library-Setup Content-Modelle
KI-Publishing Kamaan MCP Server und ChatGPT Actions Nativ keines Nativ keines Nativ keines
Monatlicher Einstieg 19 Dollar pro Monat, unbegrenzte Sites 15 Dollar pro Projekt auf der Paid-Stufe 106 Dollar pro Space 300 Dollar pro Monat auf der ersten Paid-Stufe

Der Vergleich dreht sich nicht darum, wer das hübscheste Astro-Starter-Template hat. Er dreht sich darum, welches CMS dir aus dem Weg geht, wenn du ausliefern willst.

Szenarien aus der Praxis

Eine Solo-Gründerin baut ein Developer-Tools-SaaS auf Astro. Sie will einen Blog vor dem Launch live haben. Sie legt einen Kamaan-Account an, fügt ihre Site hinzu, schreibt ihren ersten Artikel im Kamaan-Dashboard und drückt auf publizieren. Innerhalb von Minuten ist der Artikel als JSON unter api.kamaan.io verfügbar. Sie kopiert das getStaticPaths()-Muster in ihr Astro-Projekt, deployt auf Vercel, und der Artikel ist live unter yoursite.com/blog/first-post. Gesamtzeit von null bis Live-Blog: unter einer Stunde. Der Artikel wird automatisch auf Spanisch, Deutsch, Französisch und Italienisch unter /es/blog, /de/blog, /fr/blog, /it/blog mit korrektem hreflang publiziert. Sie hat keine einzige Zeile Internationalisierungscode geschrieben.

Ein bootstrapped Gründer betreibt drei SaaS-Produkte auf Astro. Er braucht einen Blog auf jedem, weigert sich aber, drei Contentful-Spaces zu bezahlen. Er legt einen Kamaan-Account an, fügt alle drei Sites hinzu und nutzt dieselbe getStaticPaths()-Route in allen drei Astro-Projekten mit einer anderen Site-ID pro Projekt. Ein Account deckt alle drei Blogs für pauschal 19 Dollar pro Monat ab. Er fährt den kompletten Content-Betrieb aus einem Claude-Chat über Kamaans MCP Server: Outline, Draft, Edit, Publish, Site wechseln, wiederholen.

Verwandt auf Kamaan

FAQ

Kann ich Astros Content Layer API mit Kamaan nutzen?

Ja. Schreib einen Custom-Loader, der https://api.kamaan.io/v1/sites/{site_id}/articles aufruft und das Artikel-Array zurückgibt. Die Content Layer API übernimmt Caching und Typgenerierung ab da. Die Form der Kamaan-REST-Antwort mappt sauber auf Astro-Content-Einträge.

Muss ich ein Schema schreiben, bevor ich in Kamaan einen Artikel anlegen kann?

Nein. Das Article CMS in Kamaan bringt Titel, Rich-Text-Body, Slug, Meta-Felder, Featured Image, Scheduling und Übersetzungs-Support out of the box mit. Es gibt keinen Schema-Konfigurationsschritt für einen Blog. Wenn du strukturierte Inhalte für Non-Blog-Use-Cases brauchst, ist das eine andere Produktkategorie.

Wie funktioniert Mehrsprachigkeit zwischen Kamaan und Astro?

Kamaans Auto-Multilingual Delivery veröffentlicht in dem Moment, in dem du auf Englisch publizierst, eine Version jedes Artikels in jeder Sprache deines Plans. Jede Übersetzung hat ihre eigene URL unter /{lang}/blog/{slug} mit korrektem hreflang. Auf der Astro-Seite holst du die Artikelliste je Sprache mit dem Query-Parameter ?language= und baust eine Route pro Sprache. Das gleiche getStaticPaths()-Muster funktioniert für jedes Locale.

Was liefert die Kamaan REST API für einen Astro-Build zurück?

Jeder Artikel enthält title, slug, content_html, meta_title, meta_description, focus_keyword, keywords array, og_title, og_description, twitter_title, twitter_description, featured_image_url, featured_image_alt, language, published_at, updated_at und eine Translations-Map, die jede verfügbare Sprachversion desselben Artikels mit lokalisiertem Slug und URL auflistet.

Bricht der Build, wenn Kamaan vorübergehend nicht erreichbar ist?

Wenn du mit output: "static" in deiner Astro-Config baust, wurde der Inhalt zum Build-Zeitpunkt geholt und die deployte Site liefert weiter aus. Künftige Builds brauchen Kamaan erreichbar. Für Live-Inhalte, die sich zur Request-Zeit aktualisieren, nutze Astros Server-Output-Modus und fetch() innerhalb der Page-Komponente statt getStaticPaths(). Kamaan unterstützt beide Muster über denselben REST-Endpoint.

Kann ich aus Claude oder ChatGPT in Kamaan publizieren, ohne das Gespräch zu verlassen?

Ja. Der Kamaan MCP Server verbindet Claude, Cursor und jeden MCP-Client. Die ChatGPT-Actions-Integration macht dasselbe aus ChatGPT. Fahr deinen kompletten Content-Betrieb ohne Dashboard.

Gibt es ein Kamaan-Plugin für Astro Studio oder eine Astro-Deployment-Plattform?

Die Integration ist schlichtes REST, also wird kein Plugin gebraucht. Deploy deine Astro-Site auf Vercel, Netlify, Cloudflare Pages, Astro Studio oder irgendwo sonst, wo Node beim Build läuft. Kamaan ist es egal, wo deine Astro-Site gehostet ist.

Was kostet Kamaan im Vergleich zu anderen Astro-freundlichen CMS-Tools?

Kamaan kostet pauschal 19 Dollar pro Monat, unbegrenzte Sites unter einem Account, erster Monat kostenlos. Sanity kostet 15 Dollar pro Projekt auf der Paid-Stufe mit separater i18n-Konfiguration. Storyblok kostet 106 Dollar pro Space auf der ersten Paid-Stufe. Contentful kostet 300 Dollar pro Monat auf der ersten Paid-Stufe. Über drei Sites mit Übersetzung beträgt der Unterschied rund 15x gegenüber Contentful und mehrere Vielfache gegenüber Storyblok.

Starte mit Kamaan

Ein Dashboard, jeder Astro-Blog, den du betreibst

Kamaan gibt dir ein Dashboard für alle deine Produkt-Blogs, automatisch übersetzt in 99+ Sprachen bei jeder Veröffentlichung. Ein Account deckt unbegrenzte Sites für pauschal 19 Dollar pro Monat ab. Der MCP Server lässt dich aus Claude oder ChatGPT publizieren. Erster Monat kostenlos.

Starte kostenlos auf kamaan.io

Frequently asked

FAQ · 8 ITEMS
Kann ich Astros Content Layer API mit Kamaan nutzen?

Ja. Schreib einen Custom-Loader, der `https://api.kamaan.io/v1/sites/{site_id}/articles` aufruft und das Artikel-Array zurückgibt. Die Content Layer API übernimmt Caching und Typgenerierung ab da. Die Form der Kamaan-REST-Antwort mappt sauber auf Astro-Content-Einträge.

Muss ich ein Schema schreiben, bevor ich in Kamaan einen Artikel anlegen kann?

Nein. Das Article CMS in Kamaan bringt Titel, Rich-Text-Body, Slug, Meta-Felder, Featured Image, Scheduling und Übersetzungs-Support out of the box mit. Es gibt keinen Schema-Konfigurationsschritt für einen Blog. Wenn du strukturierte Inhalte für Non-Blog-Use-Cases brauchst, ist das eine andere Produktkategorie.

Wie funktioniert Mehrsprachigkeit zwischen Kamaan und Astro?

Kamaans Auto-Multilingual Delivery veröffentlicht in dem Moment, in dem du auf Englisch publizierst, eine Version jedes Artikels in jeder Sprache deines Plans. Jede Übersetzung hat ihre eigene URL unter `/{lang}/blog/{slug}` mit korrektem hreflang. Auf der Astro-Seite holst du die Artikelliste je Sprache mit dem Query-Parameter `?language=` und baust eine Route pro Sprache. Das gleiche `getStaticPaths()`-Muster funktioniert für jedes Locale.

Was liefert die Kamaan REST API für einen Astro-Build zurück?

Jeder Artikel enthält title, slug, content_html, meta_title, meta_description, focus_keyword, keywords array, og_title, og_description, twitter_title, twitter_description, featured_image_url, featured_image_alt, language, published_at, updated_at und eine Translations-Map, die jede verfügbare Sprachversion desselben Artikels mit lokalisiertem Slug und URL auflistet.

Bricht der Build, wenn Kamaan vorübergehend nicht erreichbar ist?

Wenn du mit `output: "static"` in deiner Astro-Config baust, wurde der Inhalt zum Build-Zeitpunkt geholt und die deployte Site liefert weiter aus. Künftige Builds brauchen Kamaan erreichbar. Für Live-Inhalte, die sich zur Request-Zeit aktualisieren, nutze Astros Server-Output-Modus und `fetch()` innerhalb der Page-Komponente statt `getStaticPaths()`. Kamaan unterstützt beide Muster über denselben REST-Endpoint.

Kann ich aus Claude oder ChatGPT in Kamaan publizieren, ohne das Gespräch zu verlassen?

Ja. Der Kamaan MCP Server verbindet Claude, Cursor und jeden MCP-Client. Die ChatGPT-Actions-Integration macht dasselbe aus ChatGPT. Fahr deinen kompletten Content-Betrieb ohne Dashboard.

Gibt es ein Kamaan-Plugin für Astro Studio oder eine Astro-Deployment-Plattform?

Die Integration ist schlichtes REST, also wird kein Plugin gebraucht. Deploy deine Astro-Site auf Vercel, Netlify, Cloudflare Pages, Astro Studio oder irgendwo sonst, wo Node beim Build läuft. Kamaan ist es egal, wo deine Astro-Site gehostet ist.

Was kostet Kamaan im Vergleich zu anderen Astro-freundlichen CMS-Tools?

Kamaan kostet pauschal 19 Dollar pro Monat, unbegrenzte Sites unter einem Account, erster Monat kostenlos. Sanity kostet 15 Dollar pro Projekt auf der Paid-Stufe mit separater i18n-Konfiguration. Storyblok kostet 106 Dollar pro Space auf der ersten Paid-Stufe. Contentful kostet 300 Dollar pro Monat auf der ersten Paid-Stufe. Über drei Sites mit Übersetzung beträgt der Unterschied rund 15x gegenüber Contentful und mehrere Vielfache gegenüber Storyblok.

Junaid Khalid
Written by
Junaid Khalid

Junaid Khalid is the founder of Kamaan, a headless blog CMS that auto-publishes in five languages and lets you manage every product blog from one dashboard.