Static sites and single-page applications.
Plain HTML or a front-end build (Vite, React, Vue, Angular, Astro, Docusaurus and more): how the output folder is found, single-page routing, and the price of a small static site.
A static site — plain HTML, or files produced by a front-end build — runs as an application like any other: every push is deployed, previews are made for branches, and you get HTTPS and your own domain.
What we recognise
| Project | Output folder |
|---|---|
Plain HTML — index.html at the root | the root |
index.html in public, dist, site or docs | that folder |
| Vite (React, Vue, Svelte) | dist |
| Create React App | build |
| Angular | dist |
| Vue CLI, Parcel | dist |
| Gatsby | public |
| Astro | dist |
| Docusaurus | build |
| VitePress | .vitepress/dist |
Next.js with output: 'export' | out |
Nuxt with ssr: false (generate) | .output/public |
SvelteKit with adapter-static | build |
If the build puts its files somewhere else, we look for the first folder with an index.html among dist, build, out, public and .output/public. You can also set the folder yourself in Settings → Build settings → Output folder.
Single-page applications
For a front-end build, every address that is not a file opens index.html, so client-side routing (React Router, Vue Router and others) works on reload and on direct links. Files are served compressed.
Build settings
The install and build commands come from your package.json and lock file (npm, yarn or pnpm). Change them in Settings → Build settings if you need to — for example npm run build:prod.
Variables from the Variables tab reach a running application, not the build. A value that a front-end build writes into the files — such as VITE_API_URL — is read from your repository, for example from a committed .env.production file. Commit the change and push to rebuild.
Price
A static site needs very little: 512 MB of memory, 1 core and 5 GB of disk — $7 a month is plenty for most sites. Traffic includes 500 GB a month. See Billing for applications.