Convert Typst to Base64

Drag and drop files here or click to select.
Max file size 100mb.
Uploading progress:

Typst vs Base64 Format Comparison

Aspect Typst (Source Format) Base64 (Target Format)
Format Overview
Typst
Modern Typesetting System

Typst is a modern typesetting system launched in 2023, designed as a simpler and faster alternative to LaTeX. It features intuitive markup for headings, text formatting, math, and tables, combined with a scripting language for variables and functions. The Rust-based compiler provides incremental compilation with instant preview.

Typesetting Modern
Base64
Base64 Encoding

Base64 is a binary-to-text encoding scheme that represents binary data using a set of 64 printable ASCII characters (A-Z, a-z, 0-9, +, /). Defined in RFC 4648, it is widely used for encoding data in email attachments (MIME), data URIs in HTML/CSS, API payloads, and configuration files where binary data must be stored as text.

Encoding Data Transfer
Technical Specifications
Structure: Plain text with Typst markup and scripting
Encoding: UTF-8
Format: Modern typesetting language
Compiler: Typst CLI (Rust-based)
Extensions: .typ
Structure: Continuous string of ASCII characters
Character Set: A-Z, a-z, 0-9, +, / (= for padding)
Standard: RFC 4648, RFC 2045 (MIME)
Size Overhead: ~33% larger than original data
Extensions: .b64, .base64, or embedded in other formats
Content Support
  • Headings with = syntax
  • Built-in math mode with $ delimiters
  • Tables via #table() function
  • Variables and functions (#let, #set)
  • Bibliography with #bibliography()
  • Figures with #figure() and captions
  • Cross-references with @label
  • Code blocks with backtick syntax
  • Encodes any binary or text data
  • Safe for text-only transmission channels
  • Embeddable in JSON, XML, and HTML
  • URL-safe variant available (RFC 4648)
  • Line wrapping for MIME compatibility
  • Padding with = characters
  • Reversible encoding (lossless)
Advantages
  • Much simpler syntax than LaTeX
  • Incremental compilation with instant preview
  • Built-in scripting language
  • Excellent error messages
  • Fast Rust-based compiler
  • Modern package management
  • Universal ASCII representation
  • Safe for email and web transmission
  • No special character escaping needed
  • Supported by all programming languages
  • Lossless encoding and decoding
  • Simple to implement and use
Disadvantages
  • Newer ecosystem with fewer packages
  • Not yet widely adopted in academia
  • Limited journal template support
  • Fewer online resources and tutorials
  • Still evolving specification
  • 33% size increase over original
  • Not human-readable
  • Not a document format (encoding only)
  • No formatting or structure preserved visually
  • Requires decoding to access content
Common Uses
  • Academic papers and reports
  • Technical documentation
  • Mathematical documents
  • Presentations and slides
  • Resumes and cover letters
  • Email attachments (MIME encoding)
  • Data URIs in HTML and CSS
  • API request/response payloads
  • Embedding data in JSON/XML
  • Configuration file data storage
Software Support
Editor: Typst app (web), VS Code with Tinymist
Compiler: Typst CLI (open source, Rust)
Packages: Typst Universe (package registry)
Platforms: Windows, macOS, Linux, Web
Languages: Python, JavaScript, Java, C, Go, Rust, etc.
CLI Tools: base64 (Unix), certutil (Windows)
Web APIs: btoa()/atob() in browsers
Libraries: Built into all major standard libraries
Best For
  • Academic papers and theses
  • Technical documentation
  • Mathematical content
  • Modern document typesetting
  • Email attachments
  • Data URLs
  • API payloads
  • Embedding binary in text
Version History
Introduced: 2023 (Martin Haug & Laurenz Mäger)
Language: Written in Rust
Status: Active development
License: Apache 2.0
Introduced: 1987 (RFC 989)
Current: RFC 4648 (2006)
Status: Internet standard
Type: Encoding scheme

Why Convert Typst to Base64?

Converting Typst files to Base64 encoding transforms your document content into a universally safe text representation that can be transmitted through any text-based channel. This is essential when you need to embed Typst document content in JSON APIs, email messages, database fields, or configuration files where raw text with special characters might cause parsing issues.

Base64 encoding ensures that all characters in your Typst source, including special markup characters like #, =, $, and Unicode text, are represented using only safe ASCII characters. This makes the content compatible with systems that may not handle raw UTF-8 or special characters properly, such as legacy email systems, certain API endpoints, or XML documents.

Developers and system administrators frequently use Base64 encoding when storing document templates in configuration management systems, embedding content in environment variables, or transmitting file content through REST APIs. The encoding is completely reversible, so the original Typst content can be perfectly recovered by decoding the Base64 string.

Key Benefits of Converting Typst to Base64:

  • Safe Transmission: All content encoded in ASCII-safe characters
  • API Compatible: Embed document content in JSON, XML, or YAML payloads
  • Email Safe: Content survives MIME email encoding without corruption
  • Database Storage: Store document content in text-only database fields
  • Universal Support: Decodable by any programming language
  • Lossless: Perfect round-trip encoding and decoding
  • No Dependencies: Base64 tools are built into every major platform

Practical Examples

Example 1: Simple Document Encoding

Input Typst file (hello.typ):

= Hello World

This is a *simple* Typst document.

$ E = m c^2 $

Output Base64 file (hello.base64):

PSBIZWxsbyBXb3JsZAoKVGhpcyBp
cyBhICpzaW1wbGUqIFR5cHN0IGRv
Y3VtZW50LgoKJCBFID0gbSBjXjIg
JA==

Example 2: API Payload with Typst Template

Input Typst file (template.typ):

#let title = "Report"
#set text(font: "Inter", size: 12pt)

= #title
== Summary
Data analysis for Q4 2025.

#table(
  columns: 2,
  [Metric], [Value],
  [Revenue], [$1.2M],
)

