Keynote Extractor works with Keynote 8.1

I kind of gave up on Keynote Extractor, but since Apple released a new version of Keynote I tried to use it with Keynote Extractor 1.1.

After some testing I verified it works fine with the newest version of Keynote (8.1).

I haven’t run into the “jumbled slides” bug anymore. I figure maybe something was changed on Apple’s end making it so that the bug doesn’t happen anymore. Yay!

Keynote Extractor discontinued

In the previous post, I mentioned a breaking bug . Unfortunately we were not able to find a fix, and unwilling to invest into further investigation.

This means that Keynote Extractor is effectively dead. You can’t use it if you have the latest version of macOS and Keynote. If you are on an older version of Keynote, you can continue using it, but that is the only way.

Keynote Extractor depends on Apple’s Keynote format, which is undocumented and keeps changing. We can’t afford to keep paying for this puzzle.

What’s next?

I would welcome it if Apple were to include JSON or XML export out of Keynote itself, so web developers can get creative with that output. I will file a bug to Apple’s Radar for this.

I am looking for a macOS developer to take over the maintenance and potential further development of Keynote Extractor. Get in touch at

Breaking bug with Keynote 7.3.1

Unfortunately, there is a breaking bug when you use Keynote 7.3.1 with Keynote Extractor 1.1. The order of the slide images gets jumbled.

We are aware of this issue and are investigating a fix.

The temporary workaround is to manually fix the references in the HTML template; or to use an older version of Keynote.


I updated the showcase with some new usage of the app. If you like Keynote Extractor, tell your friends!

Why Keynote Extractor?

Why is there a need for a tool like Keynote Extractor? Why am I spending time and money building this?

The reason is simple: presentation sharing on the web still sucks.

If you look at slides on Slideshare, they are missing context.

Take this slide. It says “users expect apps from the same companies to be similar”. The author likely gave some explanations, but this is all you can gather from the Slideshare.

If you look at presentation videos, they are often - very - long and impossible to skim.

Even if the talk is great, it’s hard to know what it’s about without sitting down and listening for at least 10 minutes.

What if there was a better way? What if you could share your presentation in a nice web page that everyone can just scroll through. Where someone can choose whether they want to read the whole thing or skim through it.

Well, there is a good format. It’s simple: just put the slides next to the text.

Maciej Cegłowski’s talks are a good example:

Now, Maciej crafts these things by hand and that is just bothersome. Not everyone knows HTML and CSS either.

With Keynote Extractor you can easily generate web pages that look like the above example from your Keynote files. Just make sure you entered what you are talking about in the notes fields in Keynote and you’re good to go. Check out the showcase for examples.

JSON Export

I am working on the the upcoming 1.1 version of Keynote Extractor is coming up, and one of the features we have is JSON export.

Keynote Extractor 1.1

When I was designing 1.1 I briefly pondered about the export options and settled on XML and JSON. But the more I thought about it the more I wondered whether XML was actually useful. I certainly wouldn’t want to use it. And a developery person could easily convert JSON to XML themselves.

I decided to cut the feature. I was happy to listen to Manton Reece in CoreInt talking about his work on JSON feed.

This further reaffirmed my thoughts. XML is dead, long live JSON!

A workflow for self-hosting your slides

So, you want to put your Keynote slides online? This blog post will show you how to do it.

If you already have your own web space, things are simple: you just upload the folder that you get when you extract your slides to your web server. Tada - your slides are online!

But what if you don't have webspace? Your own domain? Then you need to go ahead and find a solution.

There's tons of different ways to do this. In this tutorial I will explain how I would do it in different cases.

I am technically inclined and don't want to spend money. I don't care so much about the domain name.

  1. Put the index.html and the images in an open source repository on a free Github account.
  2. Activate Jekyll pages for that repository within the settings.
  3. Done! Here's an example.

I want a custom domain name.

I use dnsimple to register domain names. Within dnsimple you can tie your domain name to your web space. There are tons of domain registrars out there - this is just one of them.

I want some web space.

I use WebFaction to register web space. Within webfaction you can create different 'apps'. These apps can be static websites but they can also run PHP etc. For me WebFaction is perfect, but they don't provide much in the way of "help" for beginners. If this is your first time putting anything online, I would recommend another service instead.

My situation isn't listed here

Need help putting your slides online? E-mail and we will try to help you out.