Lately I’ve been working on preparing learning materials in Scala. Usually when I work on preparing slides for public speaking I would use https://slides.com/majkp/, but this time I was looking for something self hosted.

In this situation Reveal.js seems like an obvious alternative, but if you want to set up, you either have to download a fixed version which makes the upgrade hard, or build an npm project and add reveal as the dependency.

This way I’ve learned about Marp. I think the main reason I like it is the ease of getting started. The only thing I needed to do was to install marp-vscode plugin (works fine with VSCodium!) and start writing in the markdown file. Working in side-by-side view is nice and easy.

marp side by side

You can also render the presentation using marp-cli to multiple formats including HTML, PDF and PPTX

# Convert slide deck into HTML
npx @marp-team/marp-cli@latest slide-deck.md -o output.html

# Convert slide deck into PDF
npx @marp-team/marp-cli@latest slide-deck.md -o output.pdf

# Convert slide deck into PowerPoint document (PPTX)
npx @marp-team/marp-cli@latest slide-deck.md -o output.pptx

Last but not least, if you have any questions about Marp, Github discussions at https://github.com/orgs/marp-team/discussions/ look like a good place to start.

If you are looking for a simple tool for building presentations using Markdown you might want to try it as well!