Prerequisites for New Projects
In this guide, learn about the prerequisites for your Medusa application and storefront before deploying it to Cloud in a new project.
Alternatively, you can create a project from a starter, as explained in the Create Projects guide.
Who is this guide for?#
This guide is intended for developers and teams deploying their local Medusa applications to Cloud.
You'll learn what setup steps are necessary for:
- Deploying a Medusa application (server and admin dashboard) only;
- Or deploying a Medusa application along with a storefront.
Prerequisites for Medusa Application#
This section covers the prerequisites for deploying your Medusa application (server and admin dashboard) to Cloud.
If you're also deploying a storefront with your backend, check the next section for additional prerequisites.
Supported Node.js Versions#
Medusa supports the Node.js LTS of the following major versions:
- 20.x (default)
- 22.x
- 24.x
- 25.x
Specifying Node.js Version
You can override the default Node.js version for your Medusa application by adding an engines field in your package.json file:
Medusa will satisfy this version by the following priority:
- Find the minimum secure version that matches the range specified in the
enginesfield. For example, if yourpackage.jsonspecifies>=21.0.0, Medusa will use Node.js v22.x since v21.x is no longer supported. - If Medusa can't find the minimum secure version that matches the range, it will use the minimum version that satisfies the range, even if it's not an LTS version.
- If no
enginesfield is specified, Medusa will use the default Node.js version (20.x).
Configurations Managed in Cloud#
Your existing Medusa application (server and admin dashboard) doesn't need specific configurations to be deployed to Cloud. Medusa automatically:
- Creates the necessary server and worker instances.
- Scales your Medusa application's resources based on the traffic it receives.
- Sets up and configures production resources and modules for your Medusa application:
Make sure to remove any of these modules from your medusa-config.ts file unless you want to use custom options for them. In that case, you must manually set up and manage those resources externally and configure them in your Medusa application.
medusa-config.ts file as well.projectConfig.databaseUrl, projectConfig.databaseDriverOptions, or projectConfig.redisUrl in your medusa-config.ts when deploying to Cloud. Cloud automatically manages the database connection, SSL configuration, connection pooling, and Redis provisioning. Setting these options manually may cause deployment or database migration failures.Prerequisites for Medusa Application with Storefront#
This section covers the prerequisites for deploying your Medusa application (server and admin dashboard) along with a storefront to Cloud.
Make sure to follow these steps in addition to the ones mentioned in the previous section.
Monorepo Setup#
To deploy your Medusa application along with a storefront, both projects must be set up in a monorepo structure. If you've created your Medusa application after v2.14.0, it's already set up in a monorepo structure.
To create a monorepo for projects prior to v2.14.0, you need:
- Package manager: Cloud supports
npm,yarn(v1, v3, and v4), andpnpmas package managers. - Monorepo tool: You can use turbo or nx to manage your monorepo.
You can structure your monorepo as you see fit. You'll be required to specify the paths to your Medusa application and storefront during the project creation process on Cloud.

Storefront Supported Node.js Versions#
Medusa uses Node.js v24.x (LTS) to build storefronts. You can't override this version.
So, ensure that your storefront is compatible with Node.js v24.x.
package.json has an engines.node field that restricts the Node.js version to a range that excludes v24.x (for example, "22.x"), the build will fail with a version incompatibility error. Update the field to accept v24.x, for example:{ "engines": { "node": ">=22.12.0" } } Build Scripts#
In a monorepo, Medusa doesn't run the build script of your root package.json file. Instead, it builds your Medusa application and your storefront separately, each targeting only its own package.
So, instead of a root build script, you need:
- A
buildscript in your Medusa application'spackage.jsonfile that runs themedusa buildcommand. - A
buildscript in your storefront'spackage.jsonfile that runs the build command, such asnext build.
Medusa only builds the target package and the workspace packages it depends on. The other packages of your monorepo don't enter the build process. Learn more about the build process in the Deployments guide.
Root Files Available During the Build (Turborepo)
If you're using turbo, Medusa prunes your monorepo down to the package it's building before installing dependencies. As a result, the build only has access to the following files from the root of your monorepo:
package.json- The lockfile
pnpm-workspace.yamlturbo.json.gitignore.npmrc
Medusa doesn't copy any other root file into the build, along with the packages that the target package doesn't depend on. For example, if a workspace package's tsconfig.json file extends a shared tsconfig.base.json file at the root, the build fails with the following error, even though the build succeeds locally:
To fix this, move the shared file into a workspace package, then add that package as a dependency of your Medusa application or storefront. Medusa then includes the file in the build, since it builds the target package along with the workspace packages it depends on.
This also applies to files that your Medusa application needs at runtime, such as JSON files or fonts. Keep them within your Medusa application, then copy them to the .medusa/server directory as part of your build script. Learn more in the Built Assets documentation.
If you're using nx instead of turbo, Medusa doesn't prune your monorepo, so all root files are available during the build.
Prerequisites for Yarn Workspaces#
If you're using yarn as your package manager, create the .yarnrc.yml file in the root of your monorepo with the following content:
You set the following configurations:
nodeLinker: node-modules: Configures Yarn to install dependencies using the traditionalnode_modulesstructure, which is required for Medusa applications.nmHoistingLimits: workspaces: Ensures that dependencies are hoisted only to the workspace level, preventing potential conflicts between packages in the monorepo.
Prerequisites for NPM Workspaces#
If you're using npm as your package manager with Turbo, you must add the packageManager field to your root package.json:
Replace 10.9.2 with your installed npm version (run npm --version to check). Turborepo requires this field when pruning with NPM workspaces. Without it, the build will fail with a Missing 'packageManager' field error.
If you're also using the Next.js Starter Storefront as your storefront, add the following override in the storefront's package.json:
This ensures the @medusajs/icons package uses compatible versions of react and react-dom with the Next.js Starter Storefront.
Also, add the following override in your monorepo's root package.json:
This ensures that all packages in your monorepo use compatible versions of react and react-dom.
Supported Storefront Frameworks#
Cloud currently supports deploying storefronts built with the following frameworks:
- Next.js v15. v16 is also supported if you're not using a proxy.
- SvelteKit v2.40.0+
- Tanstack Start v1.132.0+ (React and Solid)
If you're using a different framework for your storefront, contact support to request it.
Additional Storefront Considerations#
When deploying your storefront to Cloud, there are additional considerations to keep in mind related to the build process, environment variables, and custom domains.
Refer to the Storefront guide for more details on these considerations.
Next Steps#
Now that you know the prerequisites for deploying your Medusa application and storefront to Cloud, you can create your project.
Refer to the Project guide to learn how to create a new project on Cloud.