Corporate PowerPoint decks with AI, for free: slides as code, QA as the gate A developer released PowerPoint Factory, an MIT-licensed open-source tool that generates corporate PowerPoint decks from typed TypeScript slide recipes, with layouts handling geometry so an LLM only supplies content and narrative. Each build runs roughly 40 QA checks with fix hints, produces per-slide PNGs and a contact sheet, and a separate reviewer agent judges the rendered slides; imagery comes from Kubeez generations. The project ships 23 built-in layouts, native editable charts and tables, and an AGENTS.md-driven workflow with a /deck command. Ask an AI chat to "make me a board deck" and you usually get one of three things: .pptx where the text spills off slide 4, the chart is a screenshot, and the closing slide says I wanted a fourth option: the AI writes the deck, a machine proves it is correct, and a second AI with fresh eyes judges it. That project is PowerPoint Factory https://github.com/sebyx07/power-point-factory . It is MIT-licensed and you can clone it today. The sample: a 20-slide Q4 board review for Halden Logistics, a fictional company. Every shape, chart and table is native and editable in PowerPoint. AGENTS.md can drive it. You can also write the recipes by hand: they are just TypeScript. Every slide is a small typed recipe, one file per slide. You pick a layout by the message you want to land, not by where boxes go: js // slides/06-margin-bridge.ts import { slide } from "@/slide"; export default slide { layout: "waterfall", eyebrow: "Results", title: "Pricing and routes added $19M of operating profit; wage inflation took back $6M", steps: { label: "Q4 2025", value: 46, total: true }, { label: "Pricing", value: 9 }, { label: "Route consolidation", value: 6 }, { label: "Wage inflation", value: -6 }, { label: "Q4 2026", value: 55, total: true }, , prefix: "$", suffix: "M", source: "Halden finance; operating profit, $M", notes: "The operational levers more than offset wage inflation.", } ; That becomes this. Real shapes, not an image: This is why AI is good at it. An LLM is bad at pixel geometry and good at structured data. Layouts handle the geometry, so the model only has to get the content and the story right. There are 23 built-in layouts: cover, agenda, summary, stats, chart, waterfall, table with RAG status and Harvey balls , 2×2 matrix, process, timeline, roadmap, next steps, references and more. Charts column, bar, stacked, line, area, pie, doughnut are native PowerPoint charts, so finance can still click in and fix a number. | Native table with highlight and total rows | Gantt roadmap with a "today" line | Generating a .pptx is easy. Generating one you would send to a board is not. So every build runs about 40 checks, and each one comes with a → fix hint the agent can act on: The output folder gives you, and the agent, everything needed to look at the result: a contact sheet, one PNG per slide, a QA report, and an outline containing only the titles. If the titles alone don't tell the story, the deck isn't done. git clone https://github.com/sebyx07/power-point-factory && cd power-point-factory bin/setup bun install, .env, checks LibreOffice + poppler + fonts bin/deck loop build + QA + screenshots of the sample deck bin/deck new acme q1-review board-update --theme ledger claude then: /deck acme "Q1 board review — revenue 2M, +11%…" The /deck command follows the same workflow a consultant would: bin/deck loop . deck-reviewer agent, which never saw the recipe, judges the screenshots and returns bin/deck export is QA-gated and writes Company - Title - date.pptx/.pdf . The agent is also told never to invent facts. A missing number becomes a TBD in the speaker notes and is listed back to you. It never ends up on a slide, and QA fails if one does. Stock photos are where a lot of corporate decks die: the same handshake, the same glass tower, and a license nobody checked. The factory gets its imagery from Kubeez https://kubeez.com instead, and it's what makes the sample deck look like an agency made it: Every photo in the Halden deck is a Kubeez generation, including the cover and the warehouse shots. Why it fits a slides-as-code workflow so well: 16:9 for full-bleed slides, 3:4 for a half-slide cover, 1:1 for objects or 21:9 for banners. No cropping. mcp.kubeez.com so Claude Code can generate and preview media in the conversation. assets/generated/ folder, which you commit. Rebuilds are offline and free, and teammates who clone the repo never pay again for the same image. bin/kubeez generate "aerial photo of a logistics hub at dawn, 35mm, natural light" --aspect 16:9 bin/kubeez remove-bg ./assets/product.png bin/kubeez balance In a recipe, an image is just a prop. The factory generates it on the first build and reads it from the cache after that. Add KUBEEZ API KEY to .env and you're set. Each company gets a "brand brain": BRAND.md for voice, logo rules, colors and approved facts, brand.ts for theme tokens, plus logos and reusable photos. Four built-in themes cobalt, ledger, graphite, terracotta all pass a WCAG AA test, and extendTheme puts your colors on top. A brand-reviewer agent checks claims and logo use against BRAND.md before anything ships. Pick one motion profile per deck: none for read-ahead decks , subtle the default, a fade transition , build click reveals or keynote Morph . Per-slide effect soup isn't an option. If you build a deck with it, I'd like to see the contact sheet. Drop it in the comments.