Markdown is a lightweight markup language created by John Gruber in 2004. It lets you write formatted text using a plain text editor with intuitive syntax: # headings, **bold**, *italic*, [links](url), and . The beauty of Markdown is that the source file remains perfectly readable even without rendering, unlike HTML or rich text formats.
Markdown has become the default writing format for developers. GitHub uses it for READMEs, pull request descriptions, and issues. Stack Overflow, Reddit, Discord, and Slack all support Markdown formatting. Static site generators like Hugo, Jekyll, Astro, and Next.js use Markdown files as content sources. Documentation tools like Docusaurus, MkDocs, and GitBook are built entirely around Markdown.
Headings: Use # through ###### for heading levels 1 through 6. Always put a space after the hash.
Emphasis: *italic* or _italic_ for italic. **bold** or __bold__ for bold. ***bold italic*** for both.
Lists: Use -, *, or + for unordered lists. Use 1., 2., etc. for ordered lists. Indent with two or four spaces for nested lists.
Links: [text](url) creates a hyperlink. [text](url "title") adds a hover tooltip.
Images:  embeds an image. The alt text is important for accessibility.
Code: Use single backticks for inline code. Use triple backticks with a language name for fenced code blocks with syntax highlighting.
Blockquotes: Start a line with > to create a blockquote. Nest them with > >.
This editor supports GitHub-Flavored Markdown, which extends the standard with several features that are especially useful for developers:
Tables: Create tables using pipes (|) and hyphens (-). Align columns with colons in the separator row.
Task lists: Use - [ ] for unchecked and - [x] for checked items. These render as interactive checkboxes on GitHub.
Strikethrough: Wrap text in ~~double tildes~~ to show deleted or deprecated content.
Autolinks: URLs and email addresses are automatically converted to clickable links.
Fenced code blocks: Use triple backticks with a language identifier (like ```javascript) to get syntax-highlighted code blocks.
Use a blank line between block elements (headings, paragraphs, lists, code blocks). Forgetting this is the most common cause of rendering issues. Keep lines under 80 to 120 characters for readability in source form, especially in README files that will be viewed on GitHub. Use reference-style links ([text][id] with [id]: url at the bottom) for documents with many URLs to keep the source clean.
README files: Every open-source project needs a good README. Write it in Markdown and it renders beautifully on GitHub, GitLab, and npm.
Technical documentation: Markdown plus a static site generator is the standard stack for developer docs. It keeps content in version control alongside code.
Blog posts: Many blogging platforms and static site generators use Markdown as the content format, with YAML frontmatter for metadata.
Notes and journals: Tools like Obsidian, Notion, and Bear use Markdown as their native format, making your notes portable and future-proof.
Writing content with code samples? The JSON Formatter helps you clean up JSON before pasting it into code blocks. The Lorem Ipsum Generator can fill placeholder sections while drafting. For converting between YAML frontmatter and JSON, try the YAML/JSON Converter.
This tool runs 100% client-side. No data is sent to any server. Your Markdown content never leaves your browser.