Quick comparison of MDX integration strategies with Next.js

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • next-mdx-enhanced

    Discontinued A Next.js plugin that enables MDX pages, layouts, and front matter

  • Like @next/mdx, you add next-mdx-enhanced to the project by exporting a function in the project's next.config.js file.

  • next-mdx-remote

    Load mdx content from anywhere through getStaticProps in next.js

  • The next-mdx-remote package by Hashicorp was created to deal with problems that arose from their next-mdx-enhanced package.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • mdx-bundler

    🦤 Give me MDX/TSX strings and I'll give you back a component you can render. Supports imports!

  • MDX Bundler differs from all of the other packages listed above in that it is Framework agnostic, meaning you can use it outside of Next.js. Like next-mdx-remote, no changes to the next.config.js file are necessary.

  • Next.js

    The React Framework

  • The Emotion.js Babel loader doesn't seem to work with @next/mdx. When using the Babel configuration from the official Next.js Emotion example, you get an error that says SyntaxError: importSource cannot be set when runtime is classic. I believe that this problem is from @next/mdx using an older version of React's runtime than Emotion is using and that it is not an issue with Emotion itself. There is an open issue discussing this on the MDX GitHub.

  • mdx

    Markdown for the component era

  • The Emotion.js Babel loader doesn't seem to work with @next/mdx. When using the Babel configuration from the official Next.js Emotion example, you get an error that says SyntaxError: importSource cannot be set when runtime is classic. I believe that this problem is from @next/mdx using an older version of React's runtime than Emotion is using and that it is not an issue with Emotion itself. There is an open issue discussing this on the MDX GitHub.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts