General 14 min read

Markdown vs HTML vs Typst: An Honest Comparison of Three Plain-Text Formats (and Which Job Each Actually Wins)

MMNMNOTE
markdownhtmltypstplain textwriting toolstypesetting

Markdown, HTML, and Typst are not rivals. They sit on three different layers of the same pipeline: you author in Markdown, deliver in HTML, typeset in Typst. "Which is best?" is the wrong question. The honest answer is to pick by job — and the one thing all three share is plain-text source you can read and own.

That framing is not a rhetorical trick. It comes from the creator of Markdown himself. John Gruber's project page describes Markdown as "a text-to-HTML conversion tool for web writers."1 A format defined as a tool that converts into HTML cannot also be HTML's competitor. It is the layer above it. The same logic separates Typst, a typesetting system that compiles to PDF, from both. Three jobs, three layers, one substrate. The comparisons that pit them against each other are answering a question nobody productive actually asks.

Why "Markdown vs HTML" is the wrong fight

Markdown and HTML are not competing formats. Markdown is an authoring shorthand that converts into HTML; HTML is the browser's delivery language. Gruber states it plainly: Markdown "is not a replacement for HTML… Its syntax is very small, corresponding only to a very small subset of HTML tags."2 You write in one and ship in the other.

The relationship is cooperative, not adversarial. Where Markdown runs out of vocabulary, it hands the work straight to HTML. "For any markup that is not covered by Markdown's syntax, you simply use HTML itself," Gruber writes. "There's no need to preface it or delimit it to indicate that you're switching from Markdown to HTML; you just use the tags."2

Markdown's design goal explains why the two split cleanly. "The overriding design goal for Markdown's formatting syntax is to make it as readable as possible," so that "a Markdown-formatted document should be publishable as-is, as plain text."1 HTML optimizes for the machine that renders it. Markdown optimizes for the human who writes it. They are halves of one workflow.

Where Markdown actually loses

Markdown's honest weakness is that "Markdown" is not one thing. Gruber's 2004 original, written with help from Aaron Swartz and released as a syntax description plus a Perl script,3 was deliberately under-specified. The CommonMark project exists precisely because of that. Its spec states it bluntly.

CommonMark's authors do not hedge: "John Gruber's canonical description of Markdown's syntax does not specify the syntax unambiguously."4 The consequence followed naturally. "Because there is no unambiguous spec, implementations have diverged considerably."4 In the next decade after 2004, "dozens of implementations were developed in many languages," many extending the original with their own conventions "for footnotes, tables, and other document elements."3 That is why the same .md file can render one way in a GitHub wiki and differently somewhere else. A real, daily friction, not a hypothetical one.

