The editorial argues HTML export's real significance isn't replacing static site generators, but eliminating the manual re-authoring step for documents that ship as both PDF and web. Academic papers, RFCs, and technical books currently get authored in LaTeX, exported to PDF, then redone in Markdown — Typst's single-source dual output collapses that workflow.
The editorial frames the changelog as denser and more ambitious than two years of incremental releases — bundling HTML export, content-driven page breaks, PDF/A archival profiles, ICC color, OpenType per-run features, and CLI variable injection. The breadth signals Typst maturing from a LaTeX alternative into a serious typesetting toolchain being wired into CI pipelines.
The editorial highlights that the registry will reject manifests missing description, repository, or license fields, and that typst.toml gains a categories array. Anyone who shipped a Typst package in the last year has homework — a deliberate tightening of ecosystem standards that signals the registry is being treated as a real distribution channel rather than a sandbox.
Typst 0.15.0 landed on June 16 with a changelog that reads less like a point release and less like the incremental polish the project has been shipping for two years. The headline: experimental HTML export is in, gated behind `--features html` but functional enough that the team is asking for production feedback. A Typst document can now compile to either a PDF or a semantic HTML tree from the same source, with `html.elem` and `html.frame` primitives for dropping into raw tags or embedding typeset fragments inside HTML output.
The rest of the changelog is dense. Content-driven page breaks via `pagebreak(to: ...)`, a new `context` expression that captures the current styling environment, first-class support for PDF/A-2b and PDF/A-3b archival profiles, ICC color profiles, OpenType feature tags on a per-text-run basis, and a `typst init --package` command that scaffolds a new package against the registry's manifest schema. The math module gets `mat` delimiter inference and better alignment primitives. The CLI gains `--input` for passing variables from the shell into a compile, which is the kind of thing you only add when people are wiring Typst into CI pipelines.
Package authoring tightened: the registry now rejects manifests with missing `description`, `repository`, or `license` fields, and `typst.toml` gains a `categories` array. If you've shipped a Typst package in the last year, you have homework.
HTML export is the load-bearing change, and not for the reason most people will assume. The interesting question isn't "can Typst replace my static site generator" — it can't, and isn't trying to. The interesting question is what happens to the long tail of documents that currently get authored in LaTeX, exported to PDF, and then manually re-authored in Markdown or HTML for the web version. Academic papers with companion blog posts. RFCs with public mirrors. Technical books sold as PDF and serialized as a website. The dual-target compile collapses two parallel toolchains into one source of truth, and that's a class of work nobody enjoys doing twice.
The `pagebreak(to:)` primitive is small and easy to undersell. LaTeX's page model is famously imperative — you tell it where to break, then fight it when it doesn't. Typst's original model was already more declarative, but content-driven breaks ("break to the next chapter," "break to the next odd page that contains a section heading") are the kind of layout logic that templates have always wanted to express and historically had to fake with `\clearpage` plus prayer. For anyone building reusable templates — thesis kits, report scaffolds, invoice generators — this is the feature that makes templates compose instead of leak.
The package registry hardening is the quietest important change. Typst Universe has been growing steadily — last count, north of 500 packages — and the registry has so far operated on convention. Mandatory metadata fields and a `categories` taxonomy are the kind of governance moves you make when you're planning for a much larger surface area. Compare with npm circa 2014, or crates.io circa 2016: the moment package metadata gets enforced is the moment the ecosystem stops being a hobbyist scratchpad and starts being something a procurement department will eventually audit.
The HN thread (298 points at time of writing) is dominated by two camps. The PDF/A people are quietly thrilled — archival-grade output without a LaTeX toolchain was the missing piece for institutional adoption, and PDF/A-3b lets you embed source files inside the PDF for reproducibility. The web-output people are split between "finally" and "why are you doing this in a typesetter," which is a fair question with a non-obvious answer: the layout primitives that make typesetting tractable (boxes, anchors, content queries) are exactly the primitives that make complex HTML layouts tractable too. A `figure` element with a caption that auto-numbers and cross-references across both PDF and HTML output is genuinely hard to do from either side alone.
If you're maintaining a LaTeX pipeline for anything other than journal submission requirements, this release moves the calculus. The remaining LaTeX-only holdouts are roughly: specific journal classes (still LaTeX-mandatory), heavy custom TikZ work, and BibTeX integrations with field-specific styles. Everything else — internal reports, RFCs, books, technical docs, slides via `touying` or similar — is now within reach of a single-source Typst pipeline that outputs both PDF and HTML. The migration cost was always the blocker; the dual-target output cuts it roughly in half because you stop maintaining two copies.
If you've been wiring Typst into CI, the new `--input` flag is the missing piece for templated documents. You can now pass build metadata, git SHAs, environment names, or customer IDs into a compile without preprocessing the source file. Combined with `typst watch` and the existing `--root` flag, the CLI is finally feature-complete for treating documents as build artifacts in the same way you treat binaries.
Package authors should audit `typst.toml` against the new manifest rules before the next push. The registry's preflight will reject incomplete manifests, and the `categories` field is going to determine discoverability once the front-end work lands. Pick categories that match what users actually search for, not what your package technically does — the same lesson npm and PyPI learned the hard way.
HTML export is marked experimental, which in Typst-land has historically meant "shipping in 0.16, stable by 0.17." The real test is whether the team can hold the line on a single source compiling to both targets without the HTML output degrading into a second-class citizen — the failure mode that killed every previous attempt at this (Pollen, Scribble, Sphinx's PDF output, take your pick). The early signal is good: HTML export was clearly designed alongside the layout engine, not bolted onto a PDF-first compiler. If 0.16 lands MathML export and CSS Grid-aware layout primitives, the LaTeX-to-web pipeline as a category gets quietly absorbed.
I'm currently working on my fourth book produced using Typst, and it has been nothing but amazing. LLMs struggle with Typst a bit but other than that it has been an absolute joy to work with.I have a pretty good workflow set up for publishing these books, which are mostly collections of student
Typst also has native scripting! For fun, I've been working on a small statistical distributions library in Typst, distro[^1] that uses plain Typst.It's really nice having a decently powerful scripting component, it makes for some fun literate-style programming. You can package things up p
I have nothing but great things to say about typst, and this is my personal favorite from this release:"A single document can now contain multiple bibliographies"
HTML support just keeps getting better and better! Mathematical equations are now automatically exported to MathML (thanks to @mkorje)[1] [1]: https://github.com/typst/typst/pull/7436
Top 10 dev stories every morning at 8am UTC. AI-curated. Retro terminal HTML email.
As a former software developer, now turned student (studying theology while I train to become a pastor), Typst has been great for writing my dissertation with one notable exception: it really doesn't handle footnotes well. Specifically, see:https://github.com/typst/typst