Guides / Upload HTML

Upload an HTML file online and share it as a public link

Upload one finished HTML file and turn it into a browser link for review or sharing. No ZIP is required when the page is self-contained.

Updated 2026-10-26Practical deployment guide

Answer First

Upload a complete .html file, paste its source, or deploy a browser-ready static build and PreviewShip returns a public HTTPS URL. A self-contained page needs no ZIP; pages with local CSS, JavaScript, images, fonts, or framework assets should be uploaded as a complete static folder or ZIP after the project is built.

From HTML to a link you can share

  1. Upload your .html file. Include local images and styles in a static ZIP when needed.
  2. Publish, then open the HTTPS link and check the page.
  3. Share the link; create an account to save and update the project.

No-signup previews last 24 hours, with uploads up to 15 MiB. Claimed projects follow your plan: 3-day previews on Free, or continuous hosting with an active Pro subscription. Claiming an expired project does not republish it.

Deploy build artifacts, not source-code zips.

If you upload a zip, build the project first and zip the static output folder such as dist, build, out, or public with index.html and assets. Do not zip raw React/Vue/Next source folders with package.json and node_modules. Single .html, .md/.markdown, and .pdf files are supported directly by console upload, CLI, MCP, and the VS Code/Cursor extension.

Key takeaways

Upload one complete HTML file directly or paste its full source; no ZIP, Git repository, FTP client, DNS, or server setup is required.
Use a static folder or ZIP when the page references local CSS, JavaScript, images, fonts, multiple pages, or framework build assets.
React, Vue, Vite, Next static export, Astro, and Svelte projects must be built first; deploy dist, build, out, or public instead of source code.
PreviewShip is designed for review links, demos, reports, AI artifacts, and temporary public previews rather than production application hosting.

Recommended workflow

1

Save the complete page as a .html file, copy the full HTML source, or build the framework project into static output.

2

Open PreviewShip and choose direct HTML upload, paste HTML, a browser-ready ZIP, CLI, MCP, or an editor workflow.

3

Enter a project name, deploy the artifact, and wait for the Ready result.

4

Open the returned HTTPS URL, verify the page and its local assets, then share that same project link.

Comparison snapshot

ArtifactUpload thisDo not upload
One self-contained pageThe .html file or full pasted sourceA screenshot, local file path, or partial code snippet
HTML with local assetsA static folder or ZIP with index.html and assetsOnly index.html without its CSS, scripts, images, or fonts
Framework projectThe built dist, build, out, or public outputpackage.json, src, node_modules, or raw source ZIP
Repeat review deploysThe new browser-ready artifact under the same projectA new production hosting setup for each review

Choose the right upload input

Use direct .html upload or paste HTML when the page is self-contained or only references reachable external assets. This fits generated landing pages, reports, dashboards, calculators, and design proofs.

Use a ZIP or static folder when index.html references local images, CSS, fonts, JavaScript, or nested routes. For a framework project, run its production or static-export build first and upload the generated output.

One complete page: upload .html or paste the full document.
HTML plus local assets: upload the complete static folder or ZIP.
Framework source: build first, then deploy the generated static output, such as dist, build, or out.
Markdown or PDF handoff: use the corresponding direct file workflow.

Example: turn a report folder into a website

For a page that uses local files, put index.html at the root of the static ZIP alongside styles.css and an assets folder. If the HTML contains src="./assets/chart.png", the ZIP must contain assets/chart.png with the same spelling and capitalization.

Include the finished page and the assets it uses. Do not upload only index.html from a framework build, because its JavaScript and CSS bundles are needed to render the page. A directory named public is suitable only if it is already the complete browser-ready output.

index.html — the entry page at the root of the uploaded static ZIP.
styles.css — include it if index.html links to ./styles.css.
assets/chart.png — preserve the path used by the page.

Upload without FTP, DNS, or a repository

Traditional upload-to-website workflows often involve FTP, cPanel, a Git repository, a hosting dashboard, or DNS. Those steps are unnecessary when the immediate goal is a review link for an artifact that already runs in a browser.

PreviewShip keeps this handoff narrow: select the browser-ready artifact, deploy it, open the generated URL, and share the verified link.

Troubleshoot a blank page or missing assets

A blank result usually means the uploaded artifact was not browser-ready. Confirm that index.html is at the expected entry point, open the build locally, and check that every stylesheet, script, image, and font path still exists after packaging.

If the page came from a framework, do not upload the source project. Run the build, deploy the generated output, and compare the exact filename case and relative path for any asset that still returns 404.

Missing index.html: deploy the correct build-output directory.
CSS or images return 404: preserve relative paths and filename case.
Blank React or Vue page: build the project and verify its base path.
External API fails: confirm it accepts browser calls from the preview origin.

Preview sharing is different from production hosting

A PreviewShip URL is a fast way to review a finished static artifact. Choose a production platform when the site needs durable release operations, custom domains, backend services, databases, server rendering, or production uptime commitments.

Official sources

Product and workflow facts were verified against these official pages on 2026-10-26.

FAQ

Can I preview an HTML file before publishing it?

Yes. The HTML input offers a local static preview for checking layout before you publish. Scripts and external resources are disabled there. Use the published link to verify JavaScript, remote fonts, images, and APIs; a local layout check does not test those dependencies.

What happens to the uploaded HTML or Markdown filename?

A single HTML upload is published as index.html so the project root opens the page. Markdown is rendered through a generated HTML reader while its source is retained.

Can I upload an HTML file online for free?

Yes. A no-signup preview lasts 24 hours with an upload limit of 15 MiB. Free account previews last 3 days. Pro adds higher limits, continuous hosting while subscribed, and password access.

Can the HTML include JavaScript?

Yes. Client-side JavaScript can run on the published static page if the browser and external dependencies allow it. The local HTML preview before publishing is a static layout check with scripts disabled; test interactions on the hosted result.

Can I update the same project later?

You can deploy a new version under the same project workflow and keep the fixed project URL pointing at the latest deployment.

Do I need FTP, a domain name, or a Git repository?

No. PreviewShip returns a hosted preview URL, so a browser-ready HTML artifact can be shared without FTP, DNS, a custom domain, or a repository.

Should I upload framework source code or built output?

Upload browser-ready output. Build the project first, then deploy dist, build, out, public, or a ZIP that contains index.html and all referenced static assets.