Sign in

Your generated documents shouldn't need repair.

JSON in. Native PPTX, DOCX, XLSX, and PDF out. Flexbox layout for PPTX and PDF. No LibreOffice. No Chromium.

[01] What breaks

Most document libraries are fine until the file has to survive real work.

The problems are consistent: files trigger repair dialogs, layouts drift when content gets longer, mainstream JavaScript spreadsheet libraries still cannot create the charts teams expect, and DOCX-to-PDF often means dragging LibreOffice into the stack.

Native office files. Structured JSON. Deterministic generation.

[02] Failure modes

Four problems teams hit first.

These are the points where document generation stops feeling like a utility and starts becoming product infrastructure.

CapabilityWhy it breaksPaperJSX angleGo deeper
Files that need repairOOXML packaging is brittle, and repair-dialog issues stay open across the ecosystem for years.Validation happens before build, with a stronger structural focus on output that opens cleanly.PptxGenJS repair comparison
Layouts that break when data changesMost PPTX libraries still require manual x/y/w/h coordinates that do not adapt when content length changes.Yoga drives PPTX and PDF layout, so elements reflow instead of forcing coordinate-first authoring.PPTX layout comparison
No way to create Excel charts in open-source JavaScriptExcelJS remains strong for workbook manipulation, but chart creation is still missing.XLSX generation includes native OOXML charts in free and expands from there in Pro.ExcelJS chart comparison
LibreOffice in Docker for DOCX to PDFConversion often gets pushed to an external office runtime with operational weight and layout risk.DOCX to PDF stays in JavaScript, using the same document pipeline instead of a separate office process.DOCX to PDF conversion

[04] Same API shape

One payload in. One native office artifact out.

The playground starts with a PPTX example, but the idea is the same across the engines: define the document as structured data and get a native file back.

Request
POST /api/playgroundContent-Type: application/json {"sourceSchema": "protocol_v2","document": {"version": "2.0","title": "Q2 Board Update","accentColor": "#5A7A9B","slides": [{"slideType": "title-body","title": "Q2 Board Update","body": ["Revenue up 34% QoQ","NRR reached 118%"]},{"slideType": "kpi-grid","title": "Key Metrics","items": [{ "label": "ARR", "value": "$2.4M", "trend": "up" },{ "label": "NRR", "value": "118%", "trend": "up" }]}]}}
Response
HTTP/1.1 200 OKContent-Type: application/json {"data": {"pptx": "<base64 native .pptx>","previews": ["<slide-preview>", "..."],"slideCount": 2}}

[05] Free vs Pro

Every format ships a free engine. Pro adds what production eventually needs.

All four free packages are Apache-2.0 with no branding and no sign-up. Pro is a separate package with the same API — set a license key and the additional features unlock.

See full breakdown by format

PPTX

Flexbox layout and editable charts

Free: Yoga layout, Knuth-Plass line breaking, 6 chart types, slide-to-image (PNG, 400px). Pro adds RTL text, animations, template import, SmartArt, and more.

    Apache-2.0free package

    DOCX

    Native DOCX without pretending Word is PDF

    Free: paragraphs, tables, lists, images, themes. Pro adds pagination, font subsetting, PVCE charts, and batch rendering.

      Apache-2.0free package

      XLSX

      Real spreadsheets, not CSV with styling

      Free: 5 chart types, formulas (stored), quality reporting. Pro adds formula evaluation, template assembly, and 16-strategy repair.

        Apache-2.0free package

        PDF

        Native PDF with layout discipline

        Free: Yoga layout, AES-128 encryption (user password). Pro adds HarfBuzz typography, digital signatures, PDF/A-2a, and streaming.

          Apache-2.0free package

          [06] Differentiators

          What is materially different here.

          This is the shortest honest summary of where PaperJSX diverges from the rest of the category.

          CapabilityPaperJSXCompetitors
          PPTX layout engineYoga WASM flexboxManual positioning
          PPTX line breakingKnuth-Plass in free tierBasic greedy wrapping
          XLSX chart creation in open-source JS5 types in freeStill missing in ExcelJS
          DOCX pagination engineWidow/orphan and table continuation in ProUsually deferred to Word on open
          PDF typographyHarfBuzz WASM in ProLighter OpenType handling
          DOCX to PDFJavaScript pipeline, no LibreOfficeOften LibreOffice-based
          Multi-format MCP serverFirst-party package across 4 formatsUsually single-format or third-party

          [07] Built for

          Built for recurring report automation, SaaS exports, agent workflows, and replacing LibreOffice.

          PaperJSX is strongest when the document itself is part of the product: recurring QBRs, customer-facing exports, governed PDFs, generated spreadsheets with charts, and workflows where agents need to hand back native office files instead of screenshots.

          Not for one-off designed decks, real-time collaborative editing, or Google Slides output.

          Paste a payload. Download the file.

          Prove the workflow in Playground first. Move into the packages once the native file does what your current stack does not.