Ein wartungsfreier Blog mit MDX und Next.js 15
Wie man einen git-basierten Blog mit MDX, gray-matter und dem Next.js App Router baut — ganz ohne Datenbank.

Dies ist ein technischer Artikel für Entwickler. Sie führen einen Salon, ein Restaurant oder einen Handwerksbetrieb? Dann sind diese Artikel für Sie: Was eine Website wirklich kostet und was Ihre Website wirklich braucht.
Viele kleine Websites überkonstruieren ihren Blog. Man richtet ein CMS ein, konfiguriert Webhooks, stellt eine Datenbank bereit — und verbringt mehr Zeit mit Infrastruktur als mit dem Schreiben. MDX mit dem Next.js App Router macht all das überflüssig: Ihre Inhalte liegen im Repository, versioniert neben Ihrem Code, mit null Laufzeit-Abhängigkeiten.
Warum MDX statt Headless-CMS
Ein Headless-CMS wie Sanity oder Contentful ist die richtige Wahl, wenn ein nicht-technisches Team Inhalte veröffentlichen muss. Für den persönlichen Blog eines Entwicklers bringt es unnötige Kopplung mit sich:
- Cold-Start-Latenz — jeder Seitenaufbau ruft eine externe API auf
- Verfügbarkeits-Abhängigkeit — fällt Ihr CMS aus, fällt Ihr Blog mit
- Kontextwechsel — Schreiben in einem Browser-Editor statt in Ihrer IDE
MDX dreht das um. Ein Inhalt ist eine .mdx-Datei. Das Deployment ist ein git push. Es gibt kein CMS zu warten.
Projektstruktur
content/
blog/
nextjs-15-architecture.mdx
trading-bot-design.mdx
lib/
mdx.ts ← Frontmatter + Inhalt parsen
app/[locale]/blog/
page.tsx ← Übersicht
[slug]/page.tsx ← Detail
MDX-Dateien mit gray-matter parsen
Das Herzstück des Systems ist eine einzige Utility, die .mdx-Dateien von der Festplatte liest und auf Ihr Datenmodell abbildet:
ts
gray-matter trennt das YAML-Frontmatter vom Textkörper. Der Rest ist reines TypeScript — in dieser Phase wird keine spezielle MDX-Laufzeit benötigt.
MDX im App Router rendern
Für die Detailseite empfiehlt Next.js @next/mdx oder das leichtere next-mdx-remote. Da wir Dateien zur Laufzeit laden (nicht statisch importieren), passt next-mdx-remote besser:
ts
MDXRemote aus dem /rsc-Export ist eine React Server Component — es kompiliert und rendert MDX auf dem Server, mit null Client-JavaScript.
Frontmatter-Schema
Eine konsistente Frontmatter-Struktur verhindert Sonderfälle auf der Übersichtsseite:
yaml
Lassen Sie bei Entwürfen published: false — der getMdxPosts-Filter schließt sie aus, ohne das Routing zu berühren.
Statische Generierung mit generateStaticParams
Für maximale Performance rendern Sie alle Beiträge zur Build-Zeit vor:
ts
Zusammen mit next/image für die Titelbilder und einem CDN vor Vercel sinkt die Time to First Byte auf einstellige Millisekunden.
Eigene MDX-Komponenten hinzufügen
Einer der größten Vorteile von MDX ist das Einbetten von React-Komponenten in den Fließtext. Bilden Sie Komponentennamen an einer Stelle auf Implementierungen ab:
ts
Jetzt kann jede .mdx-Datei <Callout> oder <CodeBlock> inline verwenden.
Abwägungen
Was Sie gewinnen:
- Keine Datenbank, keine CMS-API, keine Webhooks
- Inhalte in git versioniert — Entwürfe sind Branches, Reviews sind PRs
- Volles IDE-Tooling: Autovervollständigung, Rechtschreibprüfung, Refactoring
Worauf Sie verzichten:
- Kein visueller Editor für nicht-technische Mitarbeitende
- Keine integrierte Medienverwaltung (nutzen Sie Cloudinary oder
public/) - Erneutes Deployment zum Veröffentlichen nötig (für allein gepflegte Seiten akzeptabel)
Fazit
Für eine Website, die ein einzelner Entwickler pflegt, ist ein MDX-basierter Blog genau das richtige Maß an Komplexität. Das Setup passt in zwei Dateien, skaliert ohne Datenbank auf Hunderte Beiträge und hält das Schreiberlebnis in den Werkzeugen, die Sie ohnehin nutzen. Der einzige Wartungsaufwand ist ein gelegentliches npm update für gray-matter und next-mdx-remote.
Sie arbeiten an etwas Ähnlichem?
Ich baue schnelle Websites und Buchungssysteme für kleine Unternehmen in ganz Europa — freiberuflich, remote. Antwort innerhalb von 24 Stunden.
Kontakt aufnehmenÄhnliche Artikel
Website für Handwerker: Anfragen statt verpasster Anrufe
Warum Handwerksbetriebe Aufträge am Telefon verlieren — und wie eine Website mit Anfrageformular, Foto-Upload und Notdienst-Kontakt daraus planbare Anfragen macht. Mit klickbarer Demo.
Artikel lesenTreatwell, Planity & Co. oder eigene Website mit Terminbuchung?
Was Buchungsplattformen für Salons wirklich leisten, was sie dauerhaft kosten — und wann sich eine eigene Website mit Online-Terminbuchung lohnt. Ein ehrlicher Vergleich, kein Entweder-oder.
Artikel lesen