Docs / What you can host
What you can host
publish.my serves static sites — anything that runs in the browser from plain files. Here's exactly what you can upload, and the few rules that apply.
Static files only
Your site is served as-is from fast static storage. There's no server-side code at request time — no PHP, no Node/Python servers, no databases, and no SSR (Next.js, Nuxt, or SvelteKit in server mode won't run). If a file type isn't a browser asset, it simply won't do anything on our side.
Built with a framework? That's fine — build it to static HTML first and publish
the output folder (the one with index.html at its root):
| Framework | Build | Publish |
|---|---|---|
| Next.js | output: 'export' + next build | out/ |
| SvelteKit | @sveltejs/adapter-static | build/ |
| Nuxt | nuxt generate | .output/public/ |
| Astro | astro build | dist/ |
| Vite | npm run build | dist/ |
| Create React App | npm run build | build/ |
Allowed file types
These extensions are published; anything else is skipped (see below).
| Category | Extensions |
|---|---|
| Web | html css js mjs json txt csv xml webmanifest map |
| Images | png jpg jpeg webp svg gif ico avif |
| Video & audio | mp4 webm mov mp3 wav ogg m4a |
| Fonts | woff woff2 ttf otf |
| Documents | pdf |
The index.html rule
The folder you publish must have a file named exactly index.html at its
top level — that's your homepage. The most common error is packing a framework's
source folder instead of its built output; if there's no top-level index.html,
the deploy is rejected with a message naming the likely framework and fix.
.psd, a .zip inside your
folder, or a .DS_Store) is dropped with a warning — the rest of your site still
publishes. Symlinks are skipped too. Only unsafe paths (.. traversal, absolute
paths) cause a hard rejection.
How you publish it
An AI agent can publish for you (paste "Publish this project with https://publish.my"),
or you can do it yourself in the browser at publish.my/upload
— paste your HTML or drop a .zip. Either way the allowed types and limits above are
the same.