Open source · Runs in your browser

Word documents, turned into Markdown that keeps its structure.

Drop a .docx and get clean GitHub-Flavored or CommonMark Markdown - tables, images, lists, footnotes and metadata intact. Free, private, and instant.

Source project-brief.docx
Drop your .docx here
# Project Brief: Northwind Redesign

The **Northwind** storefront is overdue for a *ground-up* redesign. This brief captures the goals, the timeline, and the open questions. Live status lives on the [tracking board](https://example.com/board).

## Goals

- Cut time-to-first-purchase in half.
- Unify the design system across web and mobile.
  * Ship a reusable component library.
- Reach a Lighthouse score of 95+.

## Timeline

| Phase | Owner | Status |
|---|---|---|
| Discovery | Ana | Done |
| Design system | Priya | In progress |
| Build \& launch | Marco | Not started |

## A note on scope

> *Keep the first release small. Ship the checkout flow, measure, then expand.*
Flavor

Runs entirely in your browser. Your file is never uploaded.

  • Files never uploaded
  • Converts in milliseconds
  • MIT open source

Fidelity

Structure survives the trip.

Most converters scrape text run by run and lose the shape of your document. This one reads the whole file into a structured model first, then renders it - so tables stay tables and lists stay lists.

  • Headings & structure

    Outline levels and heading styles become # through ###### with the hierarchy intact.

  • Lists, nested & mixed

    Deeply nested ordered, unordered and task lists keep their levels and markers.

  • Tables

    Simple tables become Markdown pipes; merged-cell tables fall back to clean HTML.

  • Images

    Embedded images are extracted in your browser, previewed inline, and exported in a .zip.

  • Rich formatting

    Bold, italic, strikethrough, underline, super/subscript, highlight and color - faithfully.

  • Footnotes & endnotes

    Footnotes convert to GFM [^1] syntax; endnotes can be included on request.

  • Blockquotes

    Word quote styles are turned into > blockquotes.

  • Code detection

    Monospace runs, shaded text and code styles become inline code or fenced blocks.

  • Definition lists

    Definition term / definition styles render as <dl>, Pandoc, or plain paragraphs.

  • Math (OMML)

    Office equations are extracted with a readable fallback, or routed to LaTeX via a hook.

  • Metadata front matter

    Core and custom document properties can be emitted as a YAML front-matter block.

  • Safe by default

    Malformed or non-DOCX files degrade to partial output with notes instead of crashing.

How it works

Three steps, all on your machine.

  1. 01

    Drop your .docx

    Choose a file or drag it onto the page. It is read straight into memory in your browser - nothing is uploaded to a server.

  2. 02

    Parsed into a structured model

    The Office Open XML is parsed into an intermediate representation - a real tree of headings, lists, tables and runs - not a bag of text. This is why structure survives.

  3. 03

    Rendered to faithful Markdown

    That model is rendered to GitHub Flavored or CommonMark Markdown, tuned by your options. Copy it, download the .md, or grab a .zip with images.

The conversion engine is the open-source docx_to_markdown Dart package, compiled to JavaScript so it runs right here in your browser.

For developers

This whole tool is one Dart package.

The converter you just used is docx_to_markdown, an open-source, pure-Dart library with zero native dependencies. It runs everywhere Dart runs - server, CLI, Flutter on mobile and desktop, and in the browser. Add it to your project and get the exact conversion you see here.

  • Pure Dart, no native bindings
  • IR-based for Pandoc-level fidelity
  • Configurable output + extension hooks
Terminal
dart pub add docx_to_markdown
main.dart
import 'package:docx_to_markdown/docx_to_markdown.dart';

final bytes = await File('report.docx').readAsBytes();

// Defaults: GitHub Flavored Markdown, footnotes on, tables auto.
final markdown = await DocxConverter(bytes).convert();

FAQ

Questions, answered.

Everything about privacy, formats and fidelity. Still stuck? The full guide goes deeper.

Is this DOCX to Markdown converter free?

Yes. It is completely free and open source under the MIT license. There are no accounts, no limits, and no watermarks.

Are my files uploaded to a server?

No. The conversion runs entirely in your browser using WebAssembly-grade compiled Dart. Your document never leaves your device, which makes it safe for confidential and internal files.

What Markdown does it produce?

You can choose GitHub Flavored Markdown (GFM) or strict CommonMark. GFM adds tables, task lists, strikethrough and footnotes; CommonMark is maximally portable and renders tables as HTML.

What does it preserve from the Word document?

Headings, ordered and nested lists, task lists, tables (with an HTML fallback for merged cells), images, links, footnotes and endnotes, bold, italic, strikethrough, inline code, blockquotes, definition lists, math, and document metadata as YAML front matter.

Does it handle images?

Yes. Embedded images are extracted in your browser. You can preview them inline and download everything as a .zip with the Markdown file and an images folder alongside it.

Is there a file size limit?

There is no hard limit. Because everything runs locally, a very large document simply takes a moment longer to convert - nothing is queued or throttled by a server.

Can I convert an old .doc file?

Only the modern .docx format (Office Open XML) is supported. If you have a legacy .doc file, open it in Word or Google Docs and save a copy as .docx first.

Can I use this converter in my own app?

Yes. The tool is powered by docx_to_markdown, an open-source Dart package. You can add it to any Dart or Flutter project - server, CLI, desktop, mobile, or web - and get the same conversion in your own code.