Components
Declarative, not imperative
Describe what goes on the slide, not where every pixel lands. JSX or JSON in, native PPTX out — no coordinate math, no raw OOXML, no LibreOffice.
- 8 slide patterns
- JSX and JSON input
- Automatic layout engine

About PaperJSX
Every team we worked with had the same broken last mile: the data was ready, the report was ready, but getting it into a real deck still meant a human copying and pasting. PaperJSX is the compiler that closes that gap.
[01] The problem
You write 47 lines of python-pptx to place a title and a subtitle on a blank slide. The title is 2 pixels too low. You adjust. Now it's 1 pixel too high. You deploy. The client opens it in Google Slides and everything moves anyway. Need a chart? python-pptx renders pie chart labels as 100%/800%/100% (GitHub issue #395, still open). PptxGenJS triggers 'PowerPoint needs to repair this file' when you combine charts with images (issue #1020, also open).
[02] What we built
Every design decision serves the same goal: automated decks that are indistinguishable from hand-built ones.
Components
Describe what goes on the slide, not where every pixel lands. JSX or JSON in, native PPTX out — no coordinate math, no raw OOXML, no LibreOffice.
Quality
Every file is validated against the OOXML spec. Editable Excel charts backed by real workbooks. Zero repair dialogs. The bar is that recipients can't tell it was automated.
Honesty
We do text, images, tables, shapes, and charts well. We don't yet support SmartArt, animations, or embedded video. If you need those, python-pptx with manual positioning is still your best option.
[03] By the numbers
PaperJSX is a compiled PPTX engine built for production throughput.
Open the playground, paste structured JSON, and get a real deck in under 200ms. No signup required.