Marp vs Slidev: Which Markdown Presentation Tool Should You Use?

Two Markdown presentation tools, very different philosophies. Here's how Marp vs Slidev compare on features, theming, interactivity, and developer experience.

If you've decided to write your presentations in Markdown (smart choice), you've probably narrowed it down to two tools: Marp vs Slidev. Both convert Markdown files into beautiful slide decks. Both are open source. Both are loved by developers. But they take fundamentally different approaches to what a "Markdown presentation" should be.

Marp is minimal by design — it converts Markdown to slides with as little complexity as possible. Slidev is feature-rich — it layers Vue.js components, animations, and developer tooling on top of Markdown. The right choice depends on what you value more: simplicity or power.

Quick Overview

Marp in 30 Seconds

Marp (Markdown Presentation Ecosystem) converts Markdown files to HTML slides or PDF. It works as a VS Code extension, CLI tool, or part of a CI/CD pipeline. The philosophy is "write Markdown, get slides." No JavaScript, no components, no build tools. Just text.

Slidev in 30 Seconds

Slidev is a presentation tool built on Vue 3 and Vite. You write slides in Markdown but can include Vue components, code blocks with live execution, and complex layouts. It requires Node.js and provides a hot-reloading development server. The philosophy is "developer-first presentation experience."

Syntax and Slide Creation

Marp's Approach

Marp uses standard Markdown with a YAML frontmatter header for configuration. Slides are separated by --- (horizontal rules). You can add directives for background images, text alignment, and theme selection. Here's what a typical Marp slide looks like:

A frontmatter block sets the theme and enabling pagination, then each --- creates a new slide. You write headings, lists, and images using standard Markdown syntax. That's it. If you know Markdown, you know Marp.

Slidev's Approach

Slidev also uses --- separators and YAML frontmatter, but extends Markdown significantly. Each slide can have its own frontmatter for layout selection. You can embed Vue components inline, use Windi CSS classes for styling, and add click animations to reveal content step by step.

Slidev's syntax is more powerful but requires learning its extensions on top of standard Markdown.

Theming and Design

Marp Themes

Marp ships with three built-in themes: default, gaia, and uncover. You can create custom themes using CSS, which Marp applies during conversion. The theming system is straightforward — write CSS, reference it in frontmatter — but the out-of-the-box options are limited. Custom themes require CSS knowledge, and the community theme ecosystem is small.

Slidev Themes

Slidev has a richer theming system. Themes are npm packages that can include layouts, components, and styles. The community has built dozens of themes that you can install with a single command. Slidev also supports UnoCSS (Windi CSS) out of the box, so you can use utility classes directly in your Markdown for quick styling adjustments.

Winner: Slidev. More themes, more flexibility, easier to customize without writing raw CSS.

Interactivity and Components

Marp: Static Only

Marp generates static slides. There's no JavaScript execution in the output (unless you inject it manually). This means no interactive charts, no live code execution, no click animations. What you write in Markdown is exactly what appears on screen. For many presentations, this is perfectly fine — and the simplicity is a feature, not a bug.

Slidev: Full Vue.js Power

Slidev lets you use any Vue component in your slides. This enables:

Winner: Slidev. If you need any interactivity, Slidev wins decisively.

Developer Experience

Marp's Workflow

  1. Install the VS Code extension (or CLI)
  2. Create a .md file
  3. Write slides with live preview in VS Code
  4. Export to HTML, PDF, or PPTX

Total setup time: 2 minutes. No Node.js required for the VS Code extension path. No build step, no dev server, no dependency management.

Slidev's Workflow

  1. Install Node.js (if not already)
  2. Run npm init slidev
  3. Edit slides.md with hot reload in the browser
  4. Add components, themes, and configurations as needed
  5. Export to PDF, PNG, or deploy as a SPA

Setup takes 5-10 minutes. The hot-reload dev server is excellent — changes appear instantly in the browser as you type. But you need Node.js and a package manager.

Winner: Marp for simplicity. Slidev for development experience once set up.

Export and Deployment

Marp Export Options

Slidev Export Options

Winner: Marp for PPTX export. Slidev for web deployment.

Performance and File Size

Marp output is lightweight — a typical 20-slide deck exports to a self-contained HTML file under 100KB. Slidev's output is a full Vue.js SPA, which starts around 500KB and grows with dependencies. For sharing via email or loading on slow connections, Marp's smaller footprint is an advantage.

When to Choose Marp

When to Choose Slidev

The Third Option: HTML Templates

Both Marp and Slidev are excellent for developers who prefer writing in Markdown. But there's a middle ground worth considering: starting from a professionally designed HTML template. You get the visual quality of a design tool with the code control of an HTML approach — no Markdown conversion quirks, no framework limitations.

For more on choosing between frameworks, see our in-depth Slidev vs Reveal.js comparison, or explore why developers are switching to HTML presentations entirely.

Skip the Framework Setup

Start with a beautiful HTML template. Full control, professional design, zero configuration.

Browse HTML Templates →

Marp and Slidev are both excellent tools that reflect different philosophies. Marp says "slides should be simple." Slidev says "slides should be powerful." Neither is wrong — the best choice is the one that matches how you work and what your presentations need.