MachineMachine

Deploying a website

Take a site from your project to a live URL — and connect your own domain — in a few minutes.

Machine can deploy a website straight from your project: it builds your source, ships it to Vercel, and gives you a live URL. This guide walks the whole path, including connecting a custom domain.

For the manifest file itself, see the Manifest reference. To publish a folder from Machine Desktop instead, see Deployments.

Turn on Apps first

Website deploys are an experimental feature called Apps. Until it is on for the project, the Apps panel says "Apps is an experimental feature". A project manager switches it on under the project's Settings → Experimental.

Deploy your first app

Declare the app

Add an entry under apps in your project's manifest. At minimum, point it at the source and tell it how to build. In kortix.yaml:

yaml
apps:
  - slug: marketing
    name: Marketing site
    source:
      type: git          # deploy from this project's repo
      branch: main
      root_path: apps/site   # the folder to build, if not the repo root
    build:
      command: pnpm build
      out_dir: dist

A project on the older kortix.toml uses the same fields as an [[apps]] table:

toml
[[apps]]
slug = "marketing"
name = "Marketing site"

  [apps.source]
  type      = "git"
  branch    = "main"
  root_path = "apps/site"

  [apps.build]
  command = "pnpm build"
  out_dir = "dist"

Prefer the dashboard? Click Apps in the project sidebar, then Add app. The form writes the same entry to your manifest. Besides a Git repository, it can deploy a Folder in a session (a folder an agent built in a session's sandbox) or a Prebuilt tarball.

Deploy

Save the manifest. Machine checks every project's apps continuously and deploys a new or changed entry automatically, usually within seconds — or click Deploy on the app's card in the Apps panel to ship it now.

The status moves through building → deploying → active. If a build fails, the card shows the error, and Logs shows the build output.

Open your live URL

Once the deploy is active, the card shows a stable *.vercel.app URL. Click it; your site is live. Share it as-is, or connect your own domain next.

Connect a custom domain

Add the domain

List the domains you own under domains, or type them into Domains in the app's form, one per line:

yaml
apps:
  - slug: marketing
    domains:
      - example.com
      - www.example.com

Machine attaches each domain to the deployment on the next deploy.

Point DNS at Vercel

Add the records at your DNS provider (the registrar or DNS host for the domain):

  • Apex domains like example.com → A records with Vercel's IP addresses.
  • Subdomains like www.example.com or docs.example.com → a CNAME, usually cname.vercel-dns.com.

Your DNS provider's help pages explain where to add records.

Wait for it to verify

DNS changes can take anywhere from a minute to a few hours to propagate. Once the records resolve, the domain starts serving your site.

Domain not serving? That almost always means the DNS records haven't propagated yet, or they don't exactly match what Vercel expects. Double-check the type, name, and value, remove any conflicting old A/CNAME records for the same name, and give it time.

Redeploy and roll forward

Apps redeploy automatically whenever their manifest entry changes — an edit to the build command, the domains, or an env var. To redeploy without changing anything, use Redeploy on the card. The current version keeps serving until the new build is ready. Stop takes an app offline; turning an entry off in the manifest does not stop a running deployment by itself.

Multiple apps

A project can declare as many apps as you need — a marketing site, a docs site, and a dashboard side by side, each with its own source, build, domains, and environment. They appear together in the Apps panel.

Environment variables aren't secret

Values under an app's env are stored in the manifest as plain text, in your repository. Don't put passwords or API keys there. Project secrets go to agents in sessions, not to app builds.


Related: Manifest reference · Deployments in Machine Desktop.

On this page