The History of Markdown

Official Markdown logo

Logo by Dustin Curtis Public Domain

What is Markdown?

Markdown is a lightweight markup language with simple text formatting syntax. Its main goal is to be "human readable" in its original form (source code) and easily convertible to valid HTML. Since its release in 2004, it has become the de facto standard for writers, developers, and content creators on the web.

Markdown is two things: (1) a simple text formatting syntax; and (2) a software tool, originally written in Perl, that converts this formatting to HTML.

Origins and Motivation (Pre-2004)

Before Markdown, writing for the web required knowledge of HTML (HyperText Markup Language) or the use of WYSIWYG ("What You See Is What You Get") editors, which often generated heavy and hard-to-maintain code.

There were other lightweight markup languages, such as Textile and reStructuredText, but many still looked like computer code or required complex tags. The inspiration for Markdown came from a simple source: the formatting used in plain text emails.

In the early days of the internet, users already used intuitive conventions to format emails: *asterisks* for emphasis, > signs for quotes, and dashes for lists. These natural conventions became the basis of Markdown syntax.

The Creation (2004)

Markdown was created by John Gruber (born 1973), technology blogger, UI designer from Philadelphia, Pennsylvania, and creator of the popular blog Daring Fireball, with significant contributions from Aaron Swartz (1986-2013), the brilliant prodigy programmer and internet activist.

Gruber had the original idea and wrote the initial Perl script that converted marked text to HTML. His philosophy was clear: the marked document should be publishable as is, as plain text, without looking like it was filled with tags or formatting instructions.

Aaron Swartz worked on the syntax together with Gruber. Swartz had already created atx (another markup language) and influenced the creation of header syntaxes using #, as well as helping to refine the HTML to text translation rules.

Version 1.0.1 was publicly released on December 17, 2004, made available under a BSD open source license.

"The overriding design goal for Markdown's formatting syntax is to make it as readable as possible. The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it's been marked up with tags or formatting instructions."
John Gruber, Daring Fireball

The Creators

John Gruber

John Gruber

Creator of Markdown

Technology blogger and UI designer born in 1973 in Philadelphia. Creator of Daring Fireball, one of the most influential technology blogs focused on Apple products. Also hosts The Talk Show podcast. Gruber received his Bachelor of Science in Computer Science from Drexel University.

Photo by Randy Stewart Wikimedia Commons CC BY-SA 3.0

Aaron Swartz

Aaron Swartz

Co-creator of Markdown (1986-2013)

Prodigy programmer, entrepreneur, writer, and internet activist. At 14, he co-authored RSS 1.0. He was one of the early architects of Creative Commons, developer of Open Library, and co-founder of Reddit. He was inducted into the Internet Hall of Fame in 2013.

Photo: Wikimedia Commons CC BY-SA 3.0

"Aaron Swartz deserves a tremendous amount of credit for his feedback on the design of Markdown's formatting syntax. Markdown is much better thanks to Aaron's ideas, feedback, and testing."
— John Gruber

Fragmentation: The Wild West Era (2005-2012)

Since Gruber's original Perl script had some ambiguities and didn't cover all use cases (like tables or math definitions), the community began creating their own implementations in other languages like Python, Ruby, PHP, and JavaScript.

This led to fragmentation. Developers added extra features that didn't exist in the original specification. The so-called "Flavors" of Markdown emerged:

MultiMarkdown (2005) — Created by Fletcher Penney, added support for tables, footnotes, metadata, and LaTeX export.

PHP Markdown Extra — A popular version for PHP-based CMS (like WordPress and Drupal), created by Michel Fortin.

GitHub Flavored Markdown (GFM) — Perhaps the most influential variant. GitHub adopted Markdown for its README.md files, comments, and issues, adding syntax highlighting for fenced code blocks, task lists, and tables. GitHub's popularity cemented Markdown as an essential tool for developers.

Timeline

2004

Original Launch

John Gruber publishes Markdown 1.0.1 on December 17 on the Daring Fireball blog, including a Perl script for conversion and initial support for Movable Type, Blosxom, and BBEdit.

2004

PHP Markdown

Michel Fortin ports Markdown to PHP, creating one of the first alternative implementations. Later, he adds extensions like tables and footnotes in PHP Markdown Extra.

2008

GitHub Adopts Markdown

GitHub begins using Markdown for READMEs and documentation, massively popularizing the syntax among developers worldwide.

2012

GitHub Flavored Markdown (GFM)

GitHub creates its own extension based on the Sundown parser, adding tables, syntax highlighting, task lists, and autolinks.

2012

Start of Standardization

With so many different "flavors," a Markdown document could be rendered differently depending on the site or app used. This frustrated companies like Stack Exchange and GitHub. Jeff Atwood (Stack Overflow co-founder) and John MacFarlane begin efforts to create a rigorous standard specification.

2014

CommonMark

Initially called "Standard Markdown," the project faced opposition from John Gruber, who argued that his Markdown was the standard and didn't want third parties appropriating the name. After the dispute, it was renamed to CommonMark. The specification provides test suites to ensure Markdown behaves the same way on any system.

2016

IETF Registration

The IETF publishes RFC 7763 and RFC 7764, officially registering the media type text/markdown.

2017

GFM Based on CommonMark

GitHub deprecates Sundown and releases the formal GitHub Flavored Markdown specification based on CommonMark, using the cmark library.

Universal Standard

Universal Standard

File extensions: .md and .markdown. Used on millions of sites, including Stack Overflow, Reddit, Discord, Notion, and Obsidian.

The Current State

Today, Markdown has transcended the programming world and is ubiquitous in digital culture. Its main areas of use include:

Technical Documentation — It's the industry standard. Sites like Microsoft Learn, Google Cloud Docs, and GitHub documentation are written in Markdown.

Static Site Generators (SSG) — Tools like Jekyll, Hugo, and Gatsby use Markdown files to generate entire sites.

Notes and Productivity — A new wave of "second brain" apps like Obsidian, Notion, Roam Research, and Logseq use Markdown for data storage, ensuring users don't get locked into proprietary formats.

Data Science — Jupyter Notebooks, an essential tool for data scientists (Python/R), use Markdown cells to explain code and present results.

Messengers — Slack, Discord, WhatsApp, and Telegram support Markdown subsets for message formatting.

Future and Legacy

Markdown has proven to be a resilient technology. Unlike proprietary formats (like .doc) that change and break over time, a Markdown file written in 2004 is still perfectly readable today by any human or computer.

The current trend points to "Extended Markdown," like MDX, which allows using React components within Markdown, merging the simplicity of writing with the interactivity of the modern web.

"Markdown democratized web publishing, allowing writers to focus on content without worrying about design, and allowing developers to create beautiful and functional documentation without the weight of complex word processors."

The Legacy Continues

More than two decades after its creation, Markdown is ubiquitous. The simplicity that Gruber and Swartz sought became reality: millions of people write in Markdown every day, often without even knowing they're using a markup language.

Aaron Swartz's vision of an open and accessible internet lives on in the spirit of Markdown: a free, simple tool that democratizes content creation for the web. His commitment to social justice and free access to information profoundly influenced how we share knowledge online.

The original Markdown.pl script hasn't been updated since 2004, but its legacy lives on in hundreds of implementations in virtually every programming language, from C) to JavaScript, from Python to Go.

References and Official Links