When this path fits—and when it does not
| Use Slidesfly when | Choose another path when |
|---|---|
| You have finished browser-ready HTML and want a deck-specific reader link. | You still need an editor or AI system to generate the presentation. |
| You want anonymous trial, later claim, or same-URL version updates. | You need a general web application host with server-side code. |
What you need
- Node.js 22 or newer only when you use the CLI path; browser publishing does not require it.
- One
.htmlor.htmfile. - Inline CSS, JavaScript, fonts, and images when possible. A single-file deck cannot load a remote script.
Download the exact verified example
The proof uses one 3,640-byte HTML file with its CSS, JavaScript, and three slides inline. Download that artifact, inspect it locally, then compare your result with the live reader.
- Source artifact: download the verified deck.html.
- SHA-256:
b91c5bbb153a49599ad0c84a519392f3bfe80f53d131f2b0d2d36bda86273dc6. - Live result: open the published plain-HTML deck.
- Agent-readable proof: publish-html-presentation-online.md.
Publish the HTML file in your browser
Download and inspect the example
Download deck.html, open it directly, and use the arrow keys to confirm that all three slides work without a development server.Open the browser publisher
Go to slidesfly.com/#publish, optionally enter a title, then drag deck.html into the upload area or choose the file.Wait for the live result
A successful publish changes the result to “Deck is live” and shows the generated slidesfly.xyz reader URL.Open the reader before sharing
Open the returned URL, check navigation and layout, then copy that exact URL instead of constructing one yourself.
Publish the same file with the CLI
Check that the deck is self-contained
Open the file locally and confirm the presentation works without a development server.Install the official CLI
Use the website installer, then verify that the installed version is at least 0.1.2.Publish the file
Give the deck a useful title and request JSON when another tool will parse the result.Verify the reader URL
Open the returnedslidesfly.xyz/d/…URL before sharing it.
curl -fsSL https://slidesfly.com/install.sh | sh
slidesfly --version
slidesfly publish ./deck.html --title "Plain HTML example" --jsonWhat the publish command returns
The shape below is illustrative. Your generated deck ID and URL will be different.
{
"ok": true,
"data": {
"deck_id": "v0c8Kf3sQ1MnEa7bYj9wHt",
"url": "https://slidesfly.xyz/d/v0c8Kf3sQ1MnEa7bYj9wHt",
"visibility": "unlisted",
"anonymous": true
}
}The exact ID is generated for your deck. Keep the full reader URL. Anonymous management credentials stay in ~/.slidesfly/config.json; never paste that file into a prompt, issue, or support message.
Update the same URL later
Sign in and claim the anonymous deck before updating it from another machine. An owned deck can receive a new version while keeping the same reader URL.
slidesfly login --json
slidesfly publish ./deck-v2.html --id v0c8Kf3sQ1MnEa7bYj9wHt --json
slidesfly versions v0c8Kf3sQ1MnEa7bYj9wHt --jsonSee the same-URL update and restore Proof Pack for two downloadable versions, the exact claim/update/restore sequence, hashes, and a production reader that was restored to its baseline.
Choose Slidesfly, a static host, an editor, or a file
Choose based on the artifact you have and the delivery behavior you need—not on a generic “best hosting” claim.
| Option | Best when | Boundary |
|---|---|---|
| Slidesfly | The artifact is already a presentation and you want an anonymous first publish, a deck reader, and later same-URL updates. | It does not generate the presentation or run server-side application code. |
| General static hosting | The artifact is a website or app and you need project-level routes, deployment configuration, or broader hosting control. | You own the hosting project, viewer experience, access policy, and update workflow. |
| Presentation editor | You still need to create, edit, or collaboratively design the presentation before sharing it. | The workflow starts before the finished HTML artifact exists. |
| Send HTML or PDF directly | Recipients need an offline attachment or a fixed document instead of a managed reader URL. | Attachments do not provide the same live-link, update, or reader behavior. |
Common publishing failures
| Error or symptom | Cause | Fix |
|---|---|---|
FILE_NOT_FOUND | The CLI path does not point to the downloaded HTML file. | Resolve the real path, confirm the file exists, and retry with that path. |
INVALID_HTML | The file is empty, has the wrong extension, or does not contain an HTML document marker. | Fix the artifact locally and open it in a browser before retrying. |
MALICIOUS_CONTENT | The single-file deck loads a remote script or matches another blocking security rule. | Bundle runtime code into the file. Do not auto-rewrite and retry rejected content. |
QUOTA_EXCEEDED | The file or publish count exceeds the current anonymous or account limit. | Follow the returned limit hint; compress the artifact or use an eligible account. |
RATE_LIMITED | Too many publish requests were sent in a short period. | Wait about 60 seconds and retry once instead of sending repeated requests. |
Reader behavior breaks | The deck depends on same-origin storage, remote runtime code, or another sandboxed capability. | Remove that dependency and retest navigation, fonts, images, and layout in the reader. |