I’m Badii Boutar. I build online stores for clients, and I built The Merchant Engine, one of the nine platforms on this page. So read my take on mine with that in mind. For the other eight, I go by their own pages and repositories, not my memory, and I read all of them on 29 October 2026.
Two limits of mine, up front, because they rule it out for a lot of shops: Stripe is its only card provider so far, and it has no plugin system.
I don’t think one of these is the best. They are built for different people. The useful question is which one fits the developers you have, the server you can run, and the way your customers pay.
What “free” costs you
All nine are free to download. None of them is free to run. You pay for a server, a database, backups and someone’s time to keep it all updated. With the PHP platforms you will often pay for extensions and themes too, because their marketplaces sell them.
The licenses also differ more than people expect. They fall into three groups:
- Permissive. MIT and BSD let you change the code and keep your changes to yourself. Sylius, Saleor’s core and mine are here.
- Copyleft. The GPL and the OSL come with conditions when you pass the code on to others, and the OSL also counts offering it to people over a network. WooCommerce, PrestaShop, Magento Open Source and EverShop are here, and so is Vendure by default.
- Open core. The main code is open, but some features or a second license are sold. Medusa and Vendure work like this.
I’m not a lawyer. If you plan to sell a changed copy of any of these to other people, read its license, or pay someone who reads licenses for a living.
WooCommerce, if you already run WordPress
WooCommerce is a WordPress plugin, and that is the main reason to choose it. If the business already has a WordPress site, the shop goes inside it, and whoever edits the blog can learn the products screen quickly.
It is also the largest by far. The WordPress plugin directory lists it at “7+ million” active installations, on version 11.2.1. The server requirements page asks for “PHP version 8.3 or greater (tested up to PHP 8.4)” and MySQL 8.0 or MariaDB 10.6. The plugin is under the GPL, version 3 or later.
Cash on delivery comes with the free plugin. Card providers such as Stripe and PayPal are separate extensions. Selling in two languages usually means another plugin, and WPML is the common one. A WooCommerce shop tends to grow a long list of plugins, and each one is something to update and pay for. My side-by-side notes are on the WooCommerce comparison page.
PrestaShop, if you want a classic shop in PHP
PrestaShop is a shop on its own, with a back office and a theme for the front. It does not sit inside a CMS. Its license file says “PrestaShop Core is licensed under OSL-3.0 and PrestaShop Modules are licensed under AFL-3.0.”
Version 9.2.0 came out on 30 September 2026. The system requirements page says “We recommend PHP 8.5” and asks for “MySQL 5.7 minimum or MariaDB 10.2 minimum”. You unpack the release on a PHP host and run its web installer, the same way PHP shops have been set up for years.
It handles several languages out of the box, and cash on delivery is an official module. If you would rather not run the server, PrestaShop also sells a hosted version. More detail is on the PrestaShop comparison page.
Magento Open Source, if you have a big catalogue and an ops team
Magento is now an Adobe product, and the free edition is Magento Open Source. Its README says it “delivers basic eCommerce capabilities to build a unique online store from the ground up.” It is under OSL-3.0 and AFL-3.0. The latest stable release was 2.4.9, from 12 May 2026.
What sets it apart is how much you have to run. Adobe’s system requirements page, for an on-premises 2.4.9 install, lists PHP 8.5, MariaDB 12.3, OpenSearch 3, RabbitMQ 4.3, Valkey 9 and nginx 1.30, among others. That is a lot of services for a shop with fifty products. It makes more sense for a large catalogue with a team that already runs servers like these.
Sylius, if your developers write Symfony
Sylius is closer to a toolkit than a finished shop. The README calls it “an Open Source eCommerce framework on top of Symfony,” and says it is “completely free and released under the MIT License.” Its composer.json asks for PHP 8.3 or newer, and the latest release was v2.3.2, from 22 October 2026.
Choose it when you have PHP developers who know Symfony and the shop needs custom rules that a ready-made platform would fight. It is a poor fit if nobody on the project writes PHP.
Medusa, Saleor and Vendure, if you want a headless backend
These three give you a commerce API and an admin, and you build or adapt the storefront. Medusa and Vendure are TypeScript. Saleor is Python with a GraphQL API.
The license is where they differ most. Medusa’s license file puts the repository under MIT “Except for the Enterprise Edition materials”, and its enterprise file says “RBAC (role-based access control) and SSO (single sign-on) are Medusa Enterprise Edition features.” Saleor’s core is BSD-3-Clause. Vendure’s license file says “The default Vendure license, without a valid Vendure Commercial License agreement, is the Open-Source GPLv3 license.”
All three ship often. On 29 October 2026 the latest releases were Medusa v2.22.1, Vendure v3.8.1 and Saleor 3.23.45. I compared them in detail, with mine, in Medusa vs Saleor vs Vendure vs The Merchant Engine. The short version: Medusa if you want Stripe today and like assembling modules, Saleor if your team prefers Python and GraphQL, Vendure for complex B2B.
EverShop, if you want TypeScript with the storefront included
EverShop is smaller than the three above, and it is the one closest in shape to mine: the admin and the storefront come in the same install. Its README calls it “a modern, TypeScript-first eCommerce platform built with GraphQL and React.” It needs Node.js 20 or newer, and the README’s Docker install is two commands that end in docker compose up -d.
Stripe, PayPal and cash on delivery are all part of the core, so card payments work without hunting for an extension. It is under GPL-3.0, and the latest release was v2.3.0, from 8 October 2026. The EverShop comparison page has the sources.
The Merchant Engine, if you sell in Arabic and take cash at the door
This is mine. A lot of my client work is for shops in North Africa and the Gulf, which need Arabic next to French or English, cash on delivery, and prices with three decimals for some currencies. I wanted one engine with all of that in it from the first install.
It ships English, French and Arabic, and the storefront switches to right to left for Arabic. Cash on delivery, manual bank transfer and gift cards are the payment methods today. The API is NestJS and Prisma on PostgreSQL and Redis, the admin is Angular, and the storefront is server-rendered with Analog.js. An installer puts all of it on a Linux server. It checks your bucket and your email domain live before it writes anything, then gets the TLS certificates itself. The requirements page asks for two cores, four gigabytes of memory to build, and twenty gigabytes of disk.
It is MIT, all of it, with no paid edition. Version 1.0.0 came out on 27 October 2026, two days before I wrote this, and it is one person’s project. To change it, you fork it and edit the code. Stripe card payment shipped in v1.0.1, and the card payments recipe shows where another provider plugs in. What you get lists every part and every gap.
How I would choose
- You already have a WordPress site: WooCommerce.
- You want a traditional PHP shop with a back office, on ordinary hosting: PrestaShop.
- The catalogue is large and a team already runs search and queue servers: Magento Open Source.
- Your developers know Symfony and the rules are unusual: Sylius.
- You want a headless API and will build the storefront yourself: Medusa, Saleor or Vendure, picked with the comparison post above.
- You want TypeScript, the storefront included, and Stripe in the core: EverShop.
- You sell in Arabic, take cash on delivery, and want the whole store on your own server from one install: The Merchant Engine, if Stripe is the only card provider you need.
If I got a fact about any of these wrong, open an issue and I’ll correct it.