The Catalyst CLI and Native Hosting are currently in closed alpha. There may be breaking changes as we finalize the API. To express interest in gaining access, fill out the Native Hosting Closed Alpha Interest Form.
BigCommerce provides hosting for your Catalyst projects, allowing you to fully deploy your Catalyst storefront without having to depend on an external hosting provider.
To get started using the Catalyst CLI to deploy your Catalyst project, refer to the Getting Started docs.
To understand BigCommerce’s Native Hosting for Catalyst, here are a few concepts you need to know.
A project is the top-level infrastructure container for your application. You create a project once, then use it as the target for future deployments of that storefront.
A deployment is a specific version of your project that has been built and released. Each deployment reflects the state of the code at a point in time (when it was built and successfully deployed).
OpenNext is an open source project that strives to support Next.js being hosted across different platforms while maintaining feature parity with Vercel. OpenNext provides adapters for deploying to different hosting providers like Cloudflare, Netlify, AWS, etc. For deploying to BigCommerce’s hosting infrastructure, you will need to install the OpenNext Cloudflare adapter in your repository as defined in the Installation section below.
See the OpenNext Cloudflare documentation for more details.
The Catalyst CLI supports two ways to authenticate, depending on where it’s running:
catalyst auth login to authenticate via your browser using OAuth. After logging in, your store hash and access token are stored locally in .bigcommerce/project.json for use by other CLI commands. Use catalyst auth logout to remove stored credentials, and catalyst auth whoami to verify your current session.--store-hash, --access-token), environment variables (CATALYST_STORE_HASH, CATALYST_ACCESS_TOKEN), or an env file. See the Configuration section below for the full priority order.See the CLI Reference for full details on the auth commands.
The Catalyst CLI depends on several configuration variables:
CATALYST_STORE_HASH - the hash of your Catalyst storeCATALYST_PROJECT_UUID - the unique identifier for the BigCommerce infrastructure projectCATALYST_FRAMEWORK - the framework to target (nextjs | catalyst) to run when building and deployingCATALYST_ACCESS_TOKEN - the Access Token that has modify permissions on Infrastructure Projects and Infrastructure Deployments as well as read-only permissions on Infrastructure LogsCATALYST_TELEMETRY_DISABLED - whether or not telemetry is disabledWhen looking for configuration variables, the Catalyst CLI will search in the following places in order of priority:
Individual parameter flags — Manually pass individual configuration parameters in the CLI command. For example:
Environment variable file flag — Pass the relative path to an environment variable file to load variables from. For example:
process.env — Environment variables you have already set. They may be applied through your hosting platform, a UI, etc. (e.g., setting secret credentials in GitHub Actions).
.bigcommerce/project.json — The local configuration file that is generated after creating or linking a project that includes your store hash, project uuid, access token, etc.
project.json Configuration FileThe configuration for the BigCommerce infrastructure project that your repository is connected to is defined in the .bigcommerce/project.json file. The configuration file is generated when running the link command to create a new project or connect to an existing one.
The configuration file contains the following properties:
projectUuid - the unique identifier of the connected BigCommerce projectstoreHash - the hash of the BigCommerce store associated with the accessTokenframework (catalyst | nextjs) - the framework to target when buildingaccessToken - the Access Token that has modify permissions on Infrastructure Projects and Infrastructure Deployments as well as read-only permissions on Infrastructure LogsAs described above, the values in the project.json file have the lowest priority and will be used if none of the other options have been used.
You can remove the .bigcommerce/ folder to reset your project’s configuration, but this action will require re-running the pnpm catalyst create or pnpm catalyst link command to re-connect to your project.