Skip to content

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.

Showdown

Open source · MIT

A JavaScript library that converts Markdown to HTML and HTML back to Markdown.

Turndown

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

ShowdownTurndown
TypeLibraryLibrary
PriceFree and open sourceFree and open source
LicenceMITMIT
GitHub stars14.9k11.5k
Setup difficultyBeginnerBeginner
How you get itInstall with a package managerInstall with a package manager
Main languageJavaScriptHTML
Last code update8 days ago19 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

Showdown

Install via npm (server-side)

npm install showdown
Step-by-step guide: how to use Showdown

Turndown

Install from npm

npm install turndown
Step-by-step guide: how to use Turndown

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.