Du schreibst eine technische Dokumentation in Standard-Markdown, doch sobald du einen interaktiven Rechner oder eine dynamische Vorschau einbetten willst, stößt du an die Grenzen von reinem Text: Entwickler weichen auf unleserliche iframe-Hacks oder fragile HTML-Snippets aus. Das Resultat ist entweder leblose Dokumentation oder unkoordinierter Spaghetticode.
MDX erweitert reguläres Markdown um die direkte Einbettung von React-Komponenten (JSX). Zur Build-Zeit wird die .mdx-Datei über @next/mdx in statische Server Components (RSC) kompiliert, wodurch lesbare Dokumente entstehen, die punktgenaue Client-Islands für interaktive Playgrounds ohne Hydration-Overhead laden.
MDX macht Dokumentation lebendig: Statischer Fließtext rendert als leichtgewichtiges Server-HTML, während interaktive Komponenten punktgenau als isolierte Inseln geladen werden.
1## Architektur-Tipp2
3Nutze MDX für technische Dokumentation:4
5<TileCallout type="tip" title="Zero Runtime">6 Statische Markdown-Texte rendern als reines Server-HTML.7 Nur interaktive Inseln laden Client-JavaScript.8</TileCallout>Statische Markdown-Texte rendern als reines Server-HTML. Nur interaktive Inseln laden Client-JavaScript.
Wie MDX im Next.js App Router funktioniert
MDX wird während des Build-Prozesses in reguläres JavaScript und JSX übersetzt. Dadurch entstehen native React-Komponenten mit voller Typsicherheit:
1. Reines Markdown
Überschriften, Absätze, Zitate und Listen werden als schlanke semantische HTML-Tags ohne Client-JavaScript gerendert.
2. Design-System Mapping
Über mdx-components.tsx werden Standard-Tags wie <h2> oder <code> global auf gestylte Design-System-Komponenten gemappt.
3. Isolierte Client-Islands
Schwere Playgrounds werden als separate Dateien mit "use client" ausgelagert und nahtlos im Dokument eingebettet.
Do's & Don'ts: Architektonische Entscheidungen
- Markdown für semantische Struktur und Fließtext nutzen
- Interaktive Playgrounds in separate Dateien (
"use client") auslagern - Typisierte Frontmatter-Daten per Zod-Schema zur Build-Zeit validieren
- Globales Komponenten-Mapping via
mdx-components.tsxpflegen
useStateoder Client-Hooks direkt in der.mdx-Datei deklarieren- H1-Überschriften (
#) im Fließtext verstreuen (bricht Barrierefreiheit) - Riesige unoptimierte Drittbibliotheken ohne Code-Splitting in MDX importieren
- Fragile Inline-Styles anstelle des zentralen Design-Systems verwenden
MDX entfaltet seine volle Stärke im Zusammenspiel mit einer gut sortierten Komponenten-Bibliothek. Erfahre mehr in unserer Übersicht zu modernen React-Komponenten-Bibliotheken.
Checkliste: MDX in der Praxis
- Keine Client-Hooks im MDX:
useState,useEffectund Event-Handler liegen in separaten Client-Dateien. - Saubere Überschriften: Kein
#(H1) im Content vorhanden; ausschließlich##und###verwendet. - Frontmatter synchron:
title,slugunddescriptionstimmen mit den System-Metadaten überein. - Build-Integrität gesichert:
npm run buildkompiliert alle MDX-Seiten fehlerfrei zu statischem HTML. - Plaintext-Tauglichkeit: Text bleibt auch nach dem Entfernen aller JSX-Tags für RAG-Bots vollständig lesbar.