Deploy Applications
Deploy supported Node, Python, Go, static, and Docker workloads with one command.
VarityKit is a Python-based CLI that helps you deploy and manage applications. It is a familiar deploy CLI: install it, log in, and ship.
Deploy Applications
Deploy supported Node, Python, Go, static, and Docker workloads with one command.
Migrate from Vercel
Move an existing Vercel app to Varity in one step: analyze, transform, and deploy.
Manage Deployments
List deployments, view status and logs, and redeploy a known-good version when needed.
Validate Setup
Run diagnostics to ensure your development environment is ready.
| Command | Description |
|---|---|
varitykit login | Log in with your deploy key from the developer portal |
varitykit doctor | Validate your development environment |
varitykit completions | Set up shell completions (bash, zsh, fish) |
| Command | Description |
|---|---|
varitykit auth login | Log in with your deploy key |
varitykit auth logout | Remove saved credentials |
varitykit auth status | Show current login status |
| Command | Description |
|---|---|
varitykit app deploy | Deploy your application |
varitykit app list | List all deployments |
varitykit app info | Show deployment details |
varitykit app delete --yes | Delete a deployment |
| Command | Description |
|---|---|
varitykit domains list | List all domains you own on varity.app |
| Command | Description |
|---|---|
varitykit migrate --url <github-url> | Clone a GitHub repo and migrate it to Varity (analyze + transform + deploy) |
varitykit migrate --path <path> | Migrate a local Vercel project directory |
varitykit migrate --dry-run | Preview what would change without modifying files |
varitykit migrate --no-deploy | Apply codemods only, skip deployment |
varitykit migrate analyze <path> | Scan for Vercel artifacts (read-only preview) |
varitykit migrate apply <path> | Apply codemods without deploying |
varitykit migrate rollback <path> | Restore files from .vercel-migration-backup/ |
# Install the CLIpipx install varitykit
# Check your environmentvaritykit doctor
# Log in with your developer portal deploy keyvaritykit login
# Deploy (auto-detects static vs dynamic)varitykit app deploy
# Or force a specific modevaritykit app deploy --hosting dynamicvaritykit app deploy --hosting staticAll commands support these global options:
varitykit [OPTIONS] COMMAND [ARGS]...
Options: --version Show the CLI version -v, --verbose Enable verbose output --debug Enable debug output --json Output in JSON format --help Show help messageDeploy static websites and single-page applications:
varitykit app deployDeploy full-stack applications with backend:
varitykit app deploy --hosting dynamicVarity auto-detects when your app needs dynamic hosting (Express, Fastify, Next.js SSR, FastAPI, Django, Flask, etc.) and selects it automatically. Use --hosting dynamic only to force the mode explicitly.
Varity currently auto-detects and deploys the following frameworks:
| Framework | Static | Dynamic |
|---|---|---|
| Next.js 13+ | Supported | Supported |
| React (Vite) | Supported | Supported |
| React (CRA) | Supported | Supported |
| Vue 3+ | Supported | Supported |
| Express, Fastify, Nest, Koa, Hono | Not applicable | Supported |
| FastAPI, Django, Flask | Not applicable | Supported |
| Go modules | Not applicable | Supported |
| Plain static HTML | Supported | Not applicable |
| Runnable Docker/OCI HTTP images | Not applicable | Supported |
Not yet source-built: Rust, Ruby / Rails, Elixir / Phoenix, Java / Spring, Deno, PHP / Laravel, .NET. These return a clean unsupported-stack error as source projects. Deploy them today with a runnable Docker/OCI image, or request source-build support.
Set up shell completions for the CLI:
varitykit completions [OPTIONS]| Option | Description |
|---|---|
--shell | Shell type: bash, zsh, or fish (auto-detected if omitted) |
--install | Install completions to your shell config file |