Learn how to properly integrate Strapi with Medusa and make these two systems work for you.

Strapi is the leading open-source headless CMS offering features, like customizable APIs, role-based permissions, multilingual support, etc. It simplifies content management and integrates effortlessly with modern frontend frameworks.
Explore the Strapi documentation for more details.

Medusa is an open-source headless commerce engine that provides all the essential tools to build modern e-commerce platforms. It exposes APIs for product management, orders, checkout, and more, thus allowing you to build custom storefronts with your preferred front-end framework.
By combining Strapi’s CMS capabilities with Medusa’s commerce engine, you create a content-rich, highly customizable e-commerce platform where:
This separation allows:
How the Integration Works
npx create-medusa-app@latestFollow the prompts to generate your Medusa backend and, optionally, the Next.js storefront.
In a separate directory, bootstrap a new Strapi application:
npx create-strapi@latest my-strapi-app
cd my-strapi-app
npm run devCreate your admin account and launch the Strapi admin panel.
Create collection types in Strapi for:
Each content type should include fields that map to Medusa IDs and relationships.
From your Medusa project directory, install the Strapi client:
npm install @strapi/clientNext, create a new directory in your Medusa app:
src/modules/strapiCreate a Strapi Client Loader
This initializes the Strapi client when the Medusa server starts.
Example code snippet:
import { strapi } from "@strapi/client";
export default async function initStrapiClientLoader({ container, options }) {
if (!options?.apiUrl || !options?.apiToken) {
throw new Error("Strapi API URL and token are required");
}
const strapiClient = strapi({
baseURL: options.apiUrl,
auth: options.apiToken,
});
container.register("strapiClient", asValue(strapiClient));
}
You’ll configure the module so Medusa has the Strapi API details (URL, token, locale).
A. From Medusa → Strapi Medusa emits events (e.g., on product creation/update) that you can hook into:
B. From Strapi → Medusa
This two-way sync ensures both systems stay aligned.
Once Strapi and Medusa are synchronized:
The official guide includes a full example using the Medusa Next.js Starter.
For detailed instructions and additional information, refer to the full guide Read the full guide.
Try Strapi Cloud Strapi Cloud is a fully-managed cloud hosting for your Strapi project.
With Strapi Cloud:
Medusa is an open-source headless commerce engine built with Node.js. Like Strapi, it's developer-focused and offers extensive customization. Use Medusa for commerce and Strapi for content.
Both platforms support webhooks and lifecycle hooks. Configure two-way sync to maintain consistency between product data in Medusa and content in Strapi.
Yes, both platforms have plugin ecosystems. Use Medusa plugins for commerce features (payments, fulfillment) and Strapi plugins for content features (SEO, media optimization).
Next.js and Gatsby are popular choices. Build storefronts that consume both Medusa's commerce API and Strapi's content API for comprehensive e-commerce experiences.
The Medusa-Strapi combination offers maximum flexibility for custom requirements. For simpler needs, all-in-one platforms may suffice, but complex projects benefit from specialized tools.