MDX combines Markdown with JSX, making it perfect for content-rich applications. Here’s how to set it up in Next.js.

Installation

npm install @next/mdx @mdx-js/loader @mdx-js/react

Configuration

// next.config.js
const withMDX = require('@next/mdx')({
  extension: /.mdx?$/,
})

module.exports = withMDX({
  pageExtensions: ['js', 'jsx', 'ts', 'tsx', 'md', 'mdx'],
})

Creating MDX Content

# My Blog Post

This is **markdown** content with React components!

<CustomComponent prop="value" />