Skip to main content
Deploying is log in once, check what will change, then push to sync.
Zero deployment configuration — no Dockerfile, hosting provider config, or CI build settings for the site itself. webstorio.config.ts plus webstorio push is enough; Webstorio compiles and hosts. See How the CLI works.

1. Log in

This opens your browser to authorize the CLI. After you approve, a token is stored locally (OS keychain when available, otherwise a 0600 file in ~/.webstorio/).

2. Check status

See what differs from the remote project before you push:
status is read-only. It shows:
  • Environment and auth (logged in or not)
  • Local project name, subdomain, page/component counts
  • A diff vs remote when you’re logged in: pages, components, and assets as new (+), modified (~), or unchanged (·)
  • Schema changes when schemasDir is set (new / modified / unchanged / remote_only)
Run it again after a push to confirm you’re up to date.

3. Push

On push, the CLI:
  1. Resolves your project by its subdomain (creating it if needed).
  2. Applies configuration & features from webstorio.config.ts.
  3. Merges branding (when present) into the website config, resolving favicon / default OG image paths from uploaded assets.
  4. Composes each page/component into a single self-contained module.
  5. Uploads the code (and syncs pages[].seo when authored); the server validates and compiles authoritatively into the stored HTML, writing a new version per page.
  6. With --publish, publishes the synced pages and the site.
After the first successful push, the project is marked CLI-managed in the dashboard. Editors can still change pages, branding, and features in the UI, but webstorio push will overwrite these changes. Each page is reported as created, updated, or error:

What gets created

  • A project + website bound to your subdomain.
  • A home page (/), one page per pages[] entry, and _header/_footer component pages for your components[].
  • A new page version for each pushed page on every run (push is idempotent — re-running updates existing pages in place).
The subdomain is the project’s identity. Changing it in your config will resolve to (or create) a different project on the next push.
Command options: webstorio login, webstorio status, and webstorio push.