xKiwiLabs xKiwiLabs

The Death of PowerPoint: Why I Code My Lecture Slides

I stopped using PowerPoint, Keynote, and Google Slides entirely this semester. Here's why coding lecture slides in HTML with AI assistants is faster, better, and more enjoyable — and how you can make the switch.

teaching AI tools productivity reveal.js

This semester, I stopped using presentation software entirely. No PowerPoint. No Keynote. No Google Slides. Everything I present is now coded in HTML using reveal.js — and I build it with AI coding assistants.

This didn’t happen overnight. Over the past year, I’ve been gradually creating more and more of my lecture content this way — first a few slides here and there, then whole lecture sections, then entire decks. This semester I made the full jump. I don’t go back. I don’t miss it.

This isn’t a flex. It’s a genuine productivity upgrade. Let me explain why, and how you can try it yourself.

The Problem with Presentation Software

PowerPoint was designed in the 1980s for business presentations. Keynote made it prettier. Google Slides put it in the cloud. But they all share the same fundamental problems, and academics adopted them because there was nothing better:

  • Content gets trapped inside a proprietary format. Try finding which slide you changed last week. Try comparing two versions of a deck. Try merging your colleague’s edits with yours. If you’re co-teaching, try making slides look consistent across weeks and instructors. You can’t — not without pain.
  • You spend more time fighting the layout engine than writing content. Drag this box. Resize that image. Why did the bullet points just jump to a new position? Why is the font different on this slide?
  • Updating content is slow and manual. New semester, same course, 200 slides to update. You open each one, edit by hand, hope you didn’t miss anything.
  • Version control is impossible. lecture_v3_FINAL_v2_ACTUALLY_FINAL.pptx — sound familiar?

I used to accept all of this as normal. Then I started coding my slides, and I realised how much time I’d been wasting. What used to take me a full day — updating or creating a week’s worth of lecture materials — now takes me less than an hour.

What I Do Instead

My lecture slides are HTML files built with reveal.js, an open-source presentation framework. Each slide is a <section> element. The content is plain text and HTML. The styling is CSS. The whole thing opens in any web browser.

Here’s what a slide looks like in code:

<section>
  <h2>How This Course Works</h2>
  <div class="two-col">
    <div class="col">
      <h3>Lecture Weeks</h3>
      <ul>
        <li>Student presentations (~30 min)</li>
        <li>Lecture (~60 min)</li>
        <li>Discussion + Q&A (~30 min)</li>
      </ul>
    </div>
    <div class="col">
      <h3>Lab Weeks</h3>
      <ul>
        <li>Challenge brief released</li>
        <li>Group work with AI assistants</li>
        <li>Present results next lecture</li>
      </ul>
    </div>
  </div>
</section>

You don’t need to memorise or know HTML syntax, or have ever used it before. That’s where AI assistants come in.

My Workflow: Plan, Generate, Verify

The biggest mistake people make when they first try AI-assisted content creation is jumping straight to “make me slides.” That gives you generic output. Here’s what I actually do.

1. Plan with the AI

I don’t start by generating slides. I start by building a detailed plan — and I do that with my coding assistant.

In my course repository, I have a dev/ folder with detailed markdown files — one for each week — that describe the plan for every class. I work with the AI to build these plans, but I’m the one providing the substance: the topics, the learning objectives, the specific papers and references I want to use, the examples, the activities.

Crucially, I feed it everything I have. Old PowerPoint slides from previous years. The articles and book chapters I’m drawing from. Reading lists, assignment briefs, handouts, my own notes. If you’re like me, you have years of lecture material sitting in folders. Don’t throw that away — it’s a goldmine. Your old decks contain years of your thinking about how to structure and sequence material. Give it all to the AI as context, even if the final output looks completely different.

The more context and resources you provide, the better the plan — and the closer the final slides will be to what you actually want. I use textbooks less and less these days — original research papers and primary sources are often better for students — but whatever materials you draw from, feed them in.

Once the plan is drafted, I review it carefully before generating anything. This is where the real intellectual work happens. The plan is where you think. Is the structure right? Are the key points in the right order? Are the references the ones you actually want? Revise until you’re satisfied.

2. Generate the slides

Only after the plan is solid do I ask the AI to generate slides. Because it has my detailed brief and all my source material, the output is far better than if I’d just said “make slides about clustering.”

I describe what I want in plain English: “Create a reveal.js slide with a 2-column layout. Left column: lecture format. Right column: lab format. Use a dark gradient background.” The AI writes the HTML and CSS. The first output is usually 80-90% right. I refine — “make the font bigger,” “add a blue border on the left column,” “change this to a 3-column grid.” If I have a way I like things to look — a particular layout, colour scheme, or information hierarchy — I describe it or show the AI an example from my old slides, and it replicates my style in the new format.

