> This page is for Developer.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.bigcommerce.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.bigcommerce.com/_mcp/server.

# Deploy a Catalyst Storefront

> Deploy Catalyst to Native Hosting, BigCommerce's own hosting infrastructure, or to Vercel, review requirements for other hosts, and configure environment variables and Redirected Checkout for production.

Catalyst is a standard Next.js application, deployable anywhere Next.js runs. BigCommerce documents and tests two deployment paths:

* **[Native Hosting](/developer/docs/storefront/catalyst/deployment/native-hosting/overview) (recommended):** BigCommerce's own hosting infrastructure, deployed entirely through the Catalyst CLI. Currently in closed beta.
* **[Vercel](/developer/docs/storefront/catalyst/deployment/vercel):** a third-party Next.js hosting platform, with a separate Vercel account.

If neither fits your needs, you can deploy to any other provider that meets the [Next.js requirements](#other-hosting-providers) below, following that provider's own Next.js deployment guidance.

## Choose a hosting platform

Native Hosting is the recommended path for new Catalyst storefronts. Choose Vercel if you're waiting on Native Hosting beta access, need a Vercel-specific feature, or already host other projects on Vercel. For a feature-by-feature comparison, see [Choosing a Hosting Platform](/developer/docs/storefront/catalyst/deployment/choosing-a-hosting-platform).

You can create a project that's ready for Native Hosting from the start with `pnpm create @bigcommerce/catalyst@latest --hosting commerce`, or opt in later from an existing project. See [Native Hosting: Getting Started](/developer/docs/storefront/catalyst/deployment/native-hosting/getting-started).

## Other hosting providers

Any provider you choose must support the following Next.js capabilities that Catalyst relies on:

* **On-demand server rendering.** Catalyst renders storefront routes when they're requested rather than generating them at build time, so the host must run a Next.js server. Static exports aren't supported.
* **[Data Cache](https://nextjs.org/docs/app/building-your-application/caching#data-cache).** Catalyst caches GraphQL Storefront API responses for guest shoppers with time-based revalidation (`next: { revalidate }`) and on-demand revalidation (`revalidateTag`).
* **[Proxy](https://nextjs.org/docs/app/api-reference/file-conventions/proxy)** (`proxy.ts`, which replaced Middleware in Next.js 16). Catalyst's routing, authentication, localization, and UCP handling run in its proxy chain. See [Proxy](/developer/docs/storefront/catalyst/development/middleware).

Consult the Next.js documentation or your hosting provider's documentation for guidance on deploying to your provider of choice.

## Environment variables

Regardless of where or how you deploy your Catalyst application, you'll need an updated set of environment variables. Assuming you've already run your application locally (see [Run locally](/developer/docs/storefront/catalyst/getting-started/one-click-catalyst#run-locally) for One-Click Catalyst projects, or [CLI Installation](/developer/docs/storefront/catalyst/getting-started/cli-installation)), you can reuse most of the environment variables defined in your `.env.local` file.

However, a few environment variables need to be updated. Check the documentation for each one on how to update it:

* [`AUTH_SECRET`](/developer/docs/storefront/catalyst/reference/environment-variables#auth_secret)
* [`BIGCOMMERCE_STOREFRONT_TOKEN`](/developer/docs/storefront/catalyst/reference/environment-variables#bigcommerce_storefront_token)
* [`MAKESWIFT_SITE_API_KEY`](/developer/docs/storefront/catalyst/reference/environment-variables#makeswift_site_api_key)

For the full list, see the [Environment Variables](/developer/docs/storefront/catalyst/reference/environment-variables) reference.

> **Info**
>
> Deploying to Native Hosting also involves a separate set of CLI configuration variables (`CATALYST_*`) that authenticate and configure the CLI itself, distinct from the storefront build variables above. See [Native Hosting: Configuration](/developer/docs/storefront/catalyst/deployment/native-hosting/overview#configuration) for details.

## Redirected Checkout

Catalyst uses Redirected Checkout out of the box. When shoppers are ready to complete a purchase, they're redirected to BigCommerce's hosted checkout.

> **Info**
>
> Redirected Checkout doesn't require a separate Stencil channel. A single Catalyst storefront channel serves both your storefront and checkout.

Here's how it works:

* A channel site's checkout URL determines which URL loads when shoppers are redirected to checkout.
* DNS for the checkout domain can point at the Catalyst channel, for example with a `CNAME` record pointed to `store-{store_hash}-{channel_id}.mybigcommerce.com`.
* When the checkout domain points at the Catalyst channel this way, Stencil serves the checkout, but in the context of the Catalyst channel rather than the default channel (channel `1`).

For example:

* `mystore.com` points at your hosted Catalyst storefront.
* `checkout.mystore.com` is a `CNAME` pointed at BigCommerce on the Catalyst channel.

A channel created through One-Click Catalyst is already set up this way. To set the checkout URL yourself, see [Manually Create Catalyst Channel](/developer/docs/storefront/catalyst/guides/manually-create-catalyst-channel#add-a-checkout-url), or [Checkout Domains](/developer/docs/storefront/catalyst/deployment/native-hosting/checkout-domains) on Native Hosting.

### Launch a single storefront

A single Catalyst storefront doesn't need Multi-Storefront (MSF) enabled. To launch one without MSF:

1. Leave the default channel (channel `1`) in **Prelaunch** status.
2. Create the Catalyst storefront channel with One-Click Catalyst or CLI Installation.
3. Set channel `1` to **Inactive**.
4. Once Catalyst is deployed to your hosting provider, set the channel site's main and checkout URLs as described above, then set the Catalyst channel to **Active**.

This setup uses a single storefront seat for licensing and pricing.