Every developer writes Markdown daily without really thinking about it. GitHub READMEs, pull request descriptions, Notion pages, Stack Overflow questions, documentation sites — Markdown is the common thread. It's one of those tools that quietly became ubiquitous because it solves a real problem: writing structured documents without the overhead of HTML.
If you've never stopped to understand what Markdown actually is or what's happening under the hood, this guide has you covered.
What is Markdown?
Markdown is a lightweight markup language created by John Gruber in 2004, with significant contributions from Aaron Swartz. The core idea is simple: write plain text using intuitive formatting conventions, and a Markdown processor converts it to valid HTML.
The design goal was that the source text should be readable as-is, even before it's processed. A paragraph that starts with # clearly looks like a heading. Text wrapped in **double asterisks** clearly looks bold. This is what distinguishes Markdown from HTML — you can read the raw source without having to mentally parse tags.
Today, Markdown isn't a single format — it's a family of formats. The original spec has been extended by GitHub (GitHub Flavored Markdown), CommonMark (a strict standardization effort), and dozens of platforms with their own variations. The core syntax is consistent across all of them; the differences are in the extensions.
Markdown Syntax Cheat Sheet
| Element | Markdown | Rendered HTML |
|---|---|---|
| Heading 1–6 | # H1 through ###### H6 |
<h1> through <h6> |
| Bold | **text** |
<strong>text</strong> |
| Italic | *text* |
<em>text</em> |
| Inline code | `code` |
<code>code</code> |
| Code block | Triple backticks with optional language | <pre><code> |
| Unordered list | - item or * item |
<ul><li> |
| Ordered list | 1. item |
<ol><li> |
| Link | [text](URL) |
<a href="URL">text</a> |
| Image |  |
<img src="URL" alt="alt"> |
| Blockquote | > text |
<blockquote> |
| Horizontal rule | --- |
<hr> |
Where You Actually Use Markdown
GitHub READMEs
The most visible use of Markdown in open source. A good README introduces the project, shows an installation example, and documents basic usage. Here's what a typical README looks like in raw Markdown:
# project-name A minimal CLI tool for converting CSV to JSON. ## Installation ```bash npm install -g project-name ``` ## Usage ```bash project-name input.csv --output data.json ``` ## License MIT
What that becomes in HTML
When GitHub renders that file, the # becomes an <h1>, the code blocks get syntax highlighting, and the whole thing becomes a readable HTML page. You can replicate this locally using the Markdown to HTML converter — paste your Markdown, get the HTML output instantly.
Documentation sites and dev blogs
Platforms like dev.to, Hashnode, and Jekyll-based sites accept Markdown natively. Notion, Obsidian, and Bear use Markdown-compatible formatting. Even Slack and Discord support a subset of Markdown for formatting messages.
GFM extras: tables and task lists
GitHub Flavored Markdown adds syntax that the original spec doesn't have, including tables and task lists:
| Name | Role | |-------|---------| | Alice | Admin | | Bob | Viewer | - [x] Write the README - [ ] Add tests - [ ] Deploy to staging
Frequently Asked Questions
- What's the difference between GitHub Flavored Markdown and standard Markdown?
- Standard Markdown (the original Gruber spec) covers the basics: headings, lists, links, code blocks. GFM adds tables, task lists, strikethrough (
~~text~~), autolinked URLs, and mentions/issue references specific to GitHub. CommonMark is a separate project that standardizes the ambiguous parts of the original spec. If you're writing for GitHub, assume GFM. For everything else, check what the platform supports. - Can Markdown replace HTML?
- For document-oriented content — articles, READMEs, documentation — yes, Markdown is usually the better choice. It's faster to write and easier to read in source form. But for UI layouts, interactive elements, or anything requiring fine-grained styling control, you still need HTML and CSS. Markdown is a tool for prose and structured content, not a general-purpose replacement for HTML.
- Does Markdown work in emails?
- Not natively. Email clients don't render Markdown — they render HTML. If you want to send a formatted email written in Markdown, you need to convert it to HTML first, then paste the HTML output into a rich-text email client. Some email clients and tools (like Superhuman or certain Gmail extensions) have Markdown support built in, but it's far from universal. The Markdown to HTML converter can help with this workflow.
Summary
- Markdown is a plain-text format created in 2004 that converts to HTML
- The core syntax — headings, bold, lists, links, code — is consistent across platforms
- GitHub Flavored Markdown adds tables, task lists, and GitHub-specific features
- Use it for READMEs, docs, blog posts, and any prose content in a developer workflow
- For emails or Markdown-incompatible tools, convert to HTML first
Tools to help you work with Markdown:
- Markdown to HTML — convert and preview Markdown as rendered HTML
- Word Counter — check length of your docs and articles
- Text Diff Checker — compare document versions side by side