Skip to content

Deploy Your First Site

Buzz is two parts: a server that hosts your sites, and a CLI that uploads directories to it. This page gets you from nothing to a live site URL.

There’s no hosted Buzz to sign up for, so a server has to exist first. Two ways to get one:

  • Run your own. Follow Self-Hosting Overview, then come back with your Buzz domain. You do this once.
  • Use someone else’s. Ask whoever operates it for the server URL, such as https://buzz.example.com.

The rest of this page takes a couple of minutes.

You need Node.js 22 or later, npm, and a GitHub account.

Terminal window
npm install --global @infomiho/buzz-cli
buzz --version

Point the CLI at your server, then sign in:

Terminal window
buzz config server https://buzz.example.com
buzz login

buzz login opens your browser and prints a code. Enter the code, approve access, and the CLI saves the session to ~/.buzz.config.json. Confirm it worked:

Terminal window
buzz whoami

Point buzz deploy at the directory that contains index.html:

Terminal window
buzz deploy ./dist

The CLI zips the directory, uploads it, and prints the site URL:

Deployed to https://calm-hub-4821.buzz.example.com

Buzz picked that site name because you didn’t supply one. To choose it yourself, use lowercase letters, numbers, and hyphens:

Terminal window
buzz deploy ./dist --subdomain my-site

Site names are unique across a Buzz server. If someone else already owns the name, pick another. If you own it under a different GitHub account, run buzz logout, sign in with that account, and deploy again.

A successful deployment writes the site name to a CNAME file in the directory you ran the command from. It’s not a DNS CNAME record; it tells the CLI which site this project belongs to. Rebuild and run the same command to publish again:

Terminal window
buzz deploy ./dist

Each redeployment replaces the entire file set, so files missing from the new build disappear from the site. If Buzz can’t validate or publish the new upload, the previous deployment keeps serving.