Skip to content

Deploy an App Without DevOps on Varity

Varity Team Core Contributors Updated June 2026

Deploy your application to Varity from the Dashboard, CLI, or MCP server.

From the Dashboard, choose a GitHub repository, add environment variables, review the fixed monthly price for the reserved hardware, and deploy.

Varity accepts three kinds of input, from the CLI, the Developer Portal, or the MCP server in your AI coding tool:

InputHowBest for
Your project / GitHub repovaritykit app deploy (this page)Apps in a supported framework with automatic detection and builds
A Docker imagevaritykit app deploy --image <ref>. See Deploy a Docker ImageAnything already containerized, any language
A templateThe portal gallery. See agent templatesOne-click AI agent and tool deployments

The rest of this page covers the first path: deploying your own project.

  1. Install the CLI

    Terminal window
    pipx install varitykit
  2. Build your project

    Terminal window
    npm run build
  3. Deploy

    Terminal window
    varitykit app deploy
  4. Your app is live!

    Varity will output your live URL:

    ✓ Deployed successfully!
    ✓ URL: https://your-app.varity.app
    ✓ Build time: 1m 23s
    ✓ Status: Live

When you run varitykit app deploy:

  1. Detects your framework: automatically identifies Next.js, React, Vue, etc.
  2. Builds your app: runs your build command (npm run build)
  3. Uploads your files: stores them securely
  4. Makes your app live: generates a public URL
  5. Returns a live URL: static apps use https://varity.app/<name>/; dynamic apps use https://<name>.varity.app/

All of this happens automatically.

Choose the right hosting for your application type:

Static Sites

Best for: React, Vue, Next.js static exports, documentation, landing pages

Features:

  • Global CDN distribution
  • Instant cache invalidation
  • Automatic SSL certificates
  • Fixed profile pricing
Terminal window
varitykit app deploy

Dynamic Apps

Best for: Full-stack apps, APIs, real-time applications, databases

Features:

  • Container-based compute
  • Managed container hosting
  • Auto-wired database support
  • Flat monthly pricing
Terminal window
varitykit app deploy --hosting dynamic

Credentials are managed automatically by Varity. Optionally set your app ID:

.env.local
# Optional: Your Varity App ID
NEXT_PUBLIC_VARITY_APP_ID=<your-app-id>

See Environment Variables for the complete list and Managed Credentials for how credential auto-provision works.

Always test your build works locally:

Terminal window
npm run build
npm run start

Visit http://localhost:3000 and verify everything works.

View your deployment history:

Terminal window
varitykit app list

Output:

ID Status URL Deployed
deploy-1737491000 live https://your-app.varity.app 2 hours ago
deploy-1737484800 archived https://your-app-v2.varity.app 1 day ago
deploy-1737398400 archived https://your-app-v1.varity.app 2 days ago

To recover after a bad deploy, redeploy a known-good version of your app. Check out the working commit and run varitykit app deploy again under the same --name. The deployment at that URL is replaced with the version you just built.

Check the details of a specific deployment:

Terminal window
varitykit app info deploy-1737491000

View overall deployment status:

Terminal window
varitykit app status

Every deployment gets a public URL. URL format depends on hosting type:

Terminal window
varitykit app deploy --name my-app
# Static hosting → https://varity.app/my-app/
# Dynamic hosting → https://my-app.varity.app/

See App URLs & Subdomains for naming rules and the current status of bring-your-own domains.

  1. Verify your build works locally:

    Terminal window
    npm run build
  2. Check the build output directory exists:

    • Next.js: .next/ or out/
    • React: dist/ or build/
    • Vue: dist/

Credentials are auto-provided. If you see this error, run varitykit doctor to check your setup.

Check your internet connection:

Terminal window
varitykit doctor

If issues persist, you can preview what would deploy without deploying:

Terminal window
varitykit app deploy --dry-run
OptionDefaultDescription
--hostingautoHosting type: auto, static, or dynamic (auto picks based on your project)
--namefrom package.jsonApp name (and URL) for this deployment
--path.Project directory
--modeautoOverride the detected build/run mode
--skip-buildoffSkip the build step (deploy a pre-built output)
--repo-urlNoneDeploy directly from a GitHub repo URL instead of a local path
--dry-runoffSimulate the deploy: show what would deploy without deploying (not supported with --image)

Instead of a project directory, you can deploy an existing image. See Deploy a Docker Image for the full flow.

OptionDefaultDescription
--imageNoneImage reference to deploy as-is (e.g. ghcr.io/acme/api:1.4.2)
--port80Container port your app listens on
--image-registry / --image-username / --image-passwordNoneCredentials for a private registry