Kenapa saya menggunakan MDX untuk menulis (dan kamu juga seharusnya)
Saya pernah menulis post blog sebagai HTML, sebagai Markdown, dan sebagai JSON yang diubah CMS menjadi HTML. MDX adalah yang paling bertahan. Ini Markdown dengan kelebihan utama: JSX. Ketika prosa Anda butuh blok kode, tabel, atau komponen khusus, Anda cukup menulisnya.
Metadata tanpa plugin
Sebagian besar setup Markdown butuh plugin frontmatter. Dengan @next/mdx, saya mengekspor metadata seperti nilai JavaScript biasa:
export const metadata = {
title: "Kenapa saya menggunakan MDX",
date: "2026-09-10",
tags: ["MDX", "Konten"],
};
Lalu komponen server mengimpor file dan membaca metadata langsung — tanpa gray-matter, tanpa tahap parsing, tanpa magic tersembunyi.
Konten tetap lokal
Keuntungan terbesar untuk situs pribadi adalah post tinggal di repository. Tanpa database, tanpa akun CMS, tanpa rate limit. Untuk menampilkan daftar post saya membaca direktori konten dengan fs, dan untuk merender satu post saya pakai dynamic import:
const { default: Post, metadata } = await import(`@/content/blog/${slug}.mdx`);
Build meng-pre-render setiap route. Pengunjung mendapat HTML statis; saya mendapat konten yang ter-version control dan mudah direview.
Kapan MDX adalah jebakan
MDX bukan CMS untuk editor non-teknis. Jika banyak orang perlu menerbitkan tanpa menyentuh kode, Anda akan butuh headless CMS atau rich text editor. Untuk developer solo yang tinggal di terminal, ini yang paling mendekati sekadar menulis.
Aturan saya: jika kontennya terlalu interaktif, pisahkan — simpan prosa di MDX dan widget interaktif sebagai komponen yang diselipkan di antaranya. Keseimbangan itulah yang membuat MDX terus muncul di toolchain saya.