Skip to content
100% in your browser. Nothing you paste is uploaded — all processing runs locally. Read more →

What is Markdown?

On this page
  1. A complete example
  2. Where it came from
  3. Why Markdown won
    1. 1. The source is readable
    2. 2. Plain text everywhere
    3. 3. Quick to write
    4. 4. The web infrastructure moved with it
  4. Where Markdown is used
    1. Technical writing
    2. Static sites
    3. Communication
    4. Note-taking
  5. Markdown vs alternatives
  6. Limitations
  7. Try it
  8. Further reading

Markdown is a lightweight markup language. You write plain text with a handful of punctuation conventions (# for headings, ** for bold, - for lists, etc.); a Markdown parser converts it to formatted HTML.

If you’ve ever written a GitHub README, posted a comment on Stack Overflow, edited a Discord message, or written a blog post in Hugo or Jekyll, you’ve used Markdown. It’s quietly become the default format for technical writing on the web.

A complete example

Markdown source:

# Quarterly review

Q4 was strong. Highlights:

- Revenue grew **32%** year over year
- NPS climbed from 42 to **61**
- Two new product launches

See the [full report](https://example.com/report) for details.

Rendered output:

Quarterly review

Q4 was strong. Highlights:

  • Revenue grew 32% year over year
  • NPS climbed from 42 to 61
  • Two new product launches

See the full report for details.

The source is readable as plain text. The rendered output is formatted HTML. That’s the design.

Where it came from

Markdown was created by John Gruber in 2004, with input from Aaron Swartz. The goal: a syntax that’s easy to write, easy to read in source form, and unambiguously convertible to HTML.

The original spec (daringfireball.net/projects/markdown) left some edge cases under-specified. In 2014, CommonMark formalized those edge cases into a strict standard. CommonMark is what modern parsers target.

GitHub then layered on extensions — tables, task lists, strikethrough, autolinks — collectively known as GitHub-Flavored Markdown (GFM). GFM is the de facto dialect for technical writing today. Our viewer renders GFM.

Why Markdown won

The web has had many writing formats. Markdown beat them because:

1. The source is readable

Compare the same content in three formats:

HTML:

<h2>Hello</h2>
<p>This is <strong>bold</strong>.</p>

RTF:

{\rtf1\ansi\\b Hello\b0\par This is \b bold\b0.\par}

Markdown:

## Hello

This is **bold**.

Even a non-technical reader can guess what the Markdown source means. That readability matters when you’re skimming git diffs, scrolling through a long doc, or fixing a typo at 2 AM.

2. Plain text everywhere

Markdown files are .md text files. They:

A Word .docx does none of these things.

3. Quick to write

Once you know the half-dozen common patterns, writing Markdown is faster than clicking through a WYSIWYG editor. Your hands stay on the keyboard.

4. The web infrastructure moved with it

GitHub renders Markdown in repos, issues, PRs, and gists. That single choice — by the platform that ate developer mind-share around 2010 — made Markdown the lingua franca of open-source documentation. Stack Overflow, GitLab, Bitbucket, Notion, Discord, Slack, and basically every modern writing tool followed.

Where Markdown is used

Technical writing

Static sites

Communication

Note-taking

Markdown vs alternatives

FormatStrengthsWeaknesses
Markdownreadable, ubiquitous, simplelimited (no underline, no color, weak tables)
HTMLfull powerverbose, hard to read
AsciiDocricher syntax (tables, footnotes)less ecosystem support
reStructuredTextPython’s standard, complex tableslearning curve, smaller community
MDXMarkdown + JSX componentsrequires React-aware tooling
WYSIWYG (Word, Notion)no learning curvenot portable, not diffable, not version-controllable

For technical writing on the web in 2026, the answer is almost always Markdown, with MDX as a step up when you need embedded interactive components (this article is MDX).

Limitations

Markdown is intentionally simple. Things it doesn’t do:

When you outgrow Markdown, the usual progression is:

Try it

Further reading