Quickstart
Install the sf CLI, sign in, publish a folder, and put it on your own domain.
You can publish a folder of static files and get a live space.fast URL in one command, then point your own domain at it. Existing Spaces on view.fast keep their URLs. See URLs and hostnames.
Before you start
You need a folder of built static files. Any framework’s output directory works (dist, out, build, public). If you only have source, sf publish can build it for you, see Frameworks and builds.
Don’t want to install anything? Open drop.fast and drag a folder, a .zip, or a single index.html onto the window — no account needed. See Drop for the full walkthrough.
Install the CLI
npm install -g spacefastpnpm add -g spacefastnpm install -g spacefastbun add -g spacefastnub add -g spacefastaube add -g spacefastThe npm package needs Node.js 20.3 or newer. On macOS or Linux you can use Homebrew instead (brew install spacefast/tap/spacefast). Standalone binaries are also available. Check the install:
sf --versionSign in
sf loginThe CLI prints a code and opens your browser. Approve the request there. The CLI receives an API key that lasts 30 days and expires after 7 days without use. Confirm with sf whoami.
You can skip this step and publish anonymously. The claim link printed after the publish lets you attach the Space to your account later. An unclaimed Space serves for 33 hours and 20 minutes after creation or the latest publish that changes files, capped at 30 days from creation.
Publish
cd my-site
sf publish ./distThe CLI creates a Space, uploads the folder, and prints the URLs:
Published: https://quiet-harbor.space.fast
Open https://quiet-harbor.space.fast
Live URL https://quiet-harbor.space.fast
Version URL https://quiet-harbor--v1.space.fast
Space spc_…
Version v1 (ready)
Files 12
Duration 3.2sThe link between this folder and the Space is saved in .spacefast/space.json. Commit that file so the next sf publish from any machine updates the same Space.
Publish again, then roll back
If you skipped sign-in, run sf spaces claim in this directory first. It asks you to sign in and attach the Space to a team. sf versions ls and rollback by version number need a claimed Space.
Change a file and run sf publish ./dist again. Only changed files upload. You get v2, and live now points at it. The version URL for a retained v1 still serves the old build.
sf versions ls
sf rollback v1Rolling back moves the live channel to v1. Nothing is rebuilt. sf promote v2 moves it forward again.
Add your domain
sf domains add example.com --role primaryThe command prints the DNS records to create at your DNS provider: a TXT record that proves you control the name, and A records that route traffic. Adding an apex also adds www and redirects it to the apex. Check progress with:
sf domains check example.comOnce the domain is active, the Live URL switches to https://example.com. The space.fast hostname keeps working. Details, states, and troubleshooting are in Custom domains.
Next
Working with other people? If your Space is still anonymous, claim it first. Signed-in publishes already belong to a team. Personal and Go allow only the owner; adding another member needs Pro. Then invite members to publish and roll back together. Owners and admins can manage domains and invitations. Choose whether new Spaces start private to the team or public in team access settings.
Work with a team
Invite members, choose roles, and set access for new Spaces.
Let your agent publish
Install the Spacefast plugin for Claude Code, Cursor, or Codex.
Publish from Git
Push to a remote or connect GitHub and let Spacefast build.
Dynamic sites
Add a database, functions, and crons with the Zero runtime.
Run in CI
CI=1 switches the CLI to JSON output and no prompts.