One command to publish.
Real hosting underneath.

One command or one POST puts your build folder live, with versions, one-command rollback, included cached delivery, and a way out.

Publish, roll back, leave

$ sf publish ./dist
✓ 128 files · live in 8s → https://quiet-sun.view.fast
  this version → https://v7--quiet-sun.view.fast
$ sf versions
v7  ready  live       just now
v6  ready             2 days ago
v5  ready             last week
$ sf rollback v6
✓ v6 promoted to live — a pointer flip, no rebuild, no redeploy
$ sf spaces download --output ./quiet-sun
✓ every file written to ./quiet-sun — ready to serve anywhere

CLI

sf publish ./dist and the folder is live. Later runs upload only what changed, and identical content doesn’t create a new version.

HTTP API

One POST /v1/publish with a file or zip returns a JSON receipt: the live URL, an immutable version URL and a claim link. No SDK and no account needed: curl -F archive=@site.zip https://api.spacefast.com/v1/publish.

CI

Run the CLI or curl from any pipeline step with a scoped key. sf api-keys create --preset ci_deploy mints a least-privilege key, shown once. Every command takes --json and exits with a stable code (0 ok, 2 validation, 10 auth, 20 not found, 30 conflict, 40 network).

Agents

The same CLI, API and typed errors work when an agent is at the keyboard. Every docs page is fetchable as Markdown, and a hosted MCP server gives agents typed tools to publish, check status, diff and roll back.

No terminal at all

Drop a folder, a zip or a single index.html into the dashboard.

The CLI reference covers every command and flag. The API guide covers auth, the response envelope and idempotency.

Everything is a version

A version for each change

A publish that changes files freezes an immutable version with its own URL. Republishing identical files creates nothing new. Free spaces keep 200 versions, then expire the oldest ones nothing serves. The live URL flips atomically, so visitors never see a half-published space.

Rollback is a pointer flip

sf rollback v6 promotes an earlier version to live. No rebuild, no redeploy. Static files are prepared at publish; dynamic requests use the selected runtime and may read app data. Your live version is never auto-deleted.

Leaving is one command

sf spaces download writes files from a retained version to a folder. Static sites can move with those files. Apps using Spacefast runtimes need code changes and a separate data export.

Your Netlify config already works

_redirects and _headers are a Netlify-compatible subset, compiled once at publish. They ship inside the version, so routing rolls back with your space.

_redirects. A redirect, a proxy to a real backend, an SPA fallback:
/old-post        /new-post                     301
/api/*           https://api.acme.com/:splat   200
/*               /index.html                   200
_headers. Response and cache rules:
/assets/*
  Cache-Control: public, max-age=31536000, immutable

A 404.html at the root handles misses, the SPA fallback is auto-detected for built apps, and a 200 rule to an absolute URL proxies a path under your own domain. Browser-ready output publishes as-is, with no adapter or framework preset:

  • A Next.js export
  • Vite
  • Astro
  • SvelteKit
  • Hugo
  • Plain HTML

The full rules live in the docs: redirects & rewrites and response headers.

Leave your email. We send invites every day.Try it on something you already made, today.

Spacefast is in research preview.