Sign in

Compare

Your slides break every time the data changes. A layout engine fixes that.

Every other PPTX library requires manual x/y/w/h coordinates. PaperJSX uses Yoga flexbox — slides reflow automatically when content length changes.

[01] Side by side

Coordinate-first versus layout-engine generation

These are the practical differences that show up once the slide content stops being fixed-length.

CapabilityLayout-aware routePptxGenJSpython-pptx
Layout modelYoga flexbox reflowManual x/y/w/hManual Inches(x, y)
Line breakingKnuth-PlassBasicBasic
Content length changesLayout reflowsRequires coordinate editsRequires coordinate edits
Authoring modelDeclarative JSON treeImperative slide builderImperative slide builder

[02] The difference

Manual coordinates versus reflowing layout.

This is what the implementation model looks like in practice when the same slide has to survive variable-length content.

Coordinate-first
slide.addText('Q2 Board Update', {x: 0.6,y: 0.8,w: 8.6,h: 0.5,fontSize: 24,bold: true,}); slide.addText(['Revenue up 34% QoQ','NRR reached 118%',], {x: 0.6,y: 1.7,w: 8.6,h: 1.6,breakLine: true,});
Layout-aware route
{type: 'slide',children: [{type: 'stack',gap: 20,children: [{ type: 'text', text: 'Q2 Board Update', fontSize: 24 },{type: 'stack',gap: 8,children: [{ type: 'text', text: 'Revenue up 34% QoQ' },{ type: 'text', text: 'NRR reached 118%' },],},],},],}

[03] Where it pays off

The layout engine pays for itself on the first variable deck.

Once titles grow, bullets wrap, or sections appear and disappear, coordinate maintenance becomes a recurring engineering cost. A layout engine eliminates that category of work entirely.

Layout-aware route

Use this when the same slide keeps changing shape.

Best when content length varies enough that coordinate maintenance is already showing up in the roadmap or the bug queue.

  • Variable-length content
  • Recurring deck generation
Reflowless drift

Coordinate-first route

May be sufficient for truly fixed-layout decks.

If the structure never changes and explicit slide placement works, coordinates can be enough — but most teams underestimate how quickly content starts varying.

  • Stable slide structures
  • Direct local control
Controlsimple decks

Paste the content that already causes layout drift.

Use the slide that breaks when the data changes. The layout engine handles it automatically — no coordinate adjustments needed.