Skip to content
Subnomic

Sites

Static hosting with a real rollback

Push a folder. Get a URL. Roll back without rebuilding.

Sites hosts what your build produces — a Vite or Astro dist, a Hugo public, plain HTML. Every deployment is kept whole with its own address, so going back is promoting one that already exists.

Deploy
one command
Rollback
a pointer
Kept
live + 10 builds
Analytics
no cookie
~/acme-blog
$ subnomic sites deploy --prod
312 already stored, 14 to upload
https://blog.subnomic.app

How it works

Three commands, and the second one is the one you repeat.

01

Link a folder

Create the site and tell it where your build lands. The link is saved to subnomic.json, so every later deploy is one command.

~/acme-blog
$ subnomic sites create blog --dir dist
https://blog.subnomic.app
02

Deploy

Without --prod you get a preview address for exactly this build. With it, the build goes live. Only the URL is printed on stdout, so it drops straight into CI.

~/acme-blog
$ subnomic sites deploy
https://blog--0198c2f4a1b27d3e.subnomic.app
$ subnomic sites deploy --prod
https://blog.subnomic.app
03

Roll back

Promote the build before the live one — or any build by id. Nothing is re-uploaded or rebuilt, because every deployment is still there, whole.

~/acme-blog
$ subnomic sites rollback
$ subnomic sites rollback --to 0198c1e9

What comes with a site

Everything a static site needs after the upload.

Only what changed is uploaded

Files are hashed on your machine. Anything the workspace already stores is copied server-side, so the second deploy of a big site uploads a handful of files.

A preview address per deployment

Every build answers at blog--<id>, served with noindex. Unguessable, not private — protect the site and its previews are covered too.

Your own domain

Two DNS records — a CNAME and a TXT that proves you own it. The certificate is issued and renewed for you. Up to ten domains per site.

_redirects and _headers

Netlify-style rules: 301 to 308, splats, 404 and 410. They belong to the deployment, so a rollback brings the old rules back with the old files.

Single-page apps and your own 404

SPA mode answers unknown routes with index.html — only for page navigations, so a missing .js is still a plain 404. A custom not-found page keeps its 404 status.

Password or members only

A shared password, or only people in the workspace. If the protection is ever misconfigured the site refuses visitors rather than going public.

Traffic without tracking

Hourly counts by path, status, referring site, browser and device. No IP address, no cookie, no script on your page. Kept 90 days.

Deploy from CI with a narrow token

A token with the sites.deploy scope can publish and roll back. It cannot create, delete or re-point a domain.

Or drop the folder in the browser

Drag a built folder onto the site page, or edit a text file in the browser and publish the result as a new deployment.

Rules and defaults

Rules ship with the files they apply to.

Put a _redirects or _headers file next to your index.html and it is read at deploy time. First match wins, and a rule beats a file at the same path.

  • HTML is served no-cache; bundler-hashed assets get a year and immutable. You do not have to write either.
  • Every response carries HSTS and nosniff, and a site cannot switch them off.
  • .env files, .git and node_modules are never uploaded — pointing a deploy at the project folder instead of its build does not publish your secrets.
  • A folder with no index.html is refused before anything is uploaded.
_redirects
# from               to                              status
/docs/*              https://docs.acme.io/:splat     301
/old-pricing         /pricing                        308
_headers
/assets/*
  Cache-Control: public, max-age=31536000, immutable
/*
  X-Frame-Options: DENY

Limits

What each plan includes.

Plan Free Pro Team Enterprise
Sites11050500
Site traffic / month1 GB30 GB150 GB1.5 TB
Stored (shared with Storage)512 MB20 GB100 GB1 TB
Services131010

A site’s files count toward the workspace’s stored bytes, shared with Storage.

Questions

Before you point a domain at it.

Does it build my site?

No. You build locally or in your own CI, and Sites hosts the result. There is no Git integration and no build step to configure.

Can it run server code?

subnomic sites deploy recognises a Nitro node-server build or a Linux binary and runs it as a service on its own microVM. The plan sets how many services and how large one may be.

What about an apex domain?

Point it with CNAME flattening, ALIAS or ANAME if your DNS provider supports it — or serve www and redirect the apex at your registrar.

Are preview addresses private?

They are unguessable and never indexed, but not private. Put a password or workspace protection on the site and the previews are behind it too.

Your next deploy is one command away.

Create a workspace, link a folder, deploy. The free plan includes a site and needs no card.