Why Use Markdown

“There is Word, why do I need Markdown?” is the question almost every beginner asks once. This page is going to give an answer you can act on rather than a slogan, because the honest answer is not that Markdown is more advanced. It is that Markdown moves the cost of a document from the moment of writing to the moment of maintaining it, and for anything that has to be maintained, that is the better trade. The rest of the page makes that concrete: first the five advantages and what each one actually buys you, then a single requirement document written both ways, so you can see the difference at the exact moment it matters, when someone has to review a change to it.

The Advantages

Focus on writing. The syntax is small enough to learn in an afternoon, and it never asks you to think about layout. A heading is a hash, a list is a dash. There is no concept of a text box, a floating frame, or a table cell width, so there is nothing in the source that competes with the sentence you are trying to write.

Cross-platform. The file is plain text, so it opens with any editor on any operating system, and the same file renders on GitHub, in a terminal, in a browser, and inside a slide deck. Nothing about the document is tied to the program that produced it.

Version-control friendly. This is the advantage that is hardest to replicate with anything else, and the next section shows exactly why.

Easy to convert. A Markdown file can be exported to HTML, PDF, slides, or an ebook by a single command, usually with a tool such as Pandoc. The source stays the source, and the published artefact is generated from it.

Extensible. Tables, task lists, syntax highlighting, footnotes, and formulas are all available as extensions on top of the core syntax, and a renderer that does not support one simply ignores it. Each of these is a convenience except one: the first four save effort at the moment of writing, while version control saves effort at the moment of reviewing, which is where documents in a team actually accumulate their cost.

The Same Requirement, Two Ways

Suppose a team is writing a requirements document for a checkout endpoint. Here is the Markdown version, exactly as it would sit in the repository:

# Checkout API requirements

- The endpoint must return results within 200 ms.
- All monetary values are stored in minor units.

A renderer turns that into ordinary HTML, with the list markers expanded into tags:

<h1>Checkout API requirements</h1>
<ul>
<li>The endpoint must return results within 200 ms.</li>
<li>All monetary values are stored in minor units.</li>
</ul>

Now the review. A day later the service target is tightened and a caching requirement is added. Because the file is plain text in a Git repository, git diff shows the reviewer precisely which words moved:

diff --git a/requirements.md b/requirements.md
index f09a817..b165ca4 100644
--- a/requirements.md
+++ b/requirements.md
@@ -2,3 +2,4 @@
 
-- The endpoint must return results within 200 ms.
+- The endpoint must return results within 100 ms.
 - All monetary values are stored in minor units.
+- Results are cached for 30 seconds.

The reviewer reads one removed line and one added line. They know the old target, they know the new target, and they can tell that caching was added as a separate requirement rather than folded into the latency one. The review takes seconds, and the decision is recorded in the repository history next to the code that implements it.

The same change made in a rich text editor produces something else entirely. A .docx file is a compressed archive, so Git cannot compare it line by line and says so:

diff --git a/requirements.docx b/requirements.docx
index 6d44e0f..c88ad1a 100644
Binary files a/requirements.docx and b/requirements.docx differ

That single line is the whole report. The reviewer knows the file changed and nothing else. To find out what changed they have to download both versions, open them in a word processor, and compare them by eye, or convert them to text and hope the conversion preserved the meaning. The cost of that comparison is paid every single time somebody edits the document.

This is the difference in one sentence: Markdown moves the review burden from the reader to the diff. For a document that changes often and is read by more than one person, that is the difference between a ten-second review and a ten-minute one.

The costs of each approach line up with that:

ApproachCost of writingCost of reviewing a change
MarkdownA few lines of text, tags supplied by the parserA line-by-line diff the reviewer can read in place
HTMLAn opening and closing tag for every element, lists closed item by itemA diff dominated by markup, with the prose buried in it
Rich textPoint-and-click, fast for the first draftA binary blob, so no useful diff at all

Where Markdown Fits

The scenarios that benefit most share the same three properties: the content is mostly words, it needs to survive for a long time, and at some point somebody other than the author has to read it. READMEs, technical documentation, and design notes live next to the code they describe; blogs and knowledge bases are published by a static site generator reading the Markdown source; meeting minutes, standard operating procedures, and requirement documents all end up reviewed by someone else; slide decks are produced from the same source by tools such as remark or reveal.js; and anything written here may later be pasted into a ticket, a chat message, or a pull request comment.

When Markdown Is the Wrong Choice

Markdown is a structured plain text format, not a universal document format. The test is simple: if the value of the document is mainly in the words and their hierarchy, Markdown is right; if the value is mainly in the appearance, use a tool built for appearance.

RequirementBetter choice
Precise control of columns, margins, and mixed text-and-image layoutA layout or design tool that exports
Real-time collaborative editing with comments and presenceAn online collaborative document
Rich interaction, forms, and animationA front-end framework, not a document syntax
Long-term archiving where the layout must be frozenPDF or another fixed-layout export

Exercises

Below is a project description written as plain text. Rewrite it as Markdown, and then answer the second question: if this file is committed to a Git repository and someone edits one line of it, what will the reviewer actually see?

Project name: kuaiyizhi
Install: npm install
Run: npm start
Markdown AdvantagesVersion ControlProject Documentation

Approach:

The rewrite has one rule: turn the label-style description into a structure-style document. The project name becomes a heading, the two actions become a list, and each command becomes inline code, because a command is a literal string rather than prose. The second half of the question depends on how the file is stored: text on disk is diffed line by line, and a binary document is not.

Steps:

  1. Rewrite the description, using a heading for the name, a list for the two commands, and inline code for each command, because a command is a literal string rather than prose.
  2. Commit that file to a Git repository and edit one line, such as changing npm start to npm run dev.
  3. Run git diff. Git compares the two versions line by line, so the output shows the changed line with the old one removed and the new one added, and the untouched lines of the file appear as context.
  4. Contrast this with storing the same content as a .docx. That file is a compressed archive, so Git reports only Binary files ... differ and the reviewer has to open both versions and compare them by eye.

Answer:

The rewritten file is:

# kuaiyizhi

- Install: `npm install`
- Run: `npm start`

In a Git repository the reviewer sees a line-by-line text diff, so the exact line that changed is visible directly in the review, together with the surrounding lines for context. If the same content were stored as a .docx instead, Git would report only that the binary file differs, and the reviewer would have to download and compare both versions manually.

Summary

You should now be able to justify the choice of Markdown in terms a colleague would accept: the writer stays focused on content, the file survives every platform and every tool, the document can be exported to any format, and extensions cover what the core leaves out. Most importantly you should be able to make the argument that decides most cases, which is that a plain text document can be reviewed as a diff, and a document that cannot be reviewed cannot be safely maintained by a team. The next page turns to the practical question that follows from all this: which tool should you actually type into.

Found an issue with this content?

Tell us what could be improved.