Markdown loses on two more fronts, and both are honest. Its semantics and layout are minimal: it covers headings, emphasis, lists, links, and little else, delegating everything richer to HTML (Gruber's own concession above). And it is fundamentally a source format, not a display or print format. You still need a renderer.

Markdown is the fastest thing to write and the most pleasant to read raw. It is also the weakest at fine layout, precise typesetting, and a single authoritative spec. None of that has stopped the industry from settling on it as the default knowledge format, which is its own kind of durability (the case for that is in Markdown as an open knowledge format).

Where HTML actually loses

HTML's strengths are real: it is the only format browsers natively render, it carries the web's richest semantics and accessibility model, and it is one continuously-updated standard rather than a pile of versioned forks. Its honest weakness is that none of that makes it pleasant to write. HTML is a delivery target, not an authoring comfort zone.

Hand-authoring prose in HTML means wrapping every paragraph, every emphasis, every list item in tags: content and structure tangled together, verbose by design. Nobody takes meeting notes in raw HTML.

The standard itself is healthier than its reputation. The WHATWG describes its specs as "Living Standards," meaning "they are standards that are continuously updated as they receive feedback," and that "new features get added to them over time."5 The HTML Living Standard carries a literal masthead date showing it was last updated the day this post was researched.6 There is no "HTML6" coming; the spec just keeps shipping. So HTML's loss is not instability. It is ergonomics. HTML is the format you deliver to, not the one you draft in.

Where Typst actually loses

Typst is the youngest of the three and the most ambitious: a markup-based typesetting system that compiles to print-quality PDF, with typesetting-grade math, bibliographies, and cross-references. Co-creator Laurenz Mädje says it "mixes plain text, lightweight markup, and a complete programming language into a single consistent syntax."7 Its honest losses are maturity and reach.

Typst is pre-1.0; the current release is v0.15.0, shipped on 2026-06-15,8 which means fast movement and the possibility of breaking changes. It also has a compile step: Typst source is readable markup, but it is source, not something "publishable as-is" the way a Markdown file is.

Its ecosystem is thin where it matters most for its target users. Lee Phillips, reviewing Typst for LWN, names the caveat directly: "Almost no journals that provide LaTeX templates for submissions offer a Typst option, so physicists and mathematicians adopting Typst will need to find a way to convert their manuscripts."9

Momentum is genuine. GitHub's 2025 Octoverse report lists Typst second among "the fastest-growing languages by percentage growth," at over 108% year-over-year (behind only Luau), and calls it "a modern LaTeX alternative."10 Typst's repository has passed 50,000 stars.8 The honest read is a fast-rising LaTeX alternative, not a Markdown replacement, and not yet an institutional default. The full Typst-versus-LaTeX case lives in our Typst deep-dive.

The honest comparison, side by side

The clearest way to see "three layers, not three rivals" is to lay the three against the axes that actually expose their tradeoffs. Read the Primary job row first — it is the whole argument. Each cell is defensible from a primary source; the judgment-call cells use hedged language rather than fake precision.

AxisMarkdownHTMLTypst
Primary jobAuthor / capture prose & notes fast1Deliver / display in a browser5Typeset / print to precise PDF8
Human-readable unrendered?Yes — "publishable as-is, as plain text"1Poor — tag soup, unpleasant rawPartial — readable markup, but it's source + a compile step
Authoring effort for proseLowestHighest (verbose; mixes content + structure)Low-medium (lightweight markup + optional code)7
Layout / typesetting powerWeak — "very small… subset of HTML tags"2Strong via CSS, but you assemble itStrongest — math, bibliography, cross-refs7
Semantics / accessibilityMinimal — delegates to HTML2Best — semantic elements, ARIA, screen readers5Layout-focused PDF output, not web a11y
Output targetIntermediate source → converts to HTML1The browser (final display)PDF (final print)
Spec stabilityFragmented — original ambiguous; flavors diverge4Living Standard — one continuously-updated spec5Young / pre-1.0 — v0.15.0, breaking changes possible8
LLM fluencyHighest (the format models read most fluently)High (huge corpus; verbose)Lower (smaller, newer corpus — see below)
Ecosystem maturity (2026)Vast / ubiquitousUniversal (every browser)Thin vs LaTeX — "almost no journals… offer a Typst option"9
Lock-in riskLow — plain text you ownLow — open standardLow — plain-text .typ source you own
Best forNotes, READMEs, drafts — anything you writeWeb pages — anything displayedTheses, papers — anything typeset

One cell needs an honest footnote rather than a number. Typst's LLM fluency is lower than Markdown's, but no published statistic quantifies the gap, so this stays an observation, not a measurement.

The mechanism is straightforward: language models read the format they have seen most, and Markdown has been public since 2004 and HTML since the 1990s, while Typst has only been open-source since March 2023.11 A smaller, younger training corpus means less fluency. Markdown's own AI-readability is a longer story in its own right, and is not re-argued here.

What this means for what you actually do

Pick by job, and the choice stops being a fight. Write your notes, drafts, and READMEs in Markdown because it is the fastest to author and the only one readable as-is. Deliver to the web as HTML. Typeset to PDF with Typst or LaTeX when you need a thesis or paper, checking first whether your venue accepts it.

The layers even nest: a Markdown note can hold a Typst block that typesets in place, so you author and typeset without leaving plain text.

The durable decision underneath all three is the substrate. Markdown, HTML, and Typst are all plain text you can read, diff, grep, and open in twenty years. Steph Ango, Obsidian's CEO, puts the principle well: "File over app is a philosophy: if you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read."12

That is the thread connecting all three layers — and the reason the format wars miss the point. The question was never which format wins. It was whether the file outlives the tool.

Frequently asked questions

Is Markdown better than HTML?

Wrong question — they are different layers. Markdown is for writing and converts into HTML;1 HTML is for displaying in a browser.5 Markdown even delegates to HTML for anything its small syntax cannot express.2 You author in Markdown and deliver as HTML; neither replaces the other.

Can Typst replace Markdown?

Not really. Typst is a typesetting system with a compile step, built to produce precise PDF output with math and bibliographies.7 Markdown is for fast capture you read as-is, with no compile step.1 They do different jobs: Typst typesets; Markdown authors. Typst targets LaTeX, not Markdown.

Should I write in Markdown or HTML?

Write in Markdown — it has the lowest authoring effort and is readable unrendered.1 Deliver as HTML, and drop to inline HTML only for the rare markup Markdown does not cover, exactly as Gruber's design intends: "you simply use HTML itself."2 The two are a workflow, not a choice.

Is Typst a replacement for LaTeX or Markdown?

Typst is positioned as a LaTeX alternative, not a Markdown one — GitHub's Octoverse report calls it "a modern LaTeX alternative" for academic and technical publishing.10 It competes for theses and papers, not for notes. The full LaTeX comparison is in our Typst deep-dive.

What version is HTML — is HTML5 still a thing?

HTML is now a WHATWG Living Standard, continuously updated rather than versioned: its specs "are continuously updated as they receive feedback," with "new features… added over time."5 "HTML5" survives as a buzzword, but the standard itself has no current version number — it just keeps shipping.6

Why does the same Markdown render differently on different sites?

Because "Markdown" is not one specification. Gruber's 2004 original was deliberately ambiguous, and "implementations have diverged considerably" over the decade since, per CommonMark's own spec.4 GitHub Flavored Markdown, MultiMarkdown, Pandoc, and CommonMark all interpret edge cases differently, so one .md file can render two ways.


Stop asking which format wins and start asking which job you are doing — author, deliver, or typeset — because the file you can still read in twenty years matters more than the tool you used to make it. Whichever layer you work in, the win is plain-text source you own: greppable, diffable, convertible, and beholden to no single app.

MNMNOTE applies that principle to one job only: notes, kept as open Markdown, local-first on your own device, offline, with no account and bring-your-own-key AI. It is a notes app, not a typesetting engine and not a web framework. It authors at the Markdown layer and leaves HTML delivery and Typst typesetting to the tools built for them. You can open it in a browser tab and write the first line.

Footnotes

  1. "Markdown," John Gruber, Daring Fireball, https://daringfireball.net/projects/markdown/, accessed 2026-06-17. 2 3 4 5 6 7 8

  2. "Markdown Syntax Documentation" (Inline HTML), John Gruber, Daring Fireball, https://daringfireball.net/projects/markdown/syntax, accessed 2026-06-17. 2 3 4 5 6

  3. "CommonMark Spec, version 0.31.2" (§1.1 What is Markdown?), CommonMark, https://spec.commonmark.org/0.31.2/, accessed 2026-06-17. 2

  4. "CommonMark Spec, version 0.31.2" (§1.2 Why is a spec needed?), CommonMark, https://spec.commonmark.org/0.31.2/, accessed 2026-06-17. 2 3 4

  5. "FAQ" (What does "Living Standard" mean?), WHATWG, https://whatwg.org/faq, accessed 2026-06-17. 2 3 4 5 6

  6. "HTML Living Standard," WHATWG, https://html.spec.whatwg.org/multipage/, accessed 2026-06-17. 2

  7. Laurenz Mädje, "Typst: A Programmable Markup Language for Typesetting," master's thesis, Technische Universität Berlin, 2022, https://laurmaedje.github.io/programmable-markup-language-for-typesetting.pdf, accessed 2026-06-17. 2 3 4

  8. "typst/typst," GitHub, https://github.com/typst/typst, accessed 2026-06-17 (over 50,000 stars; release v0.15.0, 2026-06-15). 2 3 4

  9. Lee Phillips, "Typst: a possible LaTeX replacement," LWN.net, 2025-09-16, https://lwn.net/Articles/1037577/, accessed 2026-06-17. 2

  10. "Octoverse: A new developer joins GitHub every second," GitHub, 2025-10-28, https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/, accessed 2026-06-17. 2

  11. "Typst," Wikipedia, https://en.wikipedia.org/wiki/Typst, accessed 2026-06-17.

  12. Steph Ango, "File over app," https://stephango.com/file-over-app, accessed 2026-06-17.