App hosting ยท Static sites

Static site hosting: plain HTML or a build, from GitHub

A repository with an index.html is served as it is. A repository with a build script that writes dist, build, public, out or _site is built on every deploy and served from the result. Either way it gets an https address and can carry your domain.

Free app
256 MB, Node.js, Python, Go, Java and more
Address
https://name.fadehost.app, sleeps when idle on free
Paid
from $2/mo or $20/yr for 1 GB, with an always-on address included
Regions
France, Montreal, Oregon, Singapore

Two ways it deploys

  • Plain files: an index.html at the root and the panel serves the repository with a small static server on the app's port. No build, no Node process to keep alive.
  • A build: Astro, Vite, Eleventy, Docusaurus, VitePress, VuePress, Gatsby, Parcel or SvelteKit with the static adapter are recognised from package.json; the build script runs on every push and its output folder (dist, build, public, out or _site) is served. Another generator: set the app's Language to static and name the build command.

Single-page apps

Set the environment variable SPA=1 and every unknown path answers index.html, so client-side routers work on a fresh load of any route.

A domain of your own

Point a CNAME at the app from its page and the site answers on your domain with a certificate. The free tier's address sleeps when idle and wakes on the next visit, which takes a few seconds; on a paid tier the always-on address is $2 a month.

Frequently asked questions

Is there a bandwidth limit?

Fair use, behind the Cloudflare proxy which caches static assets at the edge. A site that serves a few thousand visitors a day is fine on the free tier.

Can I serve a game server's website this way?

Yes; the server-guide-site template is a rules, how-to-join and mod-list site built to plain HTML from Markdown, and the community website add-on does it with a live map and player stats.

How does the public address work?

Give the app a web address in the panel and it is served at https://name.fadehost.app behind the Cloudflare proxy with a certificate. It comes with the plan on every tier. On the free tier the address sleeps when nobody has used it for a while and wakes on the next request; on a paid tier it stays awake. Your own domain can point at it.

What happens on a deploy?

The repository is cloned at your branch, dependencies install, the build runs when there is one, the app starts. With auto-deploy on, every push does the same. The live console shows each step; a failed one is explained in plain words.

Related

Static site hosting: plain HTML or a build, from GitHub

Host a static site free