MDX Notes
Every tool you
Here's the tooling that makes MDX development actually pleasant. Editors, linters, formatters, preview tools, frameworks, testing, deployment — the whole stack.
Code Editors and Extensions
VS Code Extensions
VS Code is where most MDX development happens. These extensions make it much better:
MDX (unified)
The official extension. You want this one.
What you get:
- Syntax highlighting for MDX files
- Embedded JSX highlighting within Markdown
- Frontmatter YAML highlighting
- Support for expressions and imports
Other Extensions Worth Installing
| Extension | Purpose |
|---|---|
unifiedjs.vscode-mdx | MDX syntax highlighting and IntelliSense |
esbenp.prettier-vscode | Auto-formatting MDX files |
dbaeumer.vscode-eslint | Linting integration |
yzhang.markdown-all-in-one | Markdown shortcuts and TOC |
bierner.markdown-mermaid | Mermaid diagram preview |
streetsidesoftware.code-spell-checker | Spell checking in content |
gruntfuggly.todo-tree | Track TODOs in documentation |
redhat.vscode-yaml | Frontmatter YAML validation |
VS Code Settings for MDX
Drop this in your project settings:
Other Editors
| Editor | MDX Support |
|---|---|
| WebStorm/IntelliJ | Built-in MDX plugin with refactoring |
| Neovim | nvim-treesitter with MDX parser |
| Sublime Text | MDX Syntax Highlighting package |
| Vim | vim-mdx-js plugin |
| Zed | Native MDX support |
Linters
eslint-plugin-mdx
The main linting tool for MDX:
npm install --save-dev eslint eslint-plugin-mdxremark-lint
Markdown-level linting for consistent style:
npm install --save-dev remark-cli remark-lint remark-preset-lint-recommendedmarkdownlint
Rule-based linting with a config file:
Formatters
Prettier
The standard. Set it up once and forget about formatting:
npm install --save-dev prettier# Format all MDX files
npx prettier --write "**/*.mdx"
# Check formatting without writing
npx prettier --check "**/*.mdx"EditorConfig
Keeps base formatting consistent regardless of editor:
Preview and Development Tools
MDX Playground
The quickest way to test MDX syntax without setting anything up:
- URL: mdxjs.com/playground
- Features: Real-time compilation, AST viewer, error display
- Use for: Quick syntax testing, debugging compilation issues
Storybook
Great for previewing your MDX components in isolation:
npm install --save-dev @storybook/addon-docsimport { Meta, Canvas, Story } from '@storybook/blocks';
import { Button } from '../src/components/Button';
<Meta title="Components/Button" component={Button} />
# Button Component
<Canvas>
<Story name="Primary">
<Button variant="primary">Click me</Button>
</Story>
</Canvas>Local Preview Servers
| Tool | Command | Best For |
|---|---|---|
| Next.js dev | next dev | Next.js MDX projects |
| Astro dev | astro dev | Astro MDX projects |
| Docusaurus | docusaurus start | Documentation sites |
| Vite | vite dev | Vite-based projects |
Documentation Frameworks
Docusaurus
Facebook's doc framework. Mature, feature-rich, great MDX support:
npx create-docusaurus@latest my-docs classicGets you: Versioning, search, i18n, MDX plugins, sidebar generation
Nextra
Lightweight docs on top of Next.js:
npm install nextra nextra-theme-docsGets you: File-based routing, full-text search, dark mode, MDX components
Astro Starlight
Fast builds, accessibility-first:
npm create astro@latest -- --template starlightGets you: Fast builds, i18n, accessibility, component islands
Which One to Pick?
| Framework | Build Speed | Customization | Learning Curve | Best For |
|---|---|---|---|---|
| Docusaurus | Medium | High | Medium | Large docs sites |
| Nextra | Fast | Medium | Low | Simple docs |
| Starlight | Very Fast | High | Low | Performance-first |
| Mintlify | N/A (hosted) | Medium | Very Low | API docs |
| GitBook | N/A (hosted) | Low | Very Low | Quick setup |
Component Libraries
Documentation-Specific Components
# Fumadocs UI - components for documentation
npm install fumadocs-ui
# Shadcn/ui - customizable component library
npx shadcn-ui@latest initGood Component Libraries for MDX Sites
| Library | Type | Use Case |
|---|---|---|
| shadcn/ui | Copy-paste components | Custom docs sites |
| Radix UI | Headless primitives | Accessible components |
| Fumadocs UI | Doc-specific | Tabs, callouts, cards |
| Chakra UI | Styled components | Rapid development |
| Tailwind CSS | Utility classes | Custom styling |
Testing Tools
Content Testing
# Link validation
npm install --save-dev remark-validate-links
# Spell checking
npm install --save-dev cspell
# Writing style (technical writing rules)
npm install --save-dev alex # Catches insensitive language
npm install --save-dev write-good # Style suggestions{
"scripts": {
"test:links": "remark --use validate-links docs/",
"test:spelling": "cspell \"docs/**/*.mdx\"",
"test:language": "alex docs/",
"test:style": "write-good docs/**/*.mdx"
}
}Visual Regression Testing
Catch unintended layout changes:
Accessibility Testing
npm install --save-dev @axe-core/playwrightDeployment Platforms
Static Hosting (Best for MDX Sites)
| Platform | Free Tier | Build Support | Best Feature |
|---|---|---|---|
| Vercel | Yes | Next.js native | Preview deployments |
| Netlify | Yes | All frameworks | Branch deploys |
| Cloudflare Pages | Yes | Fast global CDN | Edge rendering |
| GitHub Pages | Yes | GitHub Actions | Free for OSS |
| AWS Amplify | Free tier | All frameworks | AWS integration |
Deployment Configuration
CI/CD Tools
Automated Quality Checks
Run these on every PR to catch issues before they hit production:
Pre-commit Hooks
Catch problems before they even get committed:
npm install --save-dev husky lint-stagedBuild and Bundling Tools
| Tool | Integration | Purpose |
|---|---|---|
@mdx-js/rollup | Vite, Rollup | Compile MDX in Rollup/Vite |
@mdx-js/loader | Webpack | Compile MDX in Webpack |
@mdx-js/esbuild | esbuild | Fast MDX compilation |
@next/mdx | Next.js | Next.js MDX integration |
@astrojs/mdx | Astro | Astro MDX integration |
gatsby-plugin-mdx | Gatsby | Gatsby MDX integration |
Summary
Start with VS Code + the MDX extension + Prettier. That gets you productive immediately. Add linting, testing, and CI/CD as your project grows. Pick a documentation framework that matches your team's skills and how big your site needs to be.
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Tools for MDX Development.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this MDX Tutorial topic.
Search Terms
mdx-tutorial, mdx tutorial, mdx, tutorial, resources, useful, tools, tools for mdx development
Related MDX Tutorial Topics