Use Cases (Aktualisiert: 2.6.2026)

Ein Blog-CMS mit Claude Code bauen: Astro MDX, mehrsprachiges SEO, QA und Monetarisierung

Baue mit Claude Code und Astro MDX ein Blog-CMS mit Schema, Lokalisierung, SEO, QA und Umsatz-CTA.

Ein Blog-CMS mit Claude Code bauen: Astro MDX, mehrsprachiges SEO, QA und Monetarisierung

Ein Blog-CMS ist ein Veröffentlichungs- und Umsatzsystem

Viele technische Blogs veröffentlichen regelmäßig, erzeugen aber kaum Produktkäufe, Trainingsanfragen oder Beratungsgespräche. Das Problem liegt oft nicht im einzelnen Absatz, sondern im Ablauf: uneinheitliche Metadaten, veraltete Übersetzungen, ungeprüfte Codebeispiele, fehlende Sitemap-Einträge und ein CTA, der nicht zum Leser passt.

CMS steht für Content Management System, also ein System zum Speichern, Bearbeiten, Prüfen und Veröffentlichen von Inhalten. Mit Astro Content Collections und MDX kann dieses CMS dateibasiert bleiben und trotzdem strenge Regeln haben. Claude Code ist dann nicht nur Schreibassistent, sondern ein Agent für Content Operations: Entwurf, Lokalisierung, QA, SEO-Prüfung und Monetarisierung.

Passende interne Artikel sind Claude Code und Contentful CMS, Content-Funnel-Audit, RSS-Implementierung und Sitemap-Generierung. Als offizielle Grundlage dienen Astro Content Collections, MDX integration und Sitemap integration.

Verantwortlichkeiten sauber trennen

Die Anfrage “baue ein Blog-CMS” ist zu breit. Besser ist ein prüfbarer Auftrag mit konkreten Dateien, Regeln und Checks. Für Astro MDX sieht die Aufteilung so aus.

BereichVerantwortungGute Aufgabe für Claude Code
content schemaFrontmatter-Felder und Typen definierencontent.config.ts schreiben
MDX-ArtikelText, Tabellen, Code und CTA verwaltenEntwürfe verbessern
LokalisierungGleichen slug in allen Sprachen haltenFehlende Dateien finden, natürlich übersetzen
PreviewAnzeige vor Veröffentlichung prüfenDev-Server starten, Links prüfen
SEOtitle, description, OGP und sitemap pflegenMetadaten auditieren
QA gateFehler vor dem Deploy blockierenNode-Skripte und Checks ergänzen
MonetarisierungArtikel mit Produkt, Training oder Beratung verbindenCTA und Leserpfad prüfen

Drei konkrete Anwendungsfälle

Erstens: Ein Solo-Entwickler verkauft Templates. Ein Claude-Code-Tutorial kann zu einem Starter-Kit, einer Prompt-Bibliothek oder einem kleinen Kurs führen. Dafür braucht das CMS ctaLabel, ctaUrl, relatedPosts, updatedDate und heroImage.

Zweitens: Ein Unternehmensblog muss Fehler verhindern. Veraltete API-Namen, nicht ausführbarer Code, nur teilweise aktualisierte Übersetzungen oder fehlende OGP-Bilder kosten Vertrauen. Claude Code sollte den Review-Gate bedienen, nicht nur Text erzeugen.

Drittens: Mehrsprachiges SEO braucht einen stabilen slug. Titel dürfen lokal klingen, aber Kernthese, Codebeispiele und CTA-Absicht müssen über alle Sprachen hinweg zusammenpassen.

site/src/content/blog/claude-code-blog-cms.mdx
site/src/content/blog-en/claude-code-blog-cms.mdx
site/src/content/blog-zh/claude-code-blog-cms.mdx
site/src/content/blog-ko/claude-code-blog-cms.mdx
site/src/content/blog-es/claude-code-blog-cms.mdx
site/src/content/blog-fr/claude-code-blog-cms.mdx
site/src/content/blog-de/claude-code-blog-cms.mdx
site/src/content/blog-pt/claude-code-blog-cms.mdx
site/src/content/blog-hi/claude-code-blog-cms.mdx
site/src/content/blog-id/claude-code-blog-cms.mdx

Kopierbares Astro content schema

Ein Schema ist eine ausführbare Datenregel. Es verhindert, dass ein Artikel ohne Aktualisierungsdatum oder mit zu langer Beschreibung unbemerkt veröffentlicht wird.

// src/content.config.ts
import { defineCollection, z } from "astro:content";
import { glob } from "astro/loaders";

const blogSchema = z.object({
  title: z.string().min(20).max(80),
  description: z.string().min(40).max(120),
  pubDate: z.coerce.date(),
  updatedDate: z.coerce.date(),
  category: z.enum(["getting-started", "tips-and-tricks", "use-cases", "comparison", "advanced"]),
  tags: z.array(z.string()).min(2).max(8),
  heroImage: z.string().startsWith("/images/"),
  draft: z.boolean().default(false),
  requireAllLocales: z.boolean().default(false),
  lang: z.enum(["ja", "en", "zh", "ko", "es", "fr", "de", "pt", "hi", "id"]),
  ctaLabel: z.string().max(40).optional(),
  ctaUrl: z.string().url().optional(),
});

const makeBlogCollection = (base: string) =>
  defineCollection({
    loader: glob({ pattern: "**/*.{md,mdx}", base }),
    schema: blogSchema,
  });

