Home › Catalog › Markdown Tool › Why Forge Markdown
Dillinger.io and StackEdit are great editors — you open a tab, you write, you watch the preview update. The Forge Markdown API is something different: it is the conversion service you call from a CMS, a static-site build, a CI pipeline, or a script that needs to turn Markdown into HTML (or HTML back into Markdown) without a human in the loop.
| Feature | Forge Markdown | Dillinger.io / StackEdit |
|---|---|---|
| Live browser editor with preview | ✓ | ✓ |
| Free REST API for scripts & CI | ✓ (POST /markdown/to-html) | × |
| HTML → Markdown reverse conversion | ✓ (POST /markdown/from-html) | × |
| Word count + reading time as JSON | ✓ (POST /markdown/stats) | × (UI counter only) |
| GFM extensions toggleable | ✓ (fenced_code, tables, footnotes …) | partial / preset |
| Cloud-sync requirement (Google / Dropbox / OneDrive) | × | often prompted |
| Works without JavaScript | ✓ (server renders) | × (client-side editor) |
| Cost | $0, no signup, no API key | $0 for the editor |
Dillinger and StackEdit are designed to be opened in a browser. There is no public REST endpoint you can call from a build script, a webhook, or a comment-rendering pipeline. Forge Markdown is the inverse: the editor at /tools/markdown is one client on top of an API anyone can call:
curl -X POST https://forge-node.tail2b516d.ts.net/markdown/to-html \
-H 'Content-Type: application/json' \
-d '{"markdown":"# Hello
World."}'
The response is a JSON object with the rendered HTML. Drop that into your CMS, your forum, your support tool, or your static-site build step.
Most Markdown services are one-way: Markdown in, HTML out. Forge runs the reverse too:
curl -X POST https://forge-node.tail2b516d.ts.net/markdown/from-html \
-H 'Content-Type: application/json' \
-d '{"html":"<h1>Hello</h1><p>World.</p>"}'
That endpoint is what you reach for when a legacy CMS spits out HTML and you want to migrate the content into a Markdown-based store, or when an editor in your stack only exports HTML and you want a tidy diff in git instead of an exploded tag soup.
Every editor shows a word count somewhere in the corner. Far fewer let you ask for one programmatically. POST /markdown/stats takes Markdown and returns a structured response with word count, character counts (with and without whitespace), heading counts, link counts, and an estimated reading time. Useful for content dashboards, editor plugins, and pre-publish gates ("is this post under 280 words?").
StackEdit's onboarding nudges you toward Google Drive or Dropbox sync. Dillinger does similar with its own plugins. Forge Markdown does not store anything — you pass content in the body of a POST, you get the converted content back, and we keep nothing. For drafts that include unannounced product names or pre-publication content, that absence of cloud sync is the point.
/markdown/to-html, get sanitized HTML back, render it./markdown/from-html for a Markdown-first repo./markdown/stats in CI; fail the build if a post is under 400 words or over 3000./markdown/preview into a textarea-based admin tool for an instant rendered preview without bundling a full Markdown library into the front-end.Yes. No signup, no API key. We rate-limit per IP to keep abuse low; details in the Markdown API docs.
CommonMark by default, with GitHub-Flavored Markdown extensions toggleable per request: fenced code blocks, tables, footnotes, task lists, and a few others. Pass an extensions array on the POST body to override defaults.
No. Requests are processed in-memory and the response is returned synchronously. Standard nginx-style access logs (IP, path, status) capture the request shape but not the body content.
Try the Markdown tool, or browse the full free API catalog for 15 more developer APIs.