I read a Zerodha blog post about PDFs and spent 4 months building a no-code PDF tool
An engineering post by Zerodha "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 Good!