Open source ecommerce platforms give you the store code, but you host, secure and update the shop yourself, checkout and card handling included. Most are frameworks for developers, so choose by the language your developer already knows, then check the licence, because two of these keep business features outside the open code.
Here's the problem nobody puts on the download page: an open source store is only as good as the person running it. Almost every platform on this list is a framework for developers, not a shop you switch on, so the first question isn't which one has the nicest admin. It's which language your developer writes every day.
That's how these nine are grouped further down. First, the licence each one ships under, because that tells you what you can change, resell and keep private. They're listed in no particular order.
Licence and language for all nine
| Tool | Language and licence | Good for |
|---|---|---|
| Bagisto | PHP (Laravel), MIT | Multi-vendor and B2B stores on Laravel |
| EverShop | Node.js and TypeScript, GPL-3.0 | A TypeScript store with a ready admin dashboard |
| Mage-OS | PHP, OSL-3.0 and others | Self-hosted stores on a community Magento fork |
| Medusa | Node.js, MIT plus enterprise licence | Custom stores, B2B and multi-vendor builds in Node |
| Oscar (django-oscar) | Python (Django), BSD-3-Clause | Custom catalogue logic in a Django project |
| Solidus | Ruby on Rails, BSD-3-Clause | Brands needing a fully customised Rails store |
| Spree Commerce | Ruby on Rails, BSD-3-Clause | Headless and multi-store setups on Rails |
| Vendure | Node.js and GraphQL, GPLv3 open core | Complex B2B selling on a headless framework |
| WooCommerce | PHP (WordPress plugin), GPL-2.0 | Adding a shop to an existing WordPress site |
Three licence families show up here. BSD-3-Clause and MIT are permissive: use, change and keep your changes private. GPL and OSL are copyleft, so changes you distribute carry the same licence. And two are open core, meaning some features sit outside the free code.
Open core, and the checkout you'll be guarding
Medusa's licence file says the repository is MIT, except for Enterprise Edition materials, which fall under a separate enterprise licence. Vendure is GPLv3 as a Community Edition, with a separate commercial licence and plans that add B2B features such as company accounts, quotes and approvals. Its README also says building against its API doesn't put your storefront under GPLv3, which matters if you want your shop front kept private.
The bigger issue is the work. When you self-host a store, you're the one hosting it, securing it and updating it, and that includes the checkout page and anything that touches card details. A hosted platform carries much of that for you. Here, it sits with you and your developer. Of the nine, the WordPress plugin and the Laravel platform come nearest to a ready-made store; the rest expect code before you take an order.
The nine platforms, in no particular order
Bagisto
Best for: Laravel teams building multi-vendor, multi-tenant or B2B stores from one codebase, as the vendor pitches it, with a hosted option on offer too.
EverShop
Best for: TypeScript developers wanting products, orders, coupons and customers managed in one admin dashboard, on a store the vendor says is built for customising.
Mage-OS
Best for: Merchants and agencies already on Magento code who'd rather run a community-owned distribution, with a published migration guide. It isn't the Adobe product.
Medusa
Best for: Node.js teams building custom stores or B2B selling with an admin dashboard included, and a hosted cloud version if you'd rather not run servers.
Oscar (django-oscar)
Best for: Python shops on Django that need to reshape catalogue and availability logic, which the documentation says you can customise almost everywhere.
Solidus
Best for: Brands with Rails developers who want a fully extensible architecture they can reshape, according to the project's own page.
Spree Commerce
Best for: Rails teams wanting a REST API for headless stores, multi-vendor selling or several storefronts run from one platform.
Vendure
Best for: Headless B2B builds on Node.js and GraphQL, where company accounts, quotes and approvals come from its commercial plans rather than the open framework (per its README).
WooCommerce
Best for: WordPress site owners who want products, a cart and checkout added through a plugin, described by its makers as an open source commerce solution.
Matched to the language your developer writes
PHP
WooCommerce, Bagisto and Mage-OS all run on PHP. The first adds a shop to a WordPress site, the second is a Laravel application, and the third is a community-run distribution of the Magento codebase, separate from Adobe's commercial product. If you're weighing the plugin route, our guide to WordPress themes for an online store covers the look of the shop.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
Node.js and TypeScript
EverShop is a TypeScript store with an admin dashboard. The two open core frameworks from the section above also live here, both headless, so your developer builds the shop front separately.
Ruby on Rails
Solidus and the other Rails platform here both use BSD-3-Clause. One stresses an architecture built to be reshaped, the other a REST API for headless and multi-store setups, so pick on what your Rails team prefers to extend.
Python and Django
The Django option is a framework for building a custom shop inside a Python project. It makes most sense if your site already runs on Django.
Plain advice for owners who don't code
If you don't have a developer, don't start here. None of these is a drop-in replacement for a hosted store builder, and a self-run checkout is not where you want to learn on the job. If you do have a developer, let them choose the language, then read the licence together, especially if you need B2B features that may sit in a commercial edition.
And plan for the boring parts before launch day: who applies security updates, who watches the server, and who you call when an order fails at midnight.
When a hosted store is the better call
For most small shops, a hosted platform will be faster to launch and easier to keep safe. Our round-up of hosted store platforms and our comparison of a hosted store versus a WordPress shop are good places to weigh that up. Open source wins when you need control over the code, unusual business rules or data on your own servers, and you've got someone to look after it.
Do you make an open source ecommerce platform? Tool makers can ask to be considered for a featured place on this list.
Want your tool on this list? Featured spots and reviews here are paid partnerships. Here's how to partner with me.
Frequently asked questions
Is an open source ecommerce platform free?
The code is free to download, as of Nov 2026, but running a store isn't free of effort. You need hosting, a developer for setup and changes, security updates and someone to keep checkout working.
What does open core mean for an online store?
The main code is open source, but some features, often enterprise or B2B ones, sit under a separate licence. Check what's in the open edition before you plan your store around it.
Who handles payment security on a self-hosted store?
You do, with your developer and your payment provider. The platform gives you the code; hosting, patching and protecting the checkout are your job.
Can I run an open source store without a developer?
A store plugin on a WordPress site is the most approachable route. Most of the others are frameworks that need developer time to build a shop front.
What's a headless ecommerce platform?
It handles products, orders and checkout behind the scenes, while a separate shop front, built by your developer, shows them to customers. It gives design freedom in exchange for more build work.
Does the licence affect my own store code?
It can. Permissive licences such as MIT and BSD let you keep changes private. Copyleft licences can require you to share changes you distribute, so read the licence file or ask your developer.


