r/typst

▲ 11 r/typst+1 crossposts

I read a Zerodha blog post about PDFs and spent 4 months building a no-code PDF tool

I read Zerodha's engineering post "1.5 million PDFs in 25 minutes" where they ripped headless Chrome out of their pipeline and switched to Typst, a Rust-based typesetting engine. (Zomato had a similar writeup.) The number that stuck with me was theirs, not mine: a 2,000-page doc that took ~18 min in LaTeX came out in about a minute with Typst.

Even my Company used html2pdf to generate PDFs(But I didn't know the pros and cons to be honest!!), so I tried Typst myself over a weekend. The speed was real. Documents came out in milliseconds, no Headless browser anywhere.

But Typst is a language. You write code to get a document. Great if you're an engineer, but the people who actually need PDFs all day (founders doing invoices, ops people doing reports, marketers doing certificates) aren't going to learn typesetting syntax. So the speed was useless to most of them.

That "somebody should put a visual layer on this" thought is where I got stuck. Four months later I have Cellystial.

What it is: a drag-and-drop builder where you design a template (no code), plus a REST API. Build the layout once, send a JSON payload, get a pixel-perfect PDF back in milliseconds. Rust + Typst under the hood, no html2pdf/headless browser in the stack. I also wired up an n8n node for the self-hosted crowd (Official on n8n Cloud).

Some things I learned that might be useful even if you never touch this:

  • "Just put a UI on it" is never just a UI. Mapping a drag-and-drop canvas onto a typesetting language meant building a whole intermediate representation plus a JSON/typst conversion for it. That part alone ate months.
  • Warm worker pools beat spawn-per-request by a mile. My first version started a fresh process per render and basically all the latency was startup cost. Keeping workers warm got renders down to single-digit milliseconds. Obvious in hindsight, wasn't at the time.
  • Every "small" feature (charts, images, password protection) turned into its own multi-day(sometimes weeks) thing once real edge cases showed up.

Where I'd like you to poke holes:

  • "Design a template, send JSON, get a PDF." Does that sentence actually land, or you feel they are just words and marketing gimmick? You can react without leaving the thread.
  • For those of you generating PDFs now (Puppeteer, wkhtmltopdf, a paid API), what would make you even try switching? What's the dealbreaker?
  • The visual builder is the part I'm least sure about. Does it feel like a real tool or a toy? (Major of my initial time was spent on building a visual builder)

Happy to drop the Zerodha/Zomato posts in a comment, they're a good read regardless of my thing.

Honestly more interested in what's wrong than what's nice.

reddit.com
u/Weird-Inevitable882 — 4 days ago
▲ 0 r/typst

a sense of Python hegemony in the typst documentation

At first, it bugs me that the official documentation frequently uses obscure terms like "dictionary" and "positional" without any obvious definition. The ambiguous, loosely-defined syntax and the ubiquitous multiple- syntactic sugar that exhaust my mind when reading codes.

I'm new to typst (and not to programming). It took me a long while to realize that "dictionary" means "associative array," and that these are actually Python-centric terminology. While the documentation explicitly says that "this tutorial does not assume prior knowledge of Typst, other markup languages, or programming," it does not mention anything about inheriting these terminology from Python and goes on and assumes everyone has that knowledge, and not anything else. I know Python is THE only dominant programming language, and I know the coding world is not friendly to the "old-timers" but I hope it doesn't mean having to exile and marginalize others and their users. Maybe this is especially true in developing countries.

I have been programming since 2004 and continued for about a decade. The major languages I knew of and worked with were a little bit of everything from BASIC and SQL to HTML and Java, to the then newly popularized Python. I wasn't a heavy coder. I learn it only for fun and leisure. My work and life are completely coding-free.

Then I retreated from coding completely for another decade until now, when I have to learn typst to use in my work.

It's just painful that in every tutorial I come across, people speak Python, not just this lousy documentation!

reddit.com
u/oueikak — 4 days ago
▲ 19 r/typst

Is anyone developing a note-taking app using Typst files?

I think it would be really useful. I find Typst so much consistent than Markdown...

reddit.com
u/rgouveiamendes — 4 days ago
▲ 49 r/typst

A Text editor for Typst

Hello everyone. I have build one offline editor for Typst, it is heavily effected by overleaf and it's open-source. Feel free to give it a try. Also as a physics student, I have added things so that you can use mathematica, python and Julia if you have them in the system.

Featues : https://youtu.be/77Ddg3bAP8s?si=h4i2TRH7STfdvDLz

GitHub: https://github.com/aburousan/typsteditor

Live PDF preview with auto-recompile, zoom / fit-to-width, and double-click a word to jump to it in the source. Editor: Typst syntax highlighting , completions, cross-reference autocomplete, word count, file tree (create files & folders, upload images), outline, a clickable Problems panel, alignment shortcuts, and resizable panes.

Insert menu (grouped submenus): title block / author / institute / abstract, headings, inline / block / aligned / numbered equations, matrices, a math & physics symbol picker (physica), bullet & numbered lists, figures, images, tables, 2D/3D plots, code blocks, links, cross-references and labels — most with a center on page option.

Numbering on by default; toggle it on the heading/equation under the cursor with ⌘⇧N. Plots: 2D via cetz + cetz-plot, 3D surfaces via cetz (pure Typst) or Python/matplotlib.

Run code → insert result (Insert → Compute): Python, Julia or Wolfram. Insert the text output, a generated figure, or — in Equation mode — write plain maths (e.g. D[Sin[x^2], x]) and get a typeset equation automatically (LaTeX via mitex). Templates from Typst Universe with a rendered preview.

Import data (CSV / JSON / YAML / TOML) — Insert → Import Data drops the file in and wires up the matching Typst reader.

There are some bugs I am aware of and will fix them ASAP.

u/Rousan99 — 5 days ago
▲ 7 r/typst

QR Code

Hey Guys. Can some one guide me is there any package or native support in typst to put QR code in documents like in header , footer or in any margin area?

reddit.com
u/WetAlgorithm — 4 days ago
▲ 8 r/typst

How I scaffold my typst documents

Just wanted to share the way I manage my typst documents. Basically, I love using typst just to write documents in general, like, instead of using Google Docs, Word, whatever ...

I wanted a system in order to re-use my templates without copy pasting whatever previous typst project I had, then "remaking" it into my new document.

So I took some inspiration for how shadcn works: one just scaffolds the thing. Like, instead of having it as some kind of dependency in some package system, you have all the stuff as "first class code".

So the idea is through github to just have a sh file that one can curl and execute, then it just scaffolds a template for me. The project template is designed to be fully reproducible, so it will include font files as well.

Link to repo:

https://github.com/Napam/typst-templates

Just wanted to share this in case this scaffolding pattern may be useful for others!

EDIT:

Just want to elaborate more on the motivation behind this (copy pasted from a comment):

One of my motivations was to minimize system setup and have better reproducability.

One could have templates as packages in $XDG_DATA_HOME/typst/packages in order to have globally re-usable templates that one can tweak on.

Issue with that is:

- If one updates the global templates, old documents may change on recompilation, and it requires one to set up the templates in the environment.

- More font handling to manage. E.g. you have a font available on a laptop (say, Mac), then you want to re-compile on your Linux desktop, then you may not have the font you used on your mac.

What I wanted for my typst document-projects:

- Just a dir with fonts, all the required typst code, and a justfile for convenience. The "document" is entirely self contained, and will should look the same (assuming typst doesn't suddenly change a lot in how they render in newer versions)

u/NapCo — 4 days ago
▲ 0 r/typst

I'm developing a new Typst editor

Hi everyone, I've recently been working on a Typst-based editor application. It's a desktop app built on a BlockNote + Tauri + Typst architecture. My main goal is to explore a new storage solution for docx documents. As we know, the underlying storage format of existing docx files is OOXML, which isn't very friendly to large language models. Through my exploration, I found that BlockNote's block-based approach is a better fit , it stores content in JSON format, which is much more LLM-friendly.

The goal of this software is to use BlockNote to make it easy for non-technical users to edit documents, and to allow exporting the final document to PDF. The key feature of this product is that a large language model can assist not only with content editing , writing, polishing, refining, etc. but also with styling: text color, font size, bold/not bold, and other formatting operations can all be handled with LLM assistance.

I've had this idea for a while now, and I've built a simple demo. The attached screenshot shows the interface, which is divided into three columns: the leftmost is the LLM chat area, the middle is the BlockNote editor, and the right side is the Typst preview.

My ultimate goal is that whenever the user edits content in the editor, the Typst preview updates in real time. As we know, Typst has the concept of templates, so I've added a template switcher and settings entry above the editor area . currently there are only a handful of templates available.

That's everything I wanted to share. I'd really appreciate any feedback on this product. Thanks!

u/Live_Possession_9839 — 5 days ago
▲ 102 r/typst

Edist, The native macOS Typst editor

Quick presentation

During the last weeks, I developed Edist, a native macOS Typst editor that bundles all the Typst tools (compiler, live preview, completion, ...). I dont like using vsCode, and I very much like using native apps. The idea is not to replace the official webapp but to have a native-feeling macOS Typst editor to edit offline, without collaborative features. I hope the "bundled in one app" approach and a beautiful app will help Typst adoption.

Features

  • Beautiful and native editor with syntax highlighting, useful shortcuts (for bold, italic, ...), good performances, find and replace, animated caret...
  • live preview (as fast as the Typst website, feels native) with automatic resizing, quick export to PDF, self-window mode (perfect for multi-screen)
  • Jump between editor & preview by clicking in the preview to go to matching text in the editor. Editing in the editor jumps to the corresponding part in the preview.
  • Automatic online package imports (no setup just import packages in your typst file) / local library imports (import local libraries, add local libraries)
  • Errors handling (error panel in the sidebar + inline error indicators)
  • Machine fonts can be used without any setup
  • Layout in the sidebar
  • Handwritten math symbols recognition (draw symbol and it gives the Typst markup) 
  • Typst preview lock : lock the preview on a Typst file, very useful if you are using multiple documents (ex: one per chapter)
  • And more...

Pricing

This software is not free. There is a 7-day no-login trial for testing, and then you must pay 10€ (release price, 20€ in some weeks) for lifetime upgrades. This is always a hard decision to make software paying, especially when backed by an open-source community. Here is why I took this decision:

  • I am still a student, and developing Mac apps comes at a cost (i.e the 100€ to notarize apps 🥲)
  • It is better for long-term support
  • There are alternatives like tinymist + VSCode which are very good. I am not gatekeeping

I hope it can help fellow reasearchers / students! You can download it on edist.app. Suggestions and feedbacks are welcomed, the idea is to make this app a standard.

u/jules_leprince — 6 days ago
▲ 66 r/typst+3 crossposts

Made a video in bevy using MotionGfx & Velyst!

A while ago I posted my progress on Velyst, on rendering Typst in realtime game engine bevy. This time I want to show you something I made using it, combined with motiongfx, my motion graphics engine!

Link to YouTube (if u care to like & subscribe!): https://youtu.be/\_OGOaunoqMU?si=FdNhB16KqYBXJEqE

u/nixon-voxell — 6 days ago
▲ 11 r/typst

Typst to PowerPoint workflow for math formulas

I’m trying to settle on a sane workflow for getting high‑quality math formulas from Typst into PowerPoint. The end goal is not just to paste equations as images, but to have them as SVG so I can ungroup them in PowerPoint and animate individual parts of the formula (terms, brackets, etc.).

I know about pptypst and it looks close to ideal for this use case. Unfortunately, I’m on a university‑managed installation of PowerPoint where I cannot change the Trust Center Settings.

Right now I’m doing the following instead. I write each formula in a Typst file, using proper Typst math syntax, for example:

#set page(width: auto, height: auto, margin: 0pt)

$ integral_0^infinity exp(-x^2) dif x = sqrt(pi) / 2 $

Then I compile it on the command line with:

typst compile equation.typ equation.svg --format svg

I take the resulting SVG into PowerPoint, insert it as a picture and then use “Group → Ungroup” so PowerPoint converts it into shapes. After that, I can animate or recolor individual parts of the equation as needed.

Given the constraints above, I’m wondering if this is essentially the best we can do at the moment, or if I’m overlooking a cleaner approach? Since pptypst isn’t an option for me, I’m particularly looking for workflows that end in a plain SVG file I can just drop into PowerPoint.

If anyone here is already using Typst for equations in PowerPoint or Keynote and has a workflow they’re happy with, I’d really appreciate hearing how you’re doing it.

u/deuszel — 6 days ago
▲ 89 r/typst

New complete and correct typst-treesitter parser

Hello all, so for the past few years, I've been working on and off on rewriting my treesitter parser for typst. When typst 15 released I finally committed to finishing it and here it is: https://github.com/SeniorMars/tree-sitter-typst.

In case you don't know, tree-sitter is a a parsing tool used in code editors to help with things like code highlighting, folding, and manipulation of the AST with text objects. It's really useful. However, typst is a hard language to get right as it has a big grammar. This proved a lot of my attempts to be tricky. However, this parser is now feature complete and tested. I hope this helps!

u/SeniorMars — 9 days ago
▲ 21 r/typst+1 crossposts

Export to Typst

Hi there!

I’ve been using GeoGebra for more than 20 years now, and it’s been a delight. During the last year, I discovered the typesetting system & markup language Typst, allowing me to generate mathematical contents more easily and quickly than LaTeX. And the package CeTZ allows me to illustrate documents with PSTricks- or PGF/TikZ- like code.

While it’s easy to find TeX to Typst converters, I don’t know about the existence of any PSTricks/TikZ to Typst tool yet. Hence my question here:

would it be possible to add in-GeoGebra support to export figures in CeTZ code? It’s already feasible for other output formats!

Thank you in advance for any answer.

If needed: CeTZ website here https://cetz-package.github.io/

u/XanderLeaDaren — 8 days ago
▲ 10 r/typst

Substitution for Beamer article mode?

Hello everyone, I've been spending some time this summer trying to replicate my LaTeX teaching workflow with Typst. I currently use Beamer for lecture slides with speaker notes. The LaTeX source file also has more detailed notes that can be compiled as an article with beamerarticle and given to students as a handout. So far, I've been impressed with Touying for presentations in Typst, but I haven't found anything that can do what beamerarticle allows. Any suggestions for producing slides and an article from the same source file?

Thanks for any help!

reddit.com
u/okphil — 9 days ago
▲ 0 r/typst

Comments on Typst

I saw this post in r/LaTeX

>
I have been spending the last week trying to get my mind around Typst. It has a number of problems.

  1. Syntax varies depending on where you put the statement. Sometimes you put a # in front of a statement, sometimes not. Sometimes a space after a keyword is significant, sometimes it isn't.

  2. A variable value is not imported when it is part of an imported file, but it is when it is part of a package.

  3. Pandoc will not work on a file that has any imported packages in @/preview.

  4. Typst will only export to PDF.

  5. Typst is very slow when working with a large, multi-file document. One of my tests is to see how well it copes with the text of "Origin of the Species", a 400-page document. Typst is no faster than LaTeX when compiling that.

Is this true?

Is it reasonable to assume that Typst is only practical for documents that you write for yourself, for your own purposes, and that having only PDF documents as an output is acceptable? i.e., no DOCX, no ODT, no ePub, etc, etc.

reddit.com
u/Educational_Look_214 — 11 days ago
▲ 28 r/typst

imprint: Markdown → branded PDF, with Typst doing the typesetting

A CLI I made for turning Markdown into branded PDFs (specs, design docs, reports), with Typst as the engine via a custom pandoc template. Set your brand once (accent, fonts, logo) and apply it to every doc; profiles for multiple orgs; cover/masthead, callouts, Mermaid→SVG, bundled fonts, deterministic output.

No LaTeX — just pandoc + Typst, both single binaries.

https://github.com/gunasekar/imprint

Feedback on the Typst side welcome.

u/gunas3kar — 13 days ago
▲ 6 r/typst

typst vscode support for inline code comments

I just got hooked by the sweet sweet release of typing less characters than latex.

However, for several of my math homework assignments, I implement them in code and put the latex in comment blocks in my code.

Is there a way to do this with typst for python/c/c++? e.g.:
```
'''
\{ x : x \in \mathbb{R} \}
'''
def isReal(x:int) -> bool:
//...snip...
```

reddit.com
u/scarfersBluff — 13 days ago