When this publishing path fits
Use this workflow when Slidev is already your authoring tool and you want a deck-specific reader URL, later version updates, and account-managed sharing controls. If you prefer to own a general-purpose deployment project, Slidev also documents GitHub Pages, Netlify, Vercel, Zephyr Cloud, and Docker. This path is not suitable for unbuilt Slidev source, server-side code, or users who need an editor rather than a publishing layer.
Build and package the deck
Build for static hosting
Run Slidev's build command from the presentation project.Check the output locally
Confirmdist/index.htmlexists and that relative assets remain insidedist.Zip the contents, not the folder
Slidesfly requiresindex.htmlat the archive root.
pnpm slidev build
test -f dist/index.html
cd dist
zip -r ../slidev-deck.zip .
cd ..Publish the archive
slidesfly login --json
slidesfly publish ./slidev-deck.zip --title "Slidev field guide" --visibility unlisted --jsonA successful publish returns the generated deck ID and reader URL:
{
"ok": true,
"data": {
"deck_id": "YOUR_GENERATED_DECK_ID",
"url": "https://slidesfly.xyz/d/YOUR_GENERATED_DECK_ID",
"visibility": "unlisted",
"anonymous": false
}
}To replace the content without changing the reader URL, publish a newly built archive with --id YOUR_DECK_ID.
Public indexing, private access, password protection, allowlists, expiry, deletion, and quarantine remain separate policies enforced around the sandboxed reader.
Compatibility limits to test
| Area | Expected behavior | Test before sharing |
|---|---|---|
| Assets | Relative local files inside the zip are supported. | Fonts, images, code highlighting, and theme CSS. |
| Storage | The deck runs in an opaque-origin sandbox. | Remove code that requires localStorage, IndexedDB, or cookies. |
| Navigation | Slidev's in-deck controls remain primary. | Keyboard, pointer, touch, and fullscreen. |
| Remote code | Remote scripts in multi-file content are rejected. | Bundle all runtime code into the build. |
Publishing failures and recovery
| Error | Recovery |
|---|---|
AUTH_REQUIRED | Run the official login flow, then retry the zip publish. |
BILLING_NOT_ENABLED | Verify Pricing; if checkout is unavailable, use another static host. |
INVALID_HTML | Rebuild Slidev and confirm dist/index.html exists at the archive root. |
MALICIOUS_CONTENT | Bundle remote scripts locally or appeal a false positive through Report. |
Framework reference: Slidev hosting documentation.