Blog
No items found.
9
minutes

Interview of Oliver Juhl - CTO of Medusa

I am pleased to interview Oliver Juhl, CTO and co-founder of Medusa - an open-source headless commerce platform.
Summary
Twitter icon
linkedin icon

Hi Oliver, can you introduce yourself to our community?

I'm Oli, co-founder and CTO of Medusa which I built together with Seb (co-founder and CEO) over the past two-three years. Earlier this year, we were joined by Nicklas (co-founder and COO), who leads operations. Together with our amazing team and community, we are making headless commerce accessible to all.

So, you are the CTO and co-founder of Medusa - can you tell us more about it?

My main areas of work are engineering, product and community.

Together with Seb, I run development cycles using a framework by Michael Seibel which is great for shipping product efficiently. And then I engage a lot with the community through Discord and try to help out and support wherever possible.

What does an “open-source headless commerce engine” mean?

Open-source refers to the fact, that our codebase is publicly available and free to download and use. We open-sourced Medusa in early 2020 because we wanted to give our users the ability to take ownership of their roadmap and stack. The open-source approach allows you to build features when you need them and control the direction of said features since you own the codebase in case you wanna diverge from the core product roadmap.

A headless architecture is a decoupling of the presentation layer and data layer. By detaching the frontend in traditional monolithic systems and constructing the data in a modular and reusable way, you are left with a data layer that can be consumed by any client or service. This separation of concern also enhances the integrity of your data as it no longer becomes necessary to modify and hack your data in order for it to be presented in the desired way.

Finally, commerce engine refers to the fact that our engine is built for developers. Our goal is to allow developers to do more through great tooling and a flexible foundation.

Medusa website with product showcase

How do you compare Medusa to Shopify? What makes Medusa unique?

We are the open-source alternative to Shopify. We provide most of the same standard features that Shopify's backend gives out of the box (e.g. E2E order handling, easy to use admin interface etc.) but with a much better developer experience; giving unlimited customization and extensibility options. In addition, we have aimed to fix some of the regular backend hurdles we know from Shopify like full multi-regional support (local currency, shipment, and payment options) and fully automated exchange + claim handling.

Now, Shopify's strongest value prop is arguably its ease of use. Almost anyone is capable of setting up a shop through their onboarding flow regardless of technical know-how. Medusa does not currently have a hosted solution, so we do not allow for this flow. Though from a developer perspective, deploying Medusa and a storefront can be done with almost no effort similar to creating a shop in Shopify. And this is a testament to how we differentiate. Our engine is built for developers and our goal is to allow them to build amazing full-stack commerce solutions without limitations on features and functionality.

For many years, the headless approach to commerce has been an enterprise exclusivity due to the large number of resources that it required. You would need frontend developers to build your storefront and backend developers to maintain your infrastructure and services.

From the get-go, we've focused on lowering the bar for when you can enter the headless commerce space. We do this by 1) removing the need for a complex infrastructure through a clever plugin architecture. The core engine and all plugins run as part of the same Node.js server which is contrary to how other headless platforms need connectors and translation layers between the commerce engine and third-party services. And 2) we have a very high focus on optimizing the developer experience through strong tooling such as quick-starters, documentation, CLI, reference, etc.

What are the technologies that you are using to build Medusa?

Medusa is written in Node.js with Express. Initially, everything was written in vanilla JavaScript, but we are currently in the process of migrating the entire project to TypeScript to improve the developer experience.

The data layer is built on Postgres with Typeorm as ORM (though for easy onboarding SQLite is also supported). Our event system is powered by Redis.

Medusa uses Awilix for dependency injection, which allows you to use all services across all parts of the system; core, plugins, and your custom project.

Our documentation is a Docusaurus project and API reference is automatically generated from an Open API Specification.

Why did you build this product?

Two years ago, we were an agency building all sorts of applications; ecommerce, integrations, restaurant tech., etc. We had a customer, TEKLA Fabrics, who was running a WooCommerce setup, and they wanted to change to a more scalable platform. The requirements were 1) a custom storefront for them to own their brand identity and the entire user experience, 2) a flexible backend for them to scale with as their business needs grow, and 3) a multi-regional setup allowing them to operate in multiple different markets in multiple different currencies through a single platform.

After researching different solutions in the market it became clear that there was no platform that could cater to the requirements in a way that would be easily maintainable into the future. We evaluated solutions like Shopify, but had often times been in situations where we had to "hack" our way to a feature which made us frustrated and a bit embarrassed about the work we were delivering. In order to overcome this we decided to create a bespoke solution, which we designed to be as flexible as possible so that we would never be in a situation where we couldn't support a customer request in a native way. We shared offices with them for a year giving us the best possibilities for improving and iterating on the product, quickly and efficiently.

Medusa product interface

How many are you in the team, and how many external contributors do you have?

We are 10 in total, 6 in the engineering team, and we have 51 contributors on our core project.

Are you looking for more external contributors? What kind of contributions are you looking for?

We are indeed open for external contributions. At this point, we are trying to increase awareness of our project and headless commerce in general, which is why all contributions are welcome.

Though, we try to engage with contributors that have an interest in commerce. The goal is to identify why and how they use Medusa such that we can continuously improve the product and developer experience to support their growth and use-cases.

What are your plans for Medusa in the next 12 months?

In regards to product, the focus for us right now is to keep improving the core, tooling and developer experience to attract even more great developers into our community. We want to build a community for developers to share ideas and create relationships with each other.

