Upload-only publishing

Build slides anywhere. Publish them here.

There is no browser editor. Create an API key in your account, then upload Markdown decks and images with curl, your own tooling, or a coding assistant pointed at /mcp.

01

Create a key

Sign in with GitHub and create a read/write API key in your account. Keys are shown once and can expire.

Sign in with GitHub
02

Markdown format

Decks are one Markdown file. YAML front matter sets metadata; slides are separated by a line with only ---.

+++
title: Quarterly review
client: Example client
date: September 1, 2026
access: private
+++

# Opening headline

One sentence to frame the meeting.

---

## Keep each slide focused

- Prefer six or fewer bullets
- End with a specific next step

Required fields: title, client, and date. New decks default to private.

03

Upload a deck

curl -X POST https://slides.standouthost.com/api/v1/decks \
  -H "Authorization: Bearer $SLIDES_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"quarterly-review","markdown":"..."}'

Set access to public when you are ready to share. Private decks can get link passwords from your account.

04

Upload images

curl -X POST \
  -H "Authorization: Bearer $SLIDES_API_KEY" \
  -F "file=@diagram.png" \
  https://slides.standouthost.com/api/v1/decks/quarterly-review/images

The response includes a Markdown image URL. Images inherit the deck’s access rules.

05

Point robots at /mcp

Humans read this page. Agents POST JSON-RPC to https://slides.standouthost.com/mcp with Authorization: Bearer sld_….

curl -X POST https://slides.standouthost.com/mcp \
  -H "Authorization: Bearer $SLIDES_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Tools include list_decks, get_deck, put_deck, delete_deck, and upload_image. Visiting /mcp in a browser just shows the slide-machine easter egg.