How to build investor pitch decks from markdown
- Step 1Write the pitch in Markdown — One
##heading per slide: problem, solution, market, traction, team, ask. Put metrics in pipe tables. - Step 2Separate slides with `---` — Add a line of only
---between each pitch slide. Headings do not split — the separator does. - Step 3Tuck details under `----` — For appendix detail behind a headline metric, use
----to make a vertical sub-slide you reveal only if asked. - Step 4Load one Markdown file — Paste the text or drop a single
.mdfile. One file is converted per run. - Step 5Preview the deck — Use the live iframe preview to confirm the traction table fits and the narrative flows slide to slide.
- Step 6Download or host and share — Save the
-slides.html, then present locally or host it and share the URL with investors.
Pitch feature support
What the deck does for a fundraise and what it does not.
| Need | Supported? | Notes |
|---|---|---|
| Metric / traction tables | Yes | GFM pipe tables render on the slide |
| Custom brand colors / fonts | No | Fixed Reveal.js black theme; no controls here |
| Logo / image slides | Linked only | Use Markdown image links; no upload of brand assets |
| Charts | Image only | No chart renderer — embed a rendered chart image |
| Speaker notes | No | No Note: transform |
| Offline viewing | No | Reveal.js loads from CDN |
Slide markers
The two structural controls.
| Marker | Creates | Pitch use |
|---|---|---|
--- | Horizontal slide | Next pitch slide (problem, solution, ask...) |
---- | Vertical sub-slide | Appendix detail behind a headline metric |
## Heading | Title on current slide | Slide title — does not split |
Tier limits (markdown family)
A character limit applies in addition to file size. A pitch deck rarely approaches even the Free limits.
| Tier | Max file size | Max characters | Files per run |
|---|---|---|---|
| Free | 1 MB | 500,000 | 1 |
| Pro | 10 MB | 5,000,000 | 10* |
| Pro + Media | 50 MB | 20,000,000 | 50* |
| Developer | 500 MB | Unlimited | Unlimited* |
Cookbook
Five pitch-deck patterns. Each shows founder Markdown and the slides it produces. For charts and branding, embed images — the deck has no chart engine or theme controls.
Cover slide then problem slide
Two horizontal slides via ---.
# Acme — the API for X Seed round · 2026 --- ## The problem Teams waste 8 hours a week on Y.
Traction slide with a metrics table
GFM table renders the numbers cleanly.
## Traction | Metric | Q1 | Q2 | |--------|------|-------| | MRR | $12k | $31k | | Logos | 14 | 39 |
Headline metric with appendix detail
---- hides the breakdown until an investor asks.
## $31k MRR Up 158% QoQ ---- ### Breakdown - Self-serve: $19k - Enterprise: $12k
Chart as an embedded image
There is no chart renderer, so link a rendered chart image.
## Growth  Compounding 22% MoM.
The ask slide
A clean closing slide; links and autolinks render.
## The ask Raising $1.5M to reach $1M ARR. Contact: founders@acme.com
Edge cases and what actually happens
No custom branding or theme
Not supportedThe deck uses the fixed Reveal.js black theme. There are no color, font, or logo controls in this tool. For a branded artifact, edit the theme link in the HTML or use a designed PDF via md-to-pdf-modern.
No charts
Not supportedThere is no chart or graph renderer. Embed a pre-rendered chart image with a Markdown image link instead.
Heading does not start a new slide
By designA ## is a title on the current slide. Insert a --- line to make the next pitch slide.
Recipient offline
CautionReveal.js loads from cdnjs, so a viewer with no network sees unstyled HTML. For a guaranteed-render artifact, send a PDF instead via md-to-pdf-modern.
Confidential numbers in source
CautionThe deck is plain HTML — anyone with the file can read every number. Scrub secrets first; md-secret-redactor can strip tokens and keys from the Markdown before conversion.
Front matter creates blank slides
CautionA leading YAML ---/--- block reads as separators and adds stray slides. Remove it before converting.
Speaker notes not generated
Not supportedThere is no notes feature; cues you type show on the slide. Add <aside class="notes"> to the HTML by hand for presenter view.
Deck unexpectedly large
413 rejectedA deck with embedded base64 images can exceed 500,000 characters on Free even under 1 MB. The character cap is separate — link images by URL instead, or upgrade.
Multiple files dropped
IgnoredOnly the first file converts. Merge a deck plus appendix with md-merger first.
Frequently asked questions
How do I separate pitch slides?
A line of only --- starts a new slide; a line of only ---- makes a vertical sub-slide for appendix detail. Headings do not split the deck.
Can I brand the deck with our colors and logo?
Not in this tool. The deck uses the fixed Reveal.js black theme. You can edit the theme link in the downloaded HTML, or produce a branded PDF with md-to-pdf-modern.
Can I add charts?
Only as embedded images. There is no chart renderer; link a pre-rendered chart image with Markdown image syntax.
Will my metric tables render?
Yes. GitHub-Flavored Markdown pipe tables render on the slide — good for traction and unit-economics grids.
Can I share the deck by link?
Yes. Host the -slides.html file and send the URL; hash routing even lets you link directly to a specific slide.
Will investors need PowerPoint?
No — it opens in any modern browser. They do need internet, though, because Reveal.js loads from a CDN.
How do I keep confidential numbers safe?
The deck is plain readable HTML. Anyone with the file sees every figure. Scrub secrets first — md-secret-redactor can strip tokens and keys from the Markdown before you convert.
Are speaker notes supported?
No. There is no Note: conversion; text stays on the slide. Add <aside class="notes"> to the HTML manually for presenter view.
Is there a size limit?
Free allows 1 MB and 500,000 characters per file — far above a typical pitch deck unless you embed base64 images. Pro and above raise both limits substantially.
Why is my deck over the character limit?
Usually embedded base64 images blow past 500,000 characters even under 1 MB. Link images by URL instead, or upgrade your tier.
Can I combine the deck and an appendix file?
Not in one run — convert one file at a time. Merge them first with md-merger.
What if I want a polished PDF for email?
Use md-to-pdf-modern for a clean sans-serif PDF page (or md-to-pdf-academic for serif). A PDF renders identically for every recipient with no CDN dependency.
Privacy first
All Markdown processing runs locally in your browser using JavaScript. No file is ever uploaded to JAD Apps servers — only metadata counters are saved for signed-in dashboard stats.