← All comparisons
vs typst

typst vs makesPDF — render-as-a-service vs typesetter

Different value prop — typst is a typesetter; we're a render API.

For: Authors evaluating typst for documents and weighing a hosted alternative.

typst

The one-line difference

typst is a modern typesetting system — think LaTeX successor — with its own markup language and compiler. You write .typ source, run a compiler, get a PDF. makesPDF is a hosted REST API that takes markdown or a compact DSL and returns a deterministic, PDF/A-2A + PDF/UA-1 compliant PDF. Different audiences: typst is for authors who want a great writing surface; makesPDF is for backends and agents that want a render endpoint.

Feature matrix

typst makesPDF
Shape Compiler + markup language Hosted REST API (/api/v1/*)
Authoring surface Custom typst syntax (Rust-flavored) Markdown, builder DSL, JSON
Runtime Local CLI / typst.app web editor Cloudflare Workers (we host)
Best for Books, papers, technical docs, math Invoices, receipts, reports, agent output
Math typesetting First-class, excellent Basic (markdown + Mermaid only)
Tagged PDF (PDF/UA-1) Limited (in development) Yes, by default
PDF/A archival Limited Yes (PDF/A-2A)
Determinism Yes Yes
Agent-first No Yes — skill file, MCP, x402
Programmability Local scripts in typst HTTP API from any language
License Apache-2.0 Proprietary hosted; skill file MIT

Same input, two outputs

A "Hello, Ada" report.

typst — write report.typ, compile:

#set page("a4", margin: 40pt)
#set text(font: "Inter", size: 12pt)

= Hello, Ada

Welcome to the report.
typst compile report.typ hello.pdf

makesPDF — one HTTP call:

curl -X POST https://makespdf.com/api/v1/md \
  -H "Authorization: Bearer $MAKESPDF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"markdown": "# Hello, Ada\n\nWelcome to the report."}' \
  -o hello.pdf

These don't compete. typst wants you to write .typ. We want a backend or agent to POST data.

When typst is the right call

  • You're writing a book, a paper, a thesis, or technical documentation. typst's typesetting and math support are excellent.
  • You want a single source file under version control that compiles offline. That's literally typst.
  • Your team is comfortable learning a new markup language for the quality payoff.

When makesPDF is the right call

  • You have a backend that needs to emit PDFs from data (invoices, receipts, reports, statements). You don't want a typesetter; you want an HTTP endpoint.
  • You're orchestrating an AI agent that generates documents on demand. typst is a non-trivial surface for an LLM to emit; markdown and our DSL are easy.
  • Compliance is a hard requirement. PDF/A-2A + PDF/UA-1 by construction, validated against veraPDF, no remediation step.
  • You need per-render billing (credits or x402 wallet) without running typst in your own infra.

Migration

These are usually different decisions, not migrations. If you're moving an existing typst-based pipeline to a hosted render API, your .typ source becomes a markdown template plus the builder DSL for precise layout. The math-heavy paths don't migrate cleanly — keep typst for those.