Carbone
Document-generation code is the worst kind of code in your backlog - Carbone kills it. Its
insight is separating design from data - templates are ordinary office documents (DOCX, ODT,
XLSX, PPTX, HTML, even custom XML) built in LibreOffice, Microsoft Office, or Google Docs,
with mustache-like markers such as {d.companyName} typed directly into the text. Send a
template plus JSON from your existing APIs to the HTTP API, and Carbone returns the finished
document - exported as-is or converted to PDF, XLSX, CSV, HTML, PNG, EPUB, and more via its
integrated LibreOffice converter (Chromium and OnlyOffice engines are also supported for
HTML-fidelity and office-format conversions). The template language goes well beyond
substitution: loops over arrays render dynamic table rows, filters and aggregations run inside
the document, and built-in formatters handle dates, numbers, currencies, timezones, and
locales, with custom JavaScript formatters when needed. One template serves multiple languages
through translation markers with auto-maintained translation files. The XML-agnostic engine
means anything your document editor can design - pagination, headers, footers, nested tables,
charts - survives generation intact, and Carbone guarantees no breaking changes in template
syntax. Node.js-based, fast via multi-threaded LibreOffice conversion. The invoices,
contracts, and reports your product owes its users become template edits, not sprints.
Deploy