ADR-01: Typst as the document formatΒΆ
ContextΒΆ
TINO needed a document format that could produce professional, print-ready output while being suitable for automation and accessible to non-technical contributors. The candidates were:
Markdown
reStructuredText
LaTeX
Typst
DecisionΒΆ
TINO is built around Typst exclusively, using the official Rust-based compiler β not any third-party TypeScript reimplementation. The Typst CLI is invoked as a subprocess for compilation to PDF and SVG (preview).
ConsequencesΒΆ
PositiveΒΆ
- Typographic controlTypst produces publication-quality output β page layout, headers and footers, tables, math, citations β without the complexity of LaTeX.
- Approachable syntaxThe learning curve is shallow enough for the whole team, not just developers.
- Fast compilationTypstβs incremental compiler is significantly faster than LaTeX, making live preview practical.
- Package ecosystemTypst Universe provides reusable templates.TINO also supports local packages for templates, corporate design, and much more.
- AI-friendly targetTypstβs clean, structured syntax makes it a practical output format for language-model-driven document generation (see π€·π»ββοΈ Rationale).
NegativeΒΆ
- CLI couplingTINO is tightly coupled to the Typst CLI binary β a breaking change in its interface requires a TINO update.
- No migration pathTeams already invested in LaTeX or Markdown cannot reuse existing documents without conversion.
- Younger ecosystemTypst is younger than LaTeX. Some specialised packages available in TeX do not yet have equivalents.