Next year, we've considered launching a hosted solution, such that we can provide optimized infrastructure and automated deployment flows for Medusa projects.

Do you have any advice for other founders trying to build open-source projects?

Community is part of what makes open-source projects powerful, so make sure to allocate resources to content production for and general engagement in your community. Since day one, we've reached out to almost every single one of our community members to ensure, that they are onboarded properly and don't have any blocking issues. Additionally, this has helped us identify community characteristics and provided us with close feedback loops enabling us to build an even better product.

What is your favorite programming language? Why?

I've been using Javascript for almost all of my professional career and I have come to love it. What started out as a very simple (some might say naive) language is now widely adopted, which is manifested in the ability to build almost everything with it; desktop apps, web apps, backend, mobile, etc.

Are you more PostgreSQL or MongoDB? Why?

Funny story. We were using MongoDB in the first version of Medusa, but migrated to PostgreSQL in early 2021 to get more integrity in our data layer. When we began building Medusa our focus was very clearly on picking tools that would allow us to iterate as quickly as possible because we knew that there would be a lot of changes in requirements in the early days. MongoDB is great for that as you don't have to deal with constraints in the same way that you do in relational databases. After some time, however, it became clear that Mongo introduced too many inconsistencies in our data model. Luckily we were at a point where we had a pretty good idea about how the schema should be structured so it felt like the perfect time to move to PostgreSQL and we haven't looked back since.

What are the top 3 tools you love as a developer?

  • VSCode (shortcuts, linting, IntelliSense)
  • Git-based automated deployments
  • Great CLIs

Do you have any favorite cloud service providers? Why?

We've been using Heroku for the past two years due to it's great developer experience and general ease of use. We recently tried to make the move to AWS, but as you know, their console can be quite hard to navigate. For future project, we'll be using Qovery that leverages the great infrastructure from AWS through an easy-to-use interface.

The toughest question of them all: what does Medusa mean for you? Where does it come from? What is the story behind it?

Prior to open-sourcing Medusa, we did not really have a name. But when decided to do it, Kristoffer from TEKLA suggested Medusa, as she was decapitated which is a subtle reference to our software being headless.

Check out Medusa - a headless commerce platform.

Read our previous interview with Quentin - CEO and co-founder of MeiliSearch.

Share on :
Twitter icon
linkedin icon
Ready to rethink the way you do DevOps?
Qovery is a DevOps automation platform that enables organizations to deliver faster and focus on creating great products.
Book a demo

Suggested articles

DevOps
 minutes
Best 10 VMware alternatives: the DevOps guide to escaping the "Broadcom Tax"

Facing VMware price hikes after the Broadcom acquisition? Explore the top 10 alternatives - from Proxmox to Qovery, and discover why leading teams are switching from legacy VMs to modern DevOps automation.

Mélanie Dallé
Senior Marketing Manager
DevOps
DevSecOps
 minutes
Zero-friction DevSecOps: get instant compliance and security in your PaaS pipeline

Shifting security left shouldn't slow you down. Discover how to achieve "Zero-Friction DevSecOps" by automating secrets, compliance, and governance directly within your PaaS pipeline.

Mélanie Dallé
Senior Marketing Manager
DevOps
Observability
Heroku
 minutes
Deploy to EKS, AKS, or GKE without writing a single line of YAML

Stop choosing between Heroku's simplicity and Kubernetes' power. Learn how to deploy to EKS, GKE, or AKS with a PaaS-like experience - zero YAML required, full control retained.

Mélanie Dallé
Senior Marketing Manager
DevOps
Platform Engineering
 minutes
GitOps vs. DevOps: how can they work together?

Is it GitOps or DevOps? Stop choosing between them. Learn how DevOps culture and GitOps workflows work together to automate Kubernetes, eliminate drift, and accelerate software delivery.

Mélanie Dallé
Senior Marketing Manager
DevSecOps
Platform Engineering
Internal Developer Platform
 minutes
Cut tool sprawl: automate your tech stack with a unified platform

Stop letting tool sprawl drain your engineering resources. Discover how unified automation platforms eliminate configuration drift, close security gaps, and accelerate delivery by consolidating your fragmented DevOps stack.

Mélanie Dallé
Senior Marketing Manager
DevOps
Developer Experience
 minutes
Top 10 GitHub actions alternatives: stop optimizing for "price per minute"

GitHub’s new self-hosted fees are a wake-up call. But moving to the "cheapest" runner provider is a strategic error. Discover the top alternatives that optimize for Total Cost of Ownership, not just compute costs.

Mélanie Dallé
Senior Marketing Manager
Product
Observability
5
 minutes
Alerting with guided troubleshooting in Qovery Observe

Get alerted and fix issues with full context. Qovery Observe notifies you when something goes wrong and guides you straight to the metrics and signals that explain why, all in one place.

Alessandro Carrano
Head of Product
DevOps
Developer Experience
 minutes
Top 10 Terraform cloud alternatives: the DevOps guide to escaping "State File Nightmares"

Tired of rising licensing costs and complex state management? Discover the top 10 alternatives to modernize your Infrastructure as Code, empower developers, and regain control of your cloud spend.

Mélanie Dallé
Senior Marketing Manager

It’s time to rethink
the way you do DevOps

Turn DevOps into your strategic advantage with Qovery, automating the heavy lifting while you stay in control.