Output Base64 (embedded in JSON):

{
  "template": "I2xldCB0aXRsZSA9ICJS
    ZXBvcnQiCiNzZXQgdGV4dChmb250O
    iAiSW50ZXIiLCBzaXplOiAxMnB0KQ
    oKPSAjdGl0bGUKPT0gU3VtbWFyeQ
    oKRGF0YSBhbmFseXNpcyBmb3IgUTQ
    gMjAyNS4=",
  "format": "typst"
}

Example 3: Configuration Storage

Input Typst file (invoice.typ):

#import "@preview/invoice:0.1.0"

= Invoice \#2025-001
*Date:* 2025-12-01
*Client:* Acme Corp

#table(
  columns: 3,
  [Item], [Qty], [Price],
  [Consulting], [10h], [$1,500],
)

Output Base64 file (invoice.base64):

I2ltcG9ydCAiQHByZXZpZXcvaW52
b2ljZTowLjEuMCIKCj0gSW52b2lj
ZSBcIzIwMjUtMDAxCipEYXRlOiog
MjAyNS0xMi0wMQoqQ2xpZW50Oiog
QWNtZSBDb3JwCgojdGFibGUoCiAg
Y29sdW1uczogMywKICBbSXRlbV0s
IFtRdHldLCBbUHJpY2VdLAogIFtD
b25zdWx0aW5nXSwgWzEwaF0sIFsk
MSw1MDBdLAop

Frequently Asked Questions (FAQ)

Q: What is Base64 encoding?

A: Base64 is a binary-to-text encoding method that represents data using 64 ASCII characters (A-Z, a-z, 0-9, +, /). It converts every 3 bytes of input into 4 ASCII characters. It is defined in RFC 4648 and is universally supported across programming languages and platforms.

Q: Can I decode the Base64 back to the original Typst file?

A: Yes. Base64 encoding is completely lossless and reversible. You can decode the Base64 string back to the exact original Typst content using any Base64 decoder. The round-trip preserves every character, including Typst markup symbols and Unicode text.

Q: Why is the Base64 output larger than the original file?

A: Base64 encoding increases file size by approximately 33% because it encodes every 3 bytes as 4 characters. For example, a 30 KB Typst file becomes about 40 KB in Base64. This overhead is the tradeoff for safe ASCII-only representation.

Q: Can I embed the Base64 output in a JSON API request?

A: Yes. Base64 encoded content is safe to include as a JSON string value. It contains no characters that would break JSON parsing (no quotes, backslashes, or control characters in the encoded output). This makes it ideal for transmitting document content through REST APIs.

Q: Is the Typst markup preserved or is it compiled first?

A: The Base64 encoding operates on the raw Typst source text, preserving all markup, scripting commands, and formatting exactly as written. The Typst file is not compiled or processed before encoding. The recipient can decode it and compile it with the Typst compiler.

Q: What tools can decode the Base64 output?

A: The base64 command is available on Linux and macOS. On Windows, use certutil or PowerShell. All programming languages include Base64 support: Python (base64 module), JavaScript (atob()), Java (Base64 class), and many more.

Q: Can I use Base64 for email attachments?

A: Yes. MIME email encoding uses Base64 to attach files safely. Your Typst file encoded in Base64 can be included as an email attachment or embedded inline. Email clients automatically handle Base64 decoding when recipients open the attachment.

Q: Is there a URL-safe variant of Base64?

A: Yes. RFC 4648 defines a URL-safe Base64 variant that uses - and _ instead of + and / characters. This variant is useful when embedding encoded content in URLs or filenames. Our converter uses the standard Base64 alphabet by default.