The content is mine. The feel is mine. The AI handles the HTML and CSS.

3. Verify everything

Speed is not an excuse for sloppiness. I verify every slide the AI generates:

  • Check all references. Are the authors correct? Are the years right? Do the papers actually exist? LLMs hallucinate citations — you must check.
  • Check all links. Every link in my slides is clickable. I click every single one during review. Broken links in a lecture are embarrassing and avoidable.
  • Check the content against your plan. Did the AI miss a key point? Did it introduce something you didn’t ask for? Did it rephrase something in a way that changes the meaning?
  • Check the reading list. Are the DOIs correct? Do the URLs resolve? Is this the right edition?

This verification step takes time, but it’s still faster than building slides from scratch — and more reliable than trusting your own memory to catch every detail in a 200-slide deck.

Updating existing content

Updating slides for a new semester is even faster. I paste the current HTML and say “update the reading list for 2026” or “replace the old dataset reference with the new one.” The AI makes the change in seconds. I verify it. Move on.

For a full 13-week course with 200+ slides, I can update the entire deck for a new semester in an afternoon. In PowerPoint, that used to take me days.

This workflow is what separates “AI-assisted” from “AI-generated.” The thinking is yours. The planning is yours. The content is yours. The AI is a tool that executes your vision — quickly and consistently.

Why This is Better

Version control with git. My slides are in a git repository. I can see exactly what changed between semesters. I can branch, experiment, and merge. If something breaks, I roll back. No more _FINAL_v2.

Content-first. I write the ideas. The AI handles the layout. I spend my time on what I’m teaching, not on dragging boxes around.

Consistency. One CSS theme file controls the look of every slide in the deck. Change the font or colour scheme once, and it applies everywhere. In PowerPoint, you’d need to update each slide manually — or fight with the master slide system that never quite works.

Portability. My slides are an HTML file. They open on any computer, any operating system, any browser. No special software needed. I’ve given talks from borrowed laptops without installing anything.

Search. It’s a text file. I can search it. “Where did I mention cross-validation?” Cmd+F. Found it. In PowerPoint, searching across slides is clunky at best.

Collaboration. Colleagues can submit pull requests to my slide repo. I can review their changes line by line. We had three instructors contributing to the same course deck last semester, and it worked seamlessly because it was all in git.

”But I Don’t Know HTML”

Neither did my students. I teach a course called Practical AI for Behavioural Science to psychology undergraduates — fourth-year students who’ve never written a line of code. One of their assessments is to create a presentation slide in HTML using reveal.js.

They use exactly the same approach: describe what they want to a chatbot, get HTML back, open it in a browser, refine it. The guide I wrote for them takes about 10 minutes to read, and most students have a working slide within an hour of starting.

If a psychology student with zero coding experience can build a reveal.js slide in an hour, you can build a lecture deck.

Here’s a prompt that works:

Create a single reveal.js HTML slide for a lecture presentation. Use the reveal.js CDN (version 5.1.0). Dark gradient background. Title at the top, then a 2×2 grid of content areas with coloured left borders. Clean, professional design. Include all CSS inline so the entire slide is one HTML file.

Paste that into ChatGPT or Claude. You’ll have a working slide in 30 seconds. Then start customising.

Start with a Chatbot, Then Move to VS Code

You can absolutely start by pasting prompts into ChatGPT or Claude in your browser. That works, and it’s the lowest-friction way to try this out.

Here’s the thing: generating HTML is trivially easy for AI models. It’s like breathing for them — HTML and CSS are among the most well-represented languages in every model’s training data. This means you don’t need expensive pro subscriptions for this. The free tiers of ChatGPT, Claude, and Gemini are more than capable of generating and editing reveal.js slides. Don’t let pricing be a barrier.

And if you’re concerned about privacy — say you’re developing course content that references unpublished work or sensitive material — you can run a local model on your own machine using Ollama or LM Studio. There are plenty of excellent small coding models that run well on a laptop. If you have a machine with decent memory — a Mac with Apple Silicon and 32GB or more, or one of the new ARM-based mini PCs with shared VRAM — you can run capable coding models entirely offline, with nothing leaving your machine.

But if you want to go faster — and I mean significantly faster — work directly in VS Code with an AI coding assistant like GitHub Copilot or Claude. You edit the HTML directly, the AI autocompletes and suggests changes inline, and you see the result in real time with a live preview.

Spending an hour learning the basics of VS Code and setting up a GitHub repository will save you weeks of time over the course of a year. It’s a one-time investment that compounds every time you create or update content. If this sounds intimidating, it’s not — I’ll cover exactly how to get started with VS Code in a separate article.