export const collections = {
  blog: makeBlogCollection("./src/content/blog"),
  "blog-en": makeBlogCollection("./src/content/blog-en"),
  "blog-zh": makeBlogCollection("./src/content/blog-zh"),
  "blog-ko": makeBlogCollection("./src/content/blog-ko"),
  "blog-es": makeBlogCollection("./src/content/blog-es"),
  "blog-fr": makeBlogCollection("./src/content/blog-fr"),
  "blog-de": makeBlogCollection("./src/content/blog-de"),
  "blog-pt": makeBlogCollection("./src/content/blog-pt"),
  "blog-hi": makeBlogCollection("./src/content/blog-hi"),
  "blog-id": makeBlogCollection("./src/content/blog-id"),
};

MDX-frontmatter mit CTA

MDX ist Markdown, das Komponenten verwenden kann. Das frontmatter ist die Metadatenkarte für Listen, OGP, RSS, Sitemap und CTA.

---
title: "Ein Blog-CMS mit Claude Code bauen: Astro MDX, mehrsprachiges SEO, QA und Monetarisierung"
description: "Baue mit Claude Code und Astro MDX ein Blog-CMS mit Schema, Lokalisierung, SEO, QA und Umsatz-CTA."
pubDate: "2025-12-22"
updatedDate: "2026-06-02"
category: "use-cases"
tags: ["Claude Code", "CMS", "Blog", "Astro", "MDX"]
heroImage: "/images/hero/hero-036.png"
lang: "de"
ctaLabel: "Claude-Code-Content-Beratung buchen"
ctaUrl: "https://example.com/consulting"
---

## Erster Abschnitt

Dieser Artikel verbindet Redaktion, Lokalisierung, SEO, QA und Monetarisierungs-CTA in einem Workflow.

Node-Skript für den Review-Gate

Speichere es als scripts/validate-blog-cms.mjs und führe node scripts/validate-blog-cms.mjs claude-code-blog-cms aus.

// scripts/validate-blog-cms.mjs
import fs from "node:fs";
import path from "node:path";

const slug = process.argv[2];
if (!slug) {
  console.error("Usage: node scripts/validate-blog-cms.mjs <slug>");
  process.exit(1);
}

const locales = [["blog", "ja"], ["blog-en", "en"], ["blog-zh", "zh"], ["blog-ko", "ko"], ["blog-es", "es"], ["blog-fr", "fr"], ["blog-de", "de"], ["blog-pt", "pt"], ["blog-hi", "hi"], ["blog-id", "id"]];
const root = path.join(process.cwd(), "src", "content");
const failures = [];

function readFrontmatter(source) {
  const match = source.match(/^---\n([\s\S]*?)\n---/);
  if (!match) return {};
  return Object.fromEntries(match[1].split("\n").flatMap((line) => {
    const index = line.indexOf(":");
    if (index === -1) return [];
    return [[line.slice(0, index).trim(), line.slice(index + 1).trim().replace(/^"|"$/g, "")]];
  }));
}

for (const [dir, lang] of locales) {
  const file = path.join(root, dir, `${slug}.mdx`);
  const source = fs.existsSync(file) ? fs.readFileSync(file, "utf8") : "";
  const data = readFrontmatter(source);
  if (!source) failures.push(`${dir}: missing file`);
  if (data.lang !== lang) failures.push(`${dir}: wrong lang`);
  if (!data.updatedDate) failures.push(`${dir}: missing updatedDate`);
  if ((data.description || "").length > 120) failures.push(`${dir}: description too long`);
  if (!/https:\/\/docs\.astro\.build/.test(source)) failures.push(`${dir}: missing official docs`);
  if (!/\]\(\/blog\/claude-code-/.test(source)) failures.push(`${dir}: missing internal link`);
  if (!/(CTA|Beratung|Training|consult)/i.test(source)) failures.push(`${dir}: missing CTA`);
  if ((source.match(/`{3}/g) || []).length < 6) failures.push(`${dir}: fewer than three code blocks`);
}

if (failures.length) {
  console.error(failures.map((item) => `- ${item}`).join("\n"));
  process.exit(1);
}
console.log(`OK: ${slug} passed localized CMS checks.`);

Prompt vom Entwurf zur Veröffentlichung

Rewrite the article for slug <slug> as a production-ready Astro MDX blog post.
- Edit only the localized files for this slug.
- Keep heroImage and category.
- Add updatedDate: "2026-06-02".
- Keep description within 120 characters.
- Include 3 real use cases, concrete pitfalls, runnable code, official Astro docs, internal links, and a monetization CTA.
- Report changed files and focused check results.

Fehlerbilder und getestetes Ergebnis

Typische Fehler sind: nur eine Sprache aktualisieren, Claude Code zu viele Dateien bearbeiten lassen, Pseudocode als Implementierung veröffentlichen, RSS/Sitemap/OGP vergessen oder einen CTA ohne Nutzen platzieren. Ein besserer Pfad führt über Checkliste, Template, Training und Beratung.

Ich habe den Ablauf in einem kleinen Astro-Projekt getestet. Das Schema blockierte fehlende Daten, das Node-Skript fand zu lange descriptions, fehlende offizielle Links, fehlende interne Links und fehlende CTA-Hinweise. Natürlichkeit der deutschen Übersetzung und Stärke des Beratungsangebots bleiben Aufgaben für die menschliche Schlussredaktion.

#Claude Code #CMS #Blog #Astro #MDX
Kostenlos

Kostenloses PDF: Claude-Code-Cheatsheet

E-Mail eintragen und eine Seite mit Befehlen, Review-Gewohnheiten und sicheren Workflows herunterladen.

Wir schützen Ihre Daten und senden keinen Spam.

Masa

Über den Autor

Masa

Engineer für praktische Claude-Code-Workflows und Team-Einführung.