Why Your AI-Generated Slides Suck (And How to Fix Them)
I spent an entire evening trying to generate a professional PowerPoint deck with AI. Eight iterations. Eight failures. Each one worse than the last.
Then I switched one library and added a design system. The result was unrecognizable — in a good way.
Here’s what went wrong, what I learned, and the system that now produces consistently great slides.
The Failure Loop
Section titled “The Failure Loop”I was using python-pptx, the standard Python library for PowerPoint generation. My agent would:
- Read the slide content
- Generate python-pptx code
- Build the .pptx file
- I’d open it and… cringe
Version 1-3: Wrong backgrounds, wrong colors, amateur typography. “Not good at all.”
Version 4: Right background image, but still looked like a college freshman’s group project.
Version 5-7: Tried accent lines under titles, gradients, “professional” layouts. Each attempt made it worse.
Version 8: Stripped everything back to basics. Orange and white. Still “100x worse than what Claude chatbot produces.”
Eight versions. Zero acceptable output. Something was fundamentally broken.
The Root Cause
Section titled “The Root Cause”The problem wasn’t the AI. It wasn’t the prompts. It was the rendering engine.
python-pptx is a file format library, not a design tool. It can:
- ✅ Place text boxes at coordinates
- ✅ Set font sizes and colors
- ✅ Add basic shapes
It cannot:
- ❌ Render real drop shadows
- ❌ Create smooth rounded corners
- ❌ Apply gradient fills reliably
- ❌ Handle complex shape layering
- ❌ Produce the visual polish that makes slides look professional
You can write perfect code and still get ugly output because the engine doesn’t support the visual features that separate amateur from professional.
The Fix: pptxgenjs + a Design System
Section titled “The Fix: pptxgenjs + a Design System”Two changes solved everything:
1. Switch to pptxgenjs (JavaScript)
Section titled “1. Switch to pptxgenjs (JavaScript)”pptxgenjs is a JavaScript library that produces dramatically better output:
- Real shadow effects with offset, blur, and opacity
- Proper rounded corners (
rectRadius) - Reliable gradient fills
- Better shape composition
- More accurate color rendering
Same concept — code generates .pptx — but the output quality is in a different league.
2. Add a Design System (pptx-elite)
Section titled “2. Add a Design System (pptx-elite)”Raw library access isn’t enough. You need design constraints. We built a system called pptx-elite with:
10 Curated Palettes — not random colors, but tested combinations:
- Midnight Navy (corporate authority)
- Sand & Concrete (warm, approachable)
- Deep Teal (tech-forward)
- Cherry Bold (high-energy)
9 Layout Patterns with exact coordinates:
- Hero Statement (one big idea)
- Anchor Left (text + visual)
- Split Contrast (two-tone comparison)
- Stat Spotlight (big numbers)
- Three Columns (parallel concepts)
- Card Grid (multiple items)
Typography Rules:
- Titles: 28-36pt, 700 weight
- Body: 14-16pt, 400 weight
- Stats: 44-60pt, 800 weight
- Never more than 2 font sizes per slide
Anti-Patterns (things to never do):
- ❌ Accent lines under titles — hallmark of AI-generated slides
- ❌ More than 6 bullet points per slide
- ❌ Centered body text (left-align everything except titles)
- ❌ Clip art or stock icons
The Result
Section titled “The Result”Same content. Same AI. Different engine + design system.
The output went from “this is horrible” to accepted on the first try.
- Choose a palette that matches the deck’s tone
- Map each slide to a layout pattern from the library
- Apply the 4-tier visual hierarchy (title → subtitle → body → detail)
- Generate with pptxgenjs using exact coordinates from the layout spec
- QA check — no accent lines, proper whitespace, consistent colors
The Takeaway
Section titled “The Takeaway”AI slide generation fails for the same reason AI code generation sometimes fails: the output quality is bounded by the tools, not the intelligence.
Give a brilliant AI a bad rendering engine and constrained design primitives, and you get bad slides. Give the same AI a capable engine and a professional design system, and you get McKinsey-grade output.
Don’t blame the model. Fix the toolchain.
Building AI tools that produce professional output? Follow on LinkedIn for weekly insights from building 54+ AI agents.