Skip to content

Gotenberg alternative: PDF generation without Chromium

Gotenberg is the standard for self-hosted document conversion. If you generate documents from data instead of converting existing files, Oicana compiles Typst templates in process, with no browser and no extra container.

Gotenberg is a free, MIT-licensed Docker API that converts documents to PDF. You send URLs, HTML, Markdown, or Office files via HTTP and get a PDF back. It uses Chromium for web content and LibreOffice for office documents, and it can also merge, split, and manipulate existing PDFs. With over 12,500 GitHub stars, it is the go-to choice for self-hosted document conversion.

If your job is converting files that already exist, Gotenberg is a great fit and Oicana is not a replacement. Oicana does not convert HTML, Office files, or web pages.

Oicana is built for a different job: generating documents from application data. Invoices, reports, certificates, and statements start as data in your app, not as files. For that job, running a browser engine in a sidecar container adds cost you do not need to pay.

  • In process instead of over HTTP. Oicana is a library for Node.js, Python, Java, C#, Rust, and PHP, plus WebAssembly for the browser. There is no extra service to deploy, scale, monitor, and secure.
  • A typesetter instead of a browser. Templates are plain Typst projects. Page breaks, headers, footers, and margins are first-class concepts instead of CSS print quirks, and the compiler is a few megabytes instead of a Chromium install.
  • Milliseconds instead of page renders. A warmed up template compiles a print-ready PDF in single digit milliseconds. Gotenberg’s Chromium engine supports at most 6 concurrent conversions per instance (its --chromium-max-concurrency flag), so sustained volume means scaling containers.
  • Declared inputs instead of string templating. Templates declare their inputs (JSON, images) in a manifest, optionally with a schema to validate against. Your app passes structured data, not interpolated HTML.
GotenbergOicana
What it isDocker HTTP API for document conversionPDF templating library, in process
InputURLs, HTML, Markdown, Office filesTypst templates plus declared JSON and image inputs
EngineChromium and LibreOfficeTypst compiler, native or WebAssembly
Runs asSeparate container next to your appPart of your app: Node.js, Python, Java, C#, Rust, PHP, browser
ConcurrencyUp to 6 concurrent Chromium conversions per instanceBound by your CPU
Browser (client-side) useNoYes, via WebAssembly
Data localitySelf-hostedSelf-hosted, or fully on the user’s device
License and priceMIT, freeSource-available; free for non-commercial use, flat fee per application commercially

Pick Gotenberg when you convert existing files: web pages to PDF, Word documents to PDF, merging uploads. Pick Oicana when your documents start as data and you want them typeset from version-controlled templates, inside your own application, at volume, without a per-document fee.