University Branding and Templates

Most universities have an official PowerPoint template with logos, colours, and branding guidelines. You might be thinking “I can’t use HTML slides because I need to use the university template.”

Here’s what I do: I throw the university PowerPoint template into my repo and ask the AI to review it and create a CSS theme file that captures the same branding — colours, fonts, logo placement. If you need the unit logo, faculty crest, or funding acknowledgement logos in your slides, the AI will add them as images positioned with CSS.

The result looks more polished and consistent than most PowerPoint decks using the same template, because CSS applies the branding uniformly to every slide. No more slides where someone accidentally changed the font or shifted the logo.

Is this strictly necessary? Often not. Nobody has ever complained that my slides weren’t in the official template. But if your department insists, it’s a solvable problem.

The Setup

You need three things:

  1. A text editor. I use VS Code, but any editor works — even TextEdit or Notepad.
  2. A browser. Chrome, Firefox, Safari, Edge — whatever you already have.
  3. An AI assistant. ChatGPT, Claude, GitHub Copilot, Gemini — pick one.

That’s it. No software to install. No license to buy. No templates to download (unless you want one).

To preview your slides, just double-click the HTML file. It opens in your browser. To auto-refresh while editing, install the “Live Server” extension in VS Code and right-click → “Open with Live Server.”

What About Exporting to PDF?

Sometimes you need a PDF — for a conference submission or to share with someone who wants a static file. Reveal.js has this built in:

  1. Open your slides in Chrome
  2. Add ?print-pdf to the URL
  3. Print → Save as PDF

It takes 10 seconds. The output is clean and high-quality.

Common Objections

“PowerPoint/Keynote has animations and transitions.” So does reveal.js. Fragments, fade-ins, slide transitions — it’s all there. And because it’s CSS-based, you have far more control than any presentation app gives you.

“I need to include videos.” HTML supports embedded video natively. <video src="demo.mp4"> — done.

“My university requires the official PowerPoint template.” Convert the branding to CSS (see above). Or just don’t. I’ve been presenting HTML slides for the past year and nobody has ever objected. They open in a browser, they look professional, and the audience cares about your content — not your file format.

“It’s faster to just click and type in PowerPoint.” For a single slide, maybe. For a full course deck that you update every semester, absolutely not. The initial investment in learning the approach pays for itself the first time you update a deck — and keeps paying off every semester after that.

“What about online slide-building tools like Gamma, Beautiful.ai, or Tome?” They exist, and some are decent. But they cost money, you’re locked into their platform, and you still end up doing a lot of pointing, clicking, and dragging. With HTML slides you get more control, it’s completely free, and you can use whatever AI assistant you want — cloud or local. Why pay for less flexibility?

“I don’t have time to learn a new tool.” You’ll spend an hour learning the basics. You’ll save days — if not weeks — every semester. Once you have the basics down, it’s genuinely a 5 to 10x speed-up for creating and updating teaching materials. The AI assistant makes the learning curve much gentler than you’d expect.

Try It

You don’t need to convert your entire course tomorrow. Start small:

  1. Pick one upcoming presentation. A single talk or a short guest lecture.
  2. Open your AI assistant and paste the prompt above. Get a working template.
  3. Replace the placeholder content with your material. Ask the AI to help with layout changes.
  4. Present from your browser. Full-screen mode (F11) and you’re set.

If it works for you — and I think it will — you’ll start converting more. Eventually, you’ll wonder why you ever used PowerPoint at all.

Get Started

If you want a head start, I’ve created a starter repository with everything you need: a reveal.js template, a clean CSS theme, example slides, and a guide for academics who’ve never used VS Code or HTML before. Fork it, replace the content with yours, and you’re presenting from a browser within the hour.


I now use this approach for all my teaching at Macquarie University, including a 13-week course with 200+ slides across lectures and labs. The course repository is open-source and available on GitHub. If you want to see what full HTML lecture decks look like in practice, start there.

Michael Richardson Professor, School of Psychological Sciences Faculty of Medicine, Health and Human Sciences Macquarie University


AI Disclosure: This article was written with the assistance of AI tools, including Claude. The ideas, opinions, experiences, and workflow described are entirely my own — the AI helped with drafting, editing, and structuring the text. I use AI tools extensively and openly in my research, teaching, and writing, and I encourage others to do the same. Using AI well is a skill worth developing, not something to hide or be ashamed of.

It’s also worth acknowledging that the AI models used here — and all current LLMs — were trained on vast quantities of text written by others, largely without explicit consent. The ideas and language of countless researchers, educators, and writers are embedded in every output these models produce. Their collective intellectual labour makes tools like this possible, and that contribution deserves recognition even when it can’t be individually attributed.

Share: