Introduction
Office-as-code — describe a document once, declaratively and typed, then render it everywhere with your brand.
Liasse is an Office-as-code toolkit for developers. Describe a document once — declaratively and typed — then render it to office formats (XLSX today; PPTX, DOCX and PDF later) applying a centralized brand theme.
No more throwaway, format-specific code. You describe the intent ("a financial table here, totalled, in euros"), and the adapter owns the format-specific layout.
What's available today
The open-source core, all four adapters (XLSX, PPTX with native charts, DOCX, PDF) and the Factur-X module (EN 16931 CII XML + PDF embedding). Strict PDF/A-3b conformance (the sidecar) and the hosted render API are on the roadmap.
Why Liasse
- Declarative, not imperative. Components describe intent; the adapter owns the cells, widths, fonts and formulas.
- Core is format-agnostic.
@liasse/corehas zero office dependencies and runs in Node and the browser. - Theme is centralized. Colors, fonts and number formats live in one theme, applied to every render.
- Local-first. In library mode the render runs in your process — no data leaves your backend.
- Own your code. The registry copies component source into your repo, shadcn-style. No black box.
The packages
@liasse/core
The document model (zod), the theme system, the builder DSL and the
Renderer interface.
@liasse/xlsx
The exceljs-backed XLSX adapter. Import it to register the xlsx renderer.
@liasse/components
Four ready-made components that produce document trees.
@liasse/cli
liasse add <component> — copy a component's source into your repo.
Next step
Head to the Quickstart to render your first .xlsx in under
15 lines.