Yes, I work for Microsoft. No, I do not like PowerPoint. Here’s my alternative with the source code which I’ll explain here.
For 20+ years I’ve done UNIX/Linux development and have worked at Microsoft for 6 years. And I’ve learned that Microsoft will typically build the all-encompassing Enterprise-ready solution and the OSS ecosystem will build a narrow-focused tool that you can piece together with others.
Each have their own benefits and constraints. There is No Silver Bullet.
A common set of requirements I encounter are:
- I need to easily present to a public audience
- I might have to use someone else’s computer
- I want to share the slides afterwards
- I need to quickly update the slides
- I just want to display text and images. (PowerPoint is an absurdly impressive tool with lots of features that I rarely use.)
Internal Microsoft SharePoint policy prevents sharing slides with external visitors. This often results in emailing 10-100MB PPTs or PDF files around. Blah!
Piecing bits of OSS, I present to you “GitOps for Presentations”. It involves:
- Git + GitHub – Version control of content
- Markdown – Easy styling of content
- MARP – Converts CommonMark to HTML, PDF, PPT
- VSCode – Edit the content (There’s even a MARP extension which allows you to preview in real-time!)
- GitHub Actions – Build the presentation from Markdown
- GitHub Pages – Host the presentation
Benefits:
- Free (as in beer)
- Simple to setup
- You can style your presentations. For example, I’ve created a CSS which models the Microsoft styling guides for PPT’s
- Easy to share and update
Limitations:
- MARP’s formatting is basic. Especially if you’re coming from PowerPoint
That’s cool, but why didn’t you …
- use Remark or Reveal.js?
- There’s many great presentations frameworks, but I wanted something really simple. KISS
- You should be able to replace MARP with any of those other frameworks and still get the same results.
- just present your PPT and email it?
- That requires work and time. At conferences, I don’t have time/might forget to follow-up with everyone. I create a QR code and put it at the end of the slides. This enables self-service, discovery and also saves me previous keystrokes.
- use slides.com or Google Slides?
- Microsoft has embraced OSS and purchased GitHub, so I wanted to find a way to explore integrating all of this. I’ve been very happy with the results!
I’m sold! How do I get started?
- I’ve made it easy for anyone to get started by creating a GitHub template for this project (which is also a presentation)
- Click “Use this template” and create a new repository
- Enable GitHub Actions to auto-publish to GitHub Pages
- In your new Repo, click
Settings
->Pages
- Set Source to
GitHub Actions
- You’re done!
PEDANTIC DISCLAIMER:
- I’m quite familiar with GitOps, and while this is outside of running Kubernetes clusters as IaC, there are some similarities with the top-level concept of using Git to set my desired state of my presentation.
- MARP technically uses CommonMark. It’s close enough for what most people will need