HTML publishing

Publish an HTML presentation without setting up a hosting project

Use Slidesfly when you already have a browser-ready, self-contained HTML presentation and need a shareable reader URL without configuring a hosting project. The first single-file publish can be anonymous and unlisted; claim it later to update the same URL, restore versions, or add account-managed sharing controls.

Author
Slidesfly
Reviewed by
Slidesfly maintainers
Published
Updated
Tested with
Slidesfly CLI 0.1.2, the browser publisher, and a byte-matched plain-HTML source/live reader pair

5 minute workflow

When this path fits—and when it does not

Use Slidesfly whenChoose 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 .html or .htm file.
  • 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.

Publish the HTML file in your browser

  1. 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.
  2. 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.
  3. Wait for the live result

    A successful publish changes the result to “Deck is live” and shows the generated slidesfly.xyz reader URL.
  4. 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

  1. Check that the deck is self-contained

    Open the file locally and confirm the presentation works without a development server.
  2. Install the official CLI

    Use the website installer, then verify that the installed version is at least 0.1.2.
  3. Publish the file

    Give the deck a useful title and request JSON when another tool will parse the result.
  4. Verify the reader URL

    Open the returned slidesfly.xyz/d/… URL before sharing it.
curl -fsSL https://slidesfly.com/install.sh | sh
slidesfly --version
slidesfly publish ./deck.html --title "Plain HTML example" --json

What 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 --json

See 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.

OptionBest whenBoundary
SlidesflyThe 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 hostingThe 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 editorYou 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 directlyRecipients 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 symptomCauseFix
FILE_NOT_FOUNDThe CLI path does not point to the downloaded HTML file.Resolve the real path, confirm the file exists, and retry with that path.
INVALID_HTMLThe 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_CONTENTThe 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_EXCEEDEDThe 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_LIMITEDToo many publish requests were sent in a short period.Wait about 60 seconds and retry once instead of sending repeated requests.
Reader behavior breaksThe 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.