Skip to content
Processing locally — files never leave your device

Markdown Editor with Live Preview

Write Markdown on the left and watch the formatted result render live on the right — headings, lists, links, tables, code blocks, and blockquotes. Drafts auto-save to your browser's local storage so you never lose work, and nothing is uploaded. Great for README files, GitHub issues, and blog drafts.

How to use Markdown Editor

  1. Type Markdown on the left side of the editor.
  2. Watch the rendered HTML preview update on the right as you type.
  3. Use the toolbar buttons for quick formatting — bold, italic, headings, links, and code.
  4. Your draft auto-saves to local storage, so you can close the tab and pick up where you left off.
  5. Download the finished .md file, or copy the rendered output into your destination.

Writing Markdown with confidence

Markdown is a lightweight markup language that turns plain text into formatted HTML using a handful of intuitive symbols. It powers READMEs, documentation, issue trackers, static sites, and note apps because it stays readable in its raw form while still producing rich output. A live-preview editor lets you see exactly what the renderer will produce as you write.

CommonMark: the spec that removes ambiguity

The original Markdown left many edge cases undefined, so different tools rendered the same text differently. CommonMark fixed that with a precise specification. This editor follows CommonMark, so the rules below behave predictably no matter how you nest or combine them.

Core syntax

# Heading 1
## Heading 2

**bold**, *italic*, and `inline code`

- bullet item
- another item

1. numbered item
2. second item

> a blockquote

[link text](https://example.com)
![alt text](image.png)

Headings use one to six # marks; emphasis uses asterisks; lists use a leading dash or number; and links and images share the same bracket-and-parenthesis shape, with images adding a leading ! .

GitHub-Flavored Markdown extensions

GFM adds the features people actually need in documentation. Task lists render as checkboxes, tables align with colons, and tildes strike text through:

- [x] done
- [ ] still to do

| Name  | Role     |
| :---- | -------: |
| Ada   | Engineer |

~~deprecated~~

Code blocks and language hints

Fenced code blocks are the safest way to show code. Wrap the block in triple backticks and name the language after the opening fence to enable syntax highlighting. Everything inside is treated literally, so special characters and indentation survive untouched.

The blank-line rule

Block-level elements are separated by blank lines, and a single newline inside a paragraph collapses to a space. If two lines unexpectedly merge, add a blank line between them; if you need a hard break within a paragraph, end the line with two spaces or a backslash.

Safe rendering

Because Markdown permits inline HTML, this editor sanitizes the rendered output with DOMPurify, stripping scripts and event handlers. You get the convenience of raw HTML when you need it, without the security risk of executing pasted content.

Related dev tools

Frequently asked questions

Which Markdown flavour does this support?
CommonMark — the formal, unambiguous Markdown specification — plus the most-used GitHub-Flavored Markdown (GFM) extensions: tables, task lists, strikethrough, fenced code blocks, and autolinks. If it renders on GitHub, it almost certainly renders here.
What is the difference between CommonMark and GFM?
CommonMark is a strict specification that pins down the edge cases the original 2004 Markdown left vague, so the same input renders the same everywhere. GitHub-Flavored Markdown is CommonMark plus a handful of practical extensions — tables, task list checkboxes, ~~strikethrough~~, and automatic linking of bare URLs.
How do I write a table?
Use pipes to separate columns and a row of dashes to mark the header. Colons in the dash row set alignment: ":---" is left, ":---:" is centered, "---:" is right. The column widths in your source do not need to line up — the renderer handles spacing.
How do fenced code blocks work?
Wrap code in three backticks on their own lines. Add a language name after the opening fence (```js) to hint syntax highlighting. Fenced blocks preserve indentation and special characters literally, which is why they are preferred over the older four-space indentation style.
Why did my single line break disappear?
In Markdown a single newline is treated as a space, so two adjacent lines join into one paragraph. To force a line break, end a line with two trailing spaces or a backslash; to start a new paragraph, leave a completely blank line between blocks.
Where are my drafts stored?
In your browser's local storage on this device only. They never leave the browser. Clearing site data, switching devices, or using a private window means starting fresh, so download anything you want to keep.
Is the rendered HTML safe?
Yes. The preview pipeline sanitizes output with DOMPurify, so even if you paste raw HTML into your Markdown, scripts and inline event handlers are stripped before anything is rendered. That protects against accidental XSS from pasted content.
Can I export to PDF?
Use your browser's print-to-PDF feature on the preview pane — it captures the rendered HTML with its styling. An explicit export button may come later, but print-to-PDF works well today.

More tools you might find useful in the same flow.

Built by Muhammad Tahir · About