In 2004, John Gruber had a simple problem: writing for the web was painful.
HTML was verbose. WYSIWYG editors produced garbage markup. And the plain text alternatives — reStructuredText, Textile — were cluttered with symbols that made documents look like Perl scripts.
Gruber, a longtime Mac developer (formerly of Bare Bones Software and Joyent) running the influential blog Daring Fireball, wanted something different. Something that looked readable as plain text, not just after rendering.
He called it Markdown.
The Co-Creator History Forgot

Aaron Swartz & John Gruber
What most developers don't know: Markdown had a key early collaborator whose contributions went far beyond beta testing.
Aaron Swartz was 17 years old when he helped design Markdown's syntax. By that point, he'd already been part of the working group behind RSS 1.0 (at age 14), worked on the Creative Commons licenses, and would go on to co-found Reddit.
In his own words, Swartz worked with Gruber for months: "Together we pored over the syntax details from top to bottom." His contributions included:
Gruber has pushed back on describing Swartz as a "co-creator." During the 2014 CommonMark controversy, he stated: "I am Markdown's sole creator, not co-creator." The CommonMark spec itself describes Markdown as developed by Gruber "with help from Aaron Swartz."
The extent of Swartz's contribution remains a point of historical ambiguity — fitting, perhaps, for a format defined by ambiguity.
In a March 2004 comment on Swartz's blog post about Markdown, John Gruber explained the design philosophy:
"My major complaint about reST is that it requires documents be filled with all sorts of magic _s and :s and ..s and other nonsense — Markdown seems much cleaner to me... Markdown is readable, and often indistinguishable from a normal email."
Aaron Swartz died in January 2013 at age 26, facing federal charges for downloading academic papers. The Remember Aaron Swartz memorial site is written entirely in Markdown — a quiet tribute to his contribution.
"Ambiguity Is a Feature"
Gruber introduced Markdown publicly on March 15, 2004. It was a short, intentionally minimal syntax description plus a Perl script to convert it to HTML.
The canonical description left many edge cases unspecified.
- item
- Is this nested or a code block?
Different parsers interpreted these edge cases differently, and implementations diverged. Markdown was meant to be simple — but that simplicity came at a cost.
The syntax hasn't been updated since version 1.0.1 in December 2004.
For eight years, this worked fine. Markdown spread across the internet — GitHub, Stack Overflow, Reddit, Tumblr. Each platform implemented its own parser with its own quirks.
Then, in 2012, a group of developers decided to fix the ambiguity problem.
John Gruber would call their project's name "infuriating."
The Standardization Effort

John MacFarlane & Jeff Atwood
In November 2012, Jeff Atwood (Stack Overflow co-founder) and John MacFarlane (UC Berkeley philosophy professor and creator of Pandoc) began a quiet two-year project.
Their goal: create a formal specification for Markdown. One that would define exactly how every edge case should render. One that would make Markdown portable across platforms.
They brought in representatives from GitHub, Reddit, Stack Overflow, and Meteor. They built a test suite with 500+ conformance tests. MacFarlane had already built Babelmark, a tool that shows how 20+ different Markdown implementations render the same input (often differently).
MacFarlane wasn't new to this problem. He'd spent years building Markdown tooling:
Pandoc — the "Swiss Army knife" of document conversion, and an early Markdown parser not based on regex substitutions
peg-markdown — an early PEG-based Markdown parser
Babelmark — a tool MacFarlane built to expose just how inconsistent Markdown implementations were
The group emailed John Gruber in November 2012, inviting him to participate.
No response.
On August 19, 2014, as they neared completion, they emailed Gruber again — this time with a link to the draft specification, asking for feedback.
They waited two weeks.
No response.
"Standard Markdown"
On September 3, 2014, the group launched their specification at standardmarkdown.com.
They called it Standard Markdown.
Within a day, John Gruber broke his silence.
In a private email to Atwood and MacFarlane, Gruber called the name "infuriating." He demanded they:
Rename the project
Shut down standardmarkdown.com
Apologize
He suggested alternatives: "Pedantic Markdown" or "Strict Markdown"
On September 5, 2014, Atwood announced the rename on Twitter:
But Gruber wasn't satisfied. After further email, he indicated that no form of the word "Markdown" was acceptable to him.
The project became CommonMark.
The Fallout
The dispute played out publicly on Twitter. Atwood's frustration was clear:
Gruber also objected that "Markdown" wasn't capitalized consistently throughout the spec — an oversight the team acknowledged and corrected.
The tech community largely sided with the standardizers. Writer Adam Tinworth observed that some Twitter reactions framed Gruber as "a child lashing out because his toys were being taken away from him."
Atwood documented the full saga in his blog post: Standard Markdown is now Common Markdown.
CommonMark Wins
Despite the drama, CommonMark became the de facto standard.
Today, it's used by:
GitHub — GFM (GitHub Flavored Markdown) is based on CommonMark
GitLab — GLFM is based on CommonMark + extensions
Stack Overflow — migrated to CommonMark in June 2020
Discourse — the forum software Atwood built after Stack Overflow
Reddit, Swift, and many other platforms also use Markdown at scale, with varying degrees of CommonMark alignment.
The current version is 0.31.2, released January 2024. John MacFarlane still maintains it.
John Gruber still runs Daring Fireball and maintains the original Markdown project site. He declined to participate in the CommonMark effort and objected to the project's naming in 2014.

