Publishing
Browser drop
The fastest path: drag any file onto the dropzone at
htmldrop.app, or onto the dropzone in the
dashboard if you're signed in. Drop it, and
you get a live slug.htmldrop.app URL back immediately — no build step, no
CLI.
Upload a single file
Upload a single .html or .htm file and it's served as-is. Upload a
single .md file and htmldrop renders it to HTML for you — handy for
READMEs, changelogs, or a quick note you want a URL for.
Bundle: folder or .zip
For anything bigger than one file, upload a folder or a .zip archive.
htmldrop keeps the folder structure intact and serves index.html at the
root, so linked CSS, JS, images, fonts, and other assets deploy alongside it
and resolve exactly like they would on any static host.
This is what makes htmldrop work for:
- Built single-page apps (React, Vue, Svelte, etc.) — ship the
dist/buildoutput as a bundle. Client-side routing works, but SPA fallback is opt-in per site: you must enable SPA fallback for the site (toggle it in the dashboard, orPATCH /api/v1/sites/{id}with{"spa_fallback": true}). With it on, requests for a path that doesn't match a file on disk (e.g. a client-side route like/settings) serveindex.html, so your router'shistorynavigation, deep links, and page refreshes work. With it off — the default — those unknown paths return a 404. - WebGL and canvas demos — p5.js sketches, Three.js scenes, and similar multi-asset projects deploy with all their textures, models, and scripts intact.
Bundles respect the same per-plan upload cap as single files: 10 MB per upload on the free plan, scaling up to 250 MB per upload on Pro. If your bundle is over the cap for your plan, split assets or upgrade.
# example: zip a built SPA and drop it on htmldrop.app
cd dist && zip -r ../site.zip . && cd ..
# then drag site.zip onto the dropzone, or publish it via the API/agents —
# see /docs/api and /docs/agents
Paste HTML or Markdown
No file handy? In the dashboard you can paste HTML or Markdown directly into a text box and publish it straight to a URL — useful for quick notes, snippets, or content generated elsewhere that you don't want to save to disk first.
Templates
Don't want to start from a blank page? /templates has ready-to-edit starting points you can customize and publish in minutes:
- CV — a clean, monospace résumé layout.
- Portfolio — a grid layout for showcasing projects.
- Link-in-bio — a stacked links page for a single bio link.
- Event invite — a shareable page for a single event.
Automating publishing
Everything above works interactively in the browser. If you want to publish from a script, CI pipeline, or an AI agent instead, see the API docs for the REST endpoints and the Agents & MCP docs for the MCP server and tool-based workflow.