Showdown vs Turndown
Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.
Open source · MIT
A JavaScript library that converts Markdown to HTML and HTML back to Markdown.
Open source · MIT
A JavaScript library that converts HTML into Markdown, in Node.js or the browser.
The short answer
Choose Showdown if you need…
- JavaScript developers adding Markdown rendering to a web page
- Node.js developers converting Markdown files on a server
- Projects that need two-way conversion between HTML and Markdown
- Developers who want options such as tables, header ids, or image sizing
Choose Turndown if you need…
- Developers who need to convert HTML content, such as web pages or rich text editor output, into Markdown
- Node.js or browser projects that want a JavaScript-only conversion step
- Projects that need custom conversion rules for particular HTML tags
- Teams that want GitHub-flavored Markdown tables or strikethrough via the turndown-plugin-gfm plugin
Side-by-side
| Showdown | Turndown | |
|---|---|---|
| Type | Library | Library |
| Price | Free and open source | Free and open source |
| Licence | MIT | MIT |
| GitHub stars | 14.9k | 11.5k |
| Setup difficulty | Beginner | Beginner |
| How you get it | Install with a package manager | Install with a package manager |
| Main language | JavaScript | HTML |
| Last code update | 8 days ago | 19 days ago |
What each one is
Showdown
Showdown is a JavaScript library that turns Markdown text (a simple plain-text formatting syntax) into HTML, and can also convert HTML back into Markdown. It runs in a web browser or on a server with Node.js. Developers use it to let people write formatted text in a simple syntax and display it as web pages.
Turndown
Turndown is a JavaScript library that takes HTML and outputs Markdown text. You can call it from Node.js code or run it in a web page. It lets you customize how specific HTML elements are converted by adding rules, keeping or removing elements, or using plugins.
Best for
Showdown
- JavaScript developers adding Markdown rendering to a web page
- Node.js developers converting Markdown files on a server
- Projects that need two-way conversion between HTML and Markdown
- Developers who want options such as tables, header ids, or image sizing
Turndown
- Developers who need to convert HTML content, such as web pages or rich text editor output, into Markdown
- Node.js or browser projects that want a JavaScript-only conversion step
- Projects that need custom conversion rules for particular HTML tags
- Teams that want GitHub-flavored Markdown tables or strikethrough via the turndown-plugin-gfm plugin
Strengths
Showdown
- Works both in the browser and on Node.js
- Options let you adjust output such as header ids, header levels, and links
- Released under the MIT license
Turndown
- Simple API: create a service and call turndown() on HTML input, as shown in the README
- Configurable through documented options and extendable with custom rules and plugins
- Works in both Node.js and the browser, with UMD builds available for RequireJS
Not ideal for
Showdown
- People who just want to write Markdown in a ready-made editor app, since this is a library, not an app
- Projects that need the exact GitHub rendering behavior, since the README mentions GitHub-style ids but does not claim full compatibility
- Anyone needing current browser support for very old browsers, since the README lists tested versions from decades ago without current testing details
Turndown
- Non-programmers who want a point-and-click converter, since the README only documents code usage
- Anyone who needs to convert Markdown back into HTML, since the README covers only HTML-to-Markdown conversion
- Projects needing exact round-trip fidelity, because the README notes its escaping rules can be quite aggressive
Trade-offs
Showdown
- The README is a long list of options and does not document every edge case, so you may need the wiki for detail
- The browser compatibility section lists very old browsers and gives no current test results
- Some features such as tables are off by default and must be turned on
Turndown
- Escaping is handled with regular expressions and the README says the rules can be quite aggressive, which may alter text
- The README documents only the JavaScript API, so non-developers will need programming skills to use it
- Some features such as GFM tables depend on a separate plugin package
Getting started
Frequently asked questions
What is the difference between Showdown and Turndown?
Showdown: A JavaScript library that converts Markdown to HTML and HTML back to Markdown. Turndown: A JavaScript library that converts HTML into Markdown, in Node.js or the browser. Showdown suits javascript developers adding markdown rendering to a web page, while Turndown suits developers who need to convert html content, such as web pages or rich text editor output, into markdown.
Are Showdown and Turndown free?
Showdown: Free and open source. Turndown: Free and open source.
Is Showdown or Turndown more popular?
Showdown has more GitHub stars (14.9k) than Turndown (11.5k). Popularity isn't the same as fit — check which one matches your use case above.
What are other alternatives to Showdown and Turndown?
Other options people compare them with include markdown-it, remark, Parsedown, react-markdown, Editor.md.
Keep comparing
Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.