Open source ecommerce - How Medusa compares to Shopify
Tags: javascript, webdev, opensource, programming
Published: 2022-03-17 12:14:45

Open source ecommerce is becoming increasingly popular in the ecommerce space. In this article, we will shed some light on how an open source ecommerce platform like [Medusa](https://www.medusajs.com) compares to a proprietary alternative like [Shopify](https://www.shopify.com).

Shopify is one of the most popular platforms worldwide to create ecommerce stores. Its simplicity attracts a lot of merchants and businesses who don’t want to dabble in the technical details of creating an ecommerce store and want to start selling their products quickly.

On the other hand, [Medusa](https://github.com/medusajs/medusa) is an open source headless commerce platform built with an abstraction-based architecture that makes it more extendible and easier to customize. Medusa is built for developers and is focused on providing a great developer experience with its architecture, ease of setup, supporting community, and strong documentation. Although less than a year old, Medusa is already used in production for merchants selling globally.

![Medusa vs Shopify](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m0sil7c0mlsa89iyzewo.jpg)

## Overall logic

As time pass and as businesses grow they discover that Shopify’s approach to making your store setup simple comes at a price. They start facing complications related to expanding their market, adding integrations, and customizing their store to their needs, among other issues. This locks-in developers and lead them to build hacky workarounds to achieve the business needs.

Medusa, on the other hand, is built with both simplicity and extendibility in mind. Not only is it easy to set up and start selling, but it’s also easily customizable based on your business need. So, even if your business grows with time and you’ll need to add new integrations, customize the storefront, or make any other aspect your own, you can do it with Medusa hassle-free.

It should be noted as well that Medusa needs to be set up and managed by developers, given that it’ll be an easy task for them. So, if your business requires a solution with no developers to manage and maintain the store, then Medusa wouldn’t be a great fit in this case.

## Architecture

### **Commerce backend**

Medusa is in essence an open source headless commerce backend. Medusa has a similar set of core ecommerce features as Shopify. Those include payment and checkout flow, cart-functionality, fulfillment flow, shipping options, customer profiles (e.g. for customer-specific pricing), advanced promotions (e.g. discounts and giftcards), product and stock management etc. Moreover, all settings related to payment and shipping providers are region-based along with product pricing which can be specified per region. For a full feature list, check out [the GitHub repository](https://github.com/medusajs/medusa#features).

Perhaps one of the most important reasons to choose Medusa is its abstraction-based architecture built for easy customization and maintainability. Medusa allows you to customize and compose your store specifically to suit each individual use case. Its abstraction layers and open-source nature enable developers to pick up Medusa and change around the core set up to fit their use case or build directly upon Medusa’s APIs to extend functionalities.

In Shopify’s case, most of its features and pros rely in its simplicity. Shopify is a feature-rich platform that comes with a lot of out-of-the-box features that you can use in your store. it’s also easy to navigate for people with no-technical knowledge, allowing them to be in full control of their store and make any high-level changes to their store.

The simplicity bound in the monolithic architecture likewise becomes the Shopify’s weakness. It is great to get started with, but more rigid to make changes to. For instance, as the backend is proprietary it is difficult to make large changes or revert opinionated implementations when beneficial. When changes need to be made in a monolithic system it will often be accomplished through more “hacky” workarounds since the nature of the architecture is not meant to be changed.

### Backend admin panel

In a similar vein as Shopify, Medusa’s open source ecommerce platform comes with an out-of-the-box admin panel that is easy to use for non-technical store managers. However, there are some differences in features. For instance, Medusa provides built-in flows for claims, returns, and exchange flows allowing end-users to self-serve for this part. On the other hand, Shopify provides built-in support of sales analytics and marketing which Medusa does not.

Overall, Shopify has a more feature-stuffed admin panel making it more convenient to get started with. However, Medusa’s strength again comes in its extendibility, as such the admin panel has no structural limits. 

The core idea of the Medusa Admin panel is to give a lean solution that is easy to administer. For adjacent services such as sales, analytics, and marketing it is encouraged that you build it custom yourself or leverage integrations to outside solutions specialized in these services. Because of the composable architecture behind the Medusa engine, this functionality is more easily added and customized in the Medusa admin panel.

### Frontend

As Shopify is easy to set up with their themed solutions, it has a great starter package with an abundance of themes that can be used. There are options for free templates that can be tweaked slightly to one’s liking. They also offer an option for merchants to pay for more advanced themes which can lead to some extra personalization for the storefront. 

However, due to Shopify’s monolithic nature developers are limited in terms of adding custom functionalities or completely customizing the storefront. Therefore, Shopify provides another option: Shopify plus (starting at 2,000$/month). It permits developers to go headless through their Hydrogen setup where developing custom storefronts is possible. 

As Shopify was originally built with a monolithic setup, their plugins are devised in a way to facilitate both the frontend and the backend. When moving from a monolithic to a headless system with Shopify there is an inclined risk of breaking these plugins. 

Medusa is built as an open source ecommerce headless setup. So, since the frontend and the backend are decoupled, the storefront functionality and design can be customized without interfering with the backend. This also permits the developer to construct with any frontend framework of their choice. 

There are 2 available storefronts you can use with your Medusa server, one created using [Next.js](https://nextjs.org) and one using [Gatsby](https://www.gatsbyjs.com). You can also create your own storefront using any framework of your choice by interacting with Medusa’s REST APIs. 

Since changes can be made to the frontend without disrupting the backend, your frontend development will be quicker. This also allows for a higher degree of personalization and flexibility when designing the storefront.

### Payment

A clear benefit of using Medusa is the flexibility in choosing your payment solutions. Off the bat, Medusa integrates with several payment systems such as Stripe, Klarna, Adyen, and PayPal. Since Medusa is open source, you can also easily extend its payment API to integrate with any payment solution of your preference. 

Shopify Payments is the main payment solution that is available through Shopify. They restrict access to other third-party payment solutions by charging merchants transaction fees when using other parties. 

Depending on the specific Shopify plan, shop owners are charged a fee between 0.5% and 2% when using third-party payment gateways. Currently, Shopify Payments is only available in [17 countries/territories](https://www.stylefactoryproductions.com/blog/shopify-review). Users that are not selling from these countries have to incur these extra transactions costs.

### Fulfillment, Analytics, and Other Integrations

Shopify provides users with an app store containing over 7,000 different third-party applications that users can integrate with their store. This gives merchants the ability to add functionality to their website through the app store. 

However, it also comes with a downside. Often you’ll need to add multiple apps from the app store to implement all the different features you need. This can clutter your store and will make it hard for developers managing a store to maintain and keep track of all the apps. This is especially troublesome knowing that Shopify often [cleans up their store and remove apps](https://community.shopify.com/c/announcements/103-apps-are-no-longer-available-on-shopify-details-and/td-p/1137940), leaving merchants in need to find alternative apps to use. 

On the other hand, Medusa’s architecture is designed to facilitate integrations and custom developments while making sure they are easy to maintain afterwards. It’s possible to add endpoints, services, and event handlers (or subscribers) into Medusa seamlessly. Also, as you have full ownership of the entire tech stack, you are free to mold it and shape it as it fits your use case. You can likewise leverage plugins created by the community as well, for instance [the Medusa extender](https://github.com/adrien2p/medusa-extender) facilitating multi-vendor support.

Medusa also supports a range of third-party integrations out of the box, including CMS ([Contentful](https://www.medusajs.com/post/how-to-connect-medusa-and-contentful) & [Strapi](https://www.medusajs.com/post/open-source-headless-commerce-and-cms)), payment (e.g. [Stripe](https://docs.medusajs.com/add-plugins/stripe/), [Paypal](https://docs.medusajs.com/add-plugins/paypal/)), marketing (e.g. [SendGrid](https://github.com/medusajs/medusa/tree/master/packages/medusa-plugin-sendgrid) and [S3](https://github.com/medusajs/medusa/tree/master/packages/medusa-file-s3)), Search ([Algolia](https://docs.medusajs.com/add-plugins/algolia/) & [Meilisearch](https://www.medusajs.com/post/meilisearch-and-medusa)), Analytics (e.g. [Segment](https://www.medusajs.com/post/segment-medusa)), and many [more](https://github.com/medusajs/medusa/tree/master/packages).

## Conclusion

Both Medusa and Shopify have their perks and make a good choice for different use cases. 

When to choose Shopify:

- Merchants with no-technical knowledge looking to create their ecommerce store.
- Businesses that “just want to get started quickly” with an easy solution to set up
- Businesses that are looking for a simple setup with limited  customizations to it

When to choose Medusa:

- Developers that want full control over the ecommerce platform’s codebase, integrations and cusomizations.
- Businesses that are looking for a scalable platform where they can own the entire user experience and avoid replatforming down the road
- Businesses that were anyway considering building an ecommerce solution from scratch, but prefer a solid starting point.