Skip to content

Deploy and Release App Versions

An app version is an immutable snapshot of your app configuration and all of its extensions. One version is active per app. The active version is what every store that installed your app receives.

Use versions to ship changes safely: deploy when you are ready, roll back when something breaks.

How it works

  • youcan app dev syncs your local files to a development session on your dev store. It never changes what other stores see.
  • youcan app deploy creates a version from your local files and releases it to all stores.
  • youcan app release activates a previously created version, including older ones.

Deploy a version

Run this command from your app directory:

sh
youcan app deploy

The CLI uploads only the files that changed, creates the version, and releases it. Pass a message to describe the change:

sh
youcan app deploy -m "add cart upsell block"

Version names

Each version gets a sequential number and a name. When you omit the name, the CLI generates one from the date, for example 2026-08-07-1. Pass --version to set your own:

sh
youcan app deploy --version "summer-launch"

Create without releasing

Pass --no-release to create the version without activating it:

sh
youcan app deploy --no-release

Release it later with youcan app release.

Safety checks

Before it releases, the CLI warns you when:

  • Your app_url points at a dev tunnel. Releasing it would break the live app.
  • A block that exists in the active version is missing or renamed locally. Sellers who placed that block would lose it. See compatibility rules.

Pass --force to skip these prompts.

List versions

sh
youcan app versions

The output shows each version with its number, name, message, and release state. The active version is marked.

Release or roll back

Activate any version by its number or name:

sh
youcan app release --version 3
youcan app release --version "summer-launch"

Releasing an older version rolls the app back. Seller customizations are not affected: block placements and settings survive a rollback as long as the block files still exist in the released version.

Sync your local config

Configuration changes made in the Partners dashboard create versions too. Your local youcan.app.json does not update automatically, and a stale file reverts those changes on your next deploy. Pull the active version's config into your local file:

sh
youcan app config pull

Run it before you deploy when the app configuration may have changed outside your repository.

Deploy from CI

The deploy and release commands accept an access token from the environment, so they run without a browser:

sh
YC_CLI_ACCESS_TOKEN=<token> youcan app deploy -m "$COMMIT_MESSAGE"

When your app directory is a git repository, the CLI records the current commit hash in the version manifest. The partners dashboard shows it on the version details.

Where to get help

If you encounter any issues or have any suggestions, you can open an issue in the YouCan CLI repository.