
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
@next/mdx
Advanced tools
Use [MDX](https://github.com/mdx-js/mdx) with [Next.js](https://github.com/vercel/next.js)
For usage with the app directory see the section below.
npm install @next/mdx @mdx-js/loader
or
yarn add @next/mdx @mdx-js/loader
Create a next.config.js in your project
// next.config.js
const withMDX = require('@next/mdx')()
module.exports = withMDX()
Optionally you can provide MDX plugins:
// next.config.js
const withMDX = require('@next/mdx')({
options: {
remarkPlugins: [],
rehypePlugins: [],
},
})
module.exports = withMDX()
Optionally you can add your custom Next.js configuration as parameter
// next.config.js
const withMDX = require('@next/mdx')()
module.exports = withMDX({
webpack(config, options) {
return config
},
})
By default MDX will only match and compile MDX files with the .mdx extension.
However, it can also be optionally configured to handle markdown files with the .md extension, as shown below:
// next.config.js
const withMDX = require('@next/mdx')({
extension: /\.(md|mdx)$/,
})
module.exports = withMDX()
In addition, MDX can be customized with compiler options, see the mdx documentation for details on supported options.
Define the pageExtensions option to have Next.js handle .md and .mdx files in the pages directory as pages:
// next.config.js
const withMDX = require('@next/mdx')({
extension: /\.mdx?$/,
})
module.exports = withMDX({
pageExtensions: ['js', 'jsx', 'ts', 'tsx', 'md', 'mdx'],
})
Follow this guide from the MDX docs.
For usage with the app directory see below.
npm install @next/mdx
or
yarn add @next/mdx
Create an mdx-components.js file at the root of your project with the following contents:
// Allows customizing built-in components, e.g. to add styling.
const components = {
// h1: ({ children }) => <h1 style={{ fontSize: "100px" }}>{children}</h1>,
}
export function useMDXComponents() {
return components
}
Create a next.config.js in your project
// next.config.js
const withMDX = require('@next/mdx')({
// Optionally provide remark and rehype plugins
options: {
// If you use remark-gfm, you'll need to use next.config.mjs
// as the package is ESM only
// https://github.com/remarkjs/remark-gfm#install
remarkPlugins: [],
rehypePlugins: [],
},
})
/** @type {import('next').NextConfig} */
const nextConfig = {
// Configure pageExtensions to include md and mdx
pageExtensions: ['ts', 'tsx', 'js', 'jsx', 'md', 'mdx'],
// Optionally, add any other Next.js config below
reactStrictMode: true,
}
// Merge MDX config with Next.js config
module.exports = withMDX(nextConfig)
Follow this guide from the MDX docs.
FAQs
Use [MDX](https://github.com/mdx-js/mdx) with [Next.js](https://github.com/vercel/next.js)
The npm package @next/mdx receives a total of 0 weekly downloads. As such, @next/mdx popularity was classified as not popular.
We found that @next/mdx demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.