About deployment
This guide explains how to make your Shopify app available to merchants. You'll learn about hosting options and deployment requirements, whether you're building with Shopify React Router or another framework.
Anchor to General requirements for deploymentGeneral requirements for deployment
Before deploying your app:
- Review your app's launch requirements and learn about the launch process
- Test your app functionality in a development environment
- Make sure your local
shopify.app.tomlconfiguration file is accurate
The Shopify React Router template automatically handles key deployment requirements such as authentication, session management, webhook handling, and environment configuration.
Anchor to How it worksHow it works
When you deploy a Shopify app, you're making your code available to merchants. This involves:
- Moving your code from your local development environment to a hosting service
- Connecting your hosted app to Shopify through Shopify CLI or the Dev Dashboard
- Managing app extensions and configurations through app versions
Your hosting service manages the app's runtime environment and handles incoming requests through authenticated connections.
Anchor to Deploying to productionDeploying to production
If you're planning on deploying your app for use in production, then consider creating a separate app. The app might use the same repository and code base that you use for development and testing, but has its own record and configuration in the Dev Dashboard.
When deploying a Shopify app, we need to be able to reliably determine which extensions have been added, updated, and removed from your app. This means that we need to map extension code to our records of your extensions on Shopify.
To achieve this, app extensions are idenitified by extension user identifiers (UIDs) that are set in the shopify.extension.toml file. Extension UIDs are unique, source-defined, and app-scoped, so they can be shared across production, staging, and development apps.
By default, UIDs are automatically added when you create a new extension using shopify app extension generate, or when you run shopify app deploy. UIDs are deterministic based on the extension handle, so they will always be the same for extensions with the same app handle value.
App extensions are all managed with the Shopify CLI. If you want to make any changes to app extensions, you must deploy new versions from the Shopify CLI.
Anchor to Hosting and deployment optionsHosting and deployment options
The following are common providers for hosting your Shopify app:
Anchor to Manual deploymentManual deployment
If you're comfortable with app hosting and deployment, or if you have specific infrastructure requirements, then you can deploy to a preferred hosting service that can run JavaScript apps:
Anchor to App versionsApp versions
After setting up your app configuration or creating app extensions, you can deploy these components together and release a new app version to users.
Anchor to Next stepsNext steps
After you have deployed your app, it's time to review distribution options.