Skip to main content
A free account unlocks publishing a whole directory: drag a folder onto the dashboard, or upload a .zip. Structure is preserved, so linked CSS, JS, images and fonts resolve exactly as they would on any static host.
Folders and .zip bundles require an account. The homepage drop area, which needs no signup, accepts single .html and .md files only.
index.html at the root of the upload is the landing page. Everything else is served at its relative path.

Static site generators

Ship the build output — dist/, build/, _site/ — and every page works with no configuration. Generators that write about/index.html for the page at /about resolve automatically, as do flat builds that write about.html. A directory page requested without its trailing slash redirects to the canonical /about/ form, so relative links inside the page resolve correctly. Astro, Hugo, Eleventy, Jekyll and friends all work this way.

Single-page apps

Ship dist/ or build/ as a bundle. For apps that route entirely on the client, turn on SPA fallback:
Open the site and toggle SPA fallback.
With it on, a path matching no file and no page — a client-side route like /settings — serves index.html so your router takes over. Leave it off for multi-page sites, so genuinely missing pages return a real 404.

WebGL and canvas projects

p5.js sketches, Three.js scenes and similar multi-asset work deploy with their textures, models and scripts intact — this is the case bundles exist for.

Zipping a build

Then drop site.zip on the dashboard, or publish it through the API or an agent.

Size limits

The cap applies to the upload as a whole: 10 MB on free, 100 MB on Plus, 500 MB on Business, with total storage of 50 MB, 2 GB and 20 GB. See plans and limits. Over the cap, split the assets or upgrade.