HTML Deck Studio: Why I Built a Presentation System Instead of Using Existing Tools
I built HTML Deck Studio because I was frustrated with the limitations of existing presentation tools like PowerPoint, Keynote, and Google Slides. They lock your content inside their proprietary formats, are difficult to version control, hard to automate, and limited in what they can do. I wanted a system that was built on open standards, was highly-configurable, and supported the way I work with AI agents.
In this post, I will explain how HTML Deck Studio works, why I built it the way I did, and how it can help you create better presentations.
I was preparing slides for a talk on AI agents when I hit a wall. I wanted to embed a live D3 visualization that updated based on real-time data. The presentation tool I was using had no way to do it. I could embed a static image, but that felt like going backward.
At the same time, I was working with AI agents to help generate and update decks. The agents worked with code—they understood text, diffs, branches, version control. But asking them to manipulate a proprietary presentation format felt clunky. They'd generate slide markup, I'd paste it into the tool, the tool would mangle the formatting, I'd fix it manually. It was friction all the way down.
Then there was PDF export. The export didn't match what I saw on screen. The tool's rendering and the PDF's rendering were different, which meant I spent time tweaking margins and fonts to make the PDF look acceptable. For something that should be straightforward.
I realized the problem wasn't that presentation tools are bad. It's that they're built backward. The tool is the center. Your content lives inside it. You're stuck with what the tool can do and how it does it.
What if I flipped that around? What if the content was just HTML files, and the tool was just what you used to view them?
That's when I built HTML Deck Studio.
The Opposite Approach
HTML Deck Studio is not a presentation app. It's a presentation system built on files you control.
Your slides are HTML. You present them in a browser of your choice using a lightweight viewer. You export to PDF using a Python script. You version them in Git. You regenerate them with AI agents without friction.
The files are the center. The tools are interchangeable.
Why This Matters
For Developers
Your slides become source artifacts. Commit them. Diff them. Merge them. Use branches for major revisions. Apply code review to your presentation source.
No proprietary format. No export steps. The full power of version control.
For People Working With AI Agents
Agents understand code and conventions. Give them the slide template system as context, ask them to generate a deck, and they produce clean HTML that fits your structure. Regenerate whenever the content changes. The token-based theming keeps your branding intact without manual touching up.
For Presenters
No startup time. No sync delays. Open the viewer, choose your slides, and present. Speaker notes are built in. Press P for a presenter window. Works on any network, any machine.
For Creative Work
Embed Mermaid charts, D3 visualizations, custom animations, live data feeds, interactive components. You have the full power of HTML, CSS, and JavaScript. You're not limited to what a tool's UI provides.
The Real-World Scenarios
Scenario 1: Presentation Versioning
I'm preparing a talk and want to test two different narrative arcs. I create two branches, build both versions in parallel, present them to a colleague, and merge the better approach. Diffs show me exactly what changed between versions.
Scenario 2: Generated Decks at Scale
I ask an AI agent to generate slides for a new topic. I commit the output. Two weeks later, the topic evolves. I ask the agent to regenerate the slides. Same structure, updated content, no manual re-creation.
Scenario 3: Custom Visualizations
I'm presenting quarterly metrics. Instead of a static chart in the slide, I embed a live D3 visualization that animates through the data points as I talk through them. The presentation tool never had a way to do this. HTML does.
Scenario 4: Slide Reusability
Common layouts—intro slides, data slides, conclusion slides—are extracted into templates and reused across multiple decks. Update a template, and all decks that inherit from it reflect the change.
The Details (Link Instead of Repeat)
For the specifics of how to use it, set up PDF export, understand the security model, or contribute to the project, see the README and documentation.
The repo includes:
- A complete user guide for presenting decks
- Setup and troubleshooting for PDF export
- Security and privacy details
- Development and testing guidelines
- A template system for AI-assisted deck generation
The Bigger Picture
Building HTML Deck Studio forced me to think about what I actually want from presentation software. And I realized it's not what most tools offer.
I want files that belong to me. Files that work in tools I choose, not tools that trap me. Files that are versionable, mergeable, and readable as plain text. Files that I can combine with code, with automation, and with AI.
Most presentation software optimizes for the person using the tool's UI. HTML Deck Studio optimizes for the files themselves.
That distinction matters because the files outlast the tool. Ten years from now, PowerPoint might be gone or behind a paywall. But an HTML file will still render in a browser. A PNG will still be an image. A PDF will still be readable.
It's a small thing, but it compounds. Every presentation you create is an asset. Those assets should belong to you completely.
You can find the code on Github here: HTML Deck Studio.