Docz.me just launched — 14 days free on any paid plan. See pricing

MDX to DOCX

MDX with semantic affordances, rendered as a real Word document. Tables work, lists number, themes apply.

Docz Team · EngineeringPublished
255 / 512,000 bytes

MDX → Word (.docx)

How to convert

Three steps. No signup, no email, no cloud locker.

  1. 1

    Paste or upload

    Drop your Markdown or MDX file into the editor, paste source directly, or click Upload to load a file from disk.

  2. 2

    Choose format and theme

    Pick PDF, DOCX (Word), or HTML as the output format. Optionally switch to Academic for a cover page or README/Blog for GitHub-style typography.

  3. 3

    Convert and download

    Click Convert & Download. The file streams back as a real binary — no signup, no email, no cloud locker. Your source is never stored.

Why this converter

Built for the docz.me invoicing app — released as a free standalone because the underlying pipeline turned out to be useful on its own.

  • Server-side rendering, real binaries

    Output is a real PDF, real DOCX, or self-contained HTML — not a screenshot or rebadged HTML. Selectable text, embedded fonts, proper page breaks.

  • GFM and MDX in the same pipeline

    Tables, task lists, footnotes, autolinks parse like GitHub. Switch to MDX input for Callout / CodeBlock / Tabs / Steps components — all rendered statically.

  • Three themes, one source

    Default for clean modern docs, Academic with cover page and numbered headings, README/Blog for GitHub typography. Switch and re-render — keep your source.

  • Privacy first

    Stateless serverless function. Source text is never logged or persisted. 500 KB cap enforced before parse so the worst case is a friendly error.

  • MDX without the JS-execution risk

    Parse-only path. JSX expressions, ESM imports, and unknown components are rejected by design. No code from your source ever runs server-side.

  • No signup, no email gate

    Free, anonymous, ungated. Built by docz.me — the invoicing app for freelancers — but the converter stands alone with no account requirement.

Word is what review committees, finance teams, and legal departments actually open. MDX is what writers actually want to draft in. This route bridges the two: source stays MDX with semantic Callout / Note / Warning components, while the output is a real OOXML .docx file that opens in Word 365, Google Docs, and LibreOffice with no compatibility shrugs.

Components map to native Word affordances. Callouts render as bordered paragraph runs with theme-matched accent color. CodeBlock content drops into monospace runs with light shading. Tabs flatten to sequential headings + body — sensible because Word has no tab widget. Steps become a real ordered list with auto-numbering, so editing the document inside Word doesn't break the numbering. Images render as text placeholders in v1 (DOCX byte embedding is a phase 5 task).

Security boundary stays tight. The MDX parser runs the same security plugins as the PDF and HTML routes: JSX expressions rejected, unknown ESM imports rejected, unknown components downgraded to styled fallback. SSRF guard runs against every Image URL before any network fetch happens. The .docx that lands in your downloads folder represents only what your source declared.

Frequently asked

Do MDX Callouts survive the conversion to Word?

Yes. Callouts render as bordered paragraph runs with the theme's accent color on the left edge. Note and Warning use distinct color tokens so the visual hierarchy survives.

Are MDX images embedded as bytes or as URLs?

v1 ships as text placeholders (`[Image: alt]`) in DOCX output. Byte embedding requires server-side fetch + format sniff + zip injection, which lands in phase 5. The HTML and PDF outputs render images directly.

Can I open the .docx in Google Docs?

Yes. We test against Google Docs, Microsoft Word 365, and LibreOffice. The OOXML output is standards-compliant; any reader that handles .docx will open it cleanly.

What about Tabs in Word?

Tabs flatten to sequential sections — each tab's label becomes a heading and the tab body follows. Word has no tab widget, so this is the only sane representation. Order is preserved.

Will custom MDX components render correctly?

If allowlisted, yes. Anything outside the allowlist becomes a styled fallback paragraph showing the original component name and its props, so review teams notice rather than miss the absent content.

More converters

Came here looking for DoczJS? See our DoczJS alternatives page →