June 25, 2020
There are tons of free or inexpensive eCommerce platforms available. The likes of Shopify or WooCommerce seemingly have it all and don’t require any development effort to be set up. But open-source eCommerce platforms are — and have been — getting traction. And here’s why:
Once you decide that open source is the way to go, another decision awaits you. Which platform should you choose?
We’ve done the homework. We’ve reviewed the most popular platforms built with Ruby on Rails, Node.js, and Python. Why didn’t we consider PHP-based platforms like Magento? Because we’re much closer with Ruby, Node, and Python so we felt we could share more value when reviewing eCommerce platforms based on these technologies.
Long story short: we think that Saleor, Spree, and expressCart are the best choices. Let’s take a look at why.
At first glance, Reaction looks mature and well maintained. It has extensive documentation and seems to be highly customizable. For example, the tutorial for customizing the frontend is very neatly prepared. The backend gets an equally extensive look, and it seems that we’d be able to modify the platform with ease. It also comes with a lot of advanced features, including:
Unfortunately, there’s a big “but.”
Given a deep dive, it turns out that the documentation does not match the codebase. When importing a product base and deploying the platform on Heroku, some problems show up that are not explained properly by the documentation. To solve them, we needed to fiddle with the code itself, which means higher implementation costs.
As of June 2020, we do not recommend using this platform, as it requires significant investment in development. The platform does not work out of the box, requires some development effort, and has higher hosting costs (microservices) than e.g. Express-cart.
Reaction has been acquired by Mailchimp so it’s quite possible that all the major problems will be fixed in the future.
Who is it for: Reaction can be considered by tech-savvy users for building medium size online stores with advanced functionalities.
Who is it not for: People who get frustrated by the need to perform in-code investigations before they complete a primary goal.
ExpressCart is a fully functional shopping cart built in Node.js (Express, MongoDB) with built-in popular payment providers (Stripe, PayPal, Blockonomics, Authorize.net, Adyen, PayWay, Instore).
Its relative technological simplicity makes it inexpensive and easy to set up. It comes with a ready-made frontend that uses templates, adding to the ease of implementation.
However, in this case, simplicity means inflexibility. The expressCart comes equipped with only basic functionalities, and although we can add custom styling to the template, any changes in appearance will require significant investment.
Who is it for: expressCart is perfect for setting up small and basic online stores with low development and hosting budgets.
Who is it not for: People who want to implement their own vision.
Vendure official demo.
Vendure is a headless GraphQL eCommerce framework built on Node.js with Nest & TypeScript, with a focus on developer productivity and ease of customization.
It’s a pretty simple and straightforward eCommerce platform in an early stage of development. The setup is fast and failproof and the integrations are easy to implement (that also means extra features). That being said, you need to have a frontend to strap it into the Vendure (you can use the Vendure Storefront).
Some of the features that are out-of-the-box:
Who is it for: since the platform is in it’s early stage, some major changes may come our way in our future. Currently, Vendure will be perfect for small online stores that need to be set up quickly with the possibility of transitioning to another platform.
Who is it not for: People who want to have a feature-rich platform, based on an established open-source project with a large community.
Spree Commerce official demo.
The official Spree Commerce description states:
Spree Commerce is an open-source eCommerce platform for Rails 6 with a mobile-first UX, an optional PWA frontend, REST API, GraphQL, numerous official extensions and an ecosystem of third-party integrations.
And our research confirms that. Multiple extensions include Spree Payment Gateway, which integrates with Stripe, Apple Pay, Braintree, Authorize.net, and many others. The list of integrations (Google Suite, MailChimp, DHL, UPS, Hotjar, and Hubspot, to name a few) is even more extensive, making Spree quite an elastic platform.
It’s also packed with features like a built-in CMS engine (and the possibility of integrating with others), mobile-friendliness, marketing and analytics tools, a product suggestion engine, order management, personalization, and many more.
The out-of-the-box admin panel grants access to such useful things as:
After the setup, the main site lists all products which can be categorized and split by brands. Clicking a product reveals its description, the possibility to add this product to a cart, and a list of similar products. Spree also comes with a great checkout funnel. After we add a product to the cart we are automatically redirected to the checkout page.
All in all, Spree is easy to set up and extend. There are two aspects to it though that might be considered downsides.
First, the frontend. Spree is shipped with a ready-made frontend that works well and you can easily customize some minor parts of the storefront. Heavy UI modifications, however, require more development effort.
The second downside is that Spree lacks a dedicated product importer, so everything has to be done by hand. Transferring an already existing eCommerce will require additional development effort.
Who is it for: Spree is a perfect fit for anyone who wants to build a flexible, feature-rich, mobile-ready e-commerce website from the ground up, and can make do with the frontend proposed by Spree Commerce developers (or want to invest in UI changes).
Who is it not for: Those who already have an eCommerce platform with a lot of items, and do not wish to change how it looks.
Saleor official demo.
Saleor is a rapidly-growing open source e-commerce platform that has served high-volume companies from branches like publishing and apparel since 2012. Based on Python and Django, the latest major update introduces a modular front end powered by a GraphQL API and written with React and TypeScript.
We managed to set up the localhost API and a Heroku instance in 2 hours, which is lightning fast. The platform itself is very well developed and maintained, with quite an impressive community, which is very important in terms of future-proofing your eCommerce and gaining support when modifying it.
Saleor comes with a built-in single-page dashboard, which is quite intuitive and allows the admin to manage people (assign, manage staff), products (add, change, display, delete), and processes (payments, shipping, taxes).
Some of the most interesting features that Saleor brings:
Who is it for: Saleor is perfect for quickly setting up an intuitive eCommerce platform that can be relatively easily molded into a new shape with new functionalities. It’s stable and future-proof which makes it the best fit for long-term use.
Who is it not for: People who prefer PHP-based open-source eCommerce platforms.
Depending on your needs, we recommend considering expressCart, Spree, or Saleor.
ExpressCart is quick to set up and inexpensive in upkeep, making it perfect for small shops that will not overwhelm the users with features.
Spree is perfect for new shops that want to have advanced features, mobile-readiness, and the User Interface ready out-of-the-box.
And Saleor is for everyone who wishes to build an eCommerce platform that caters to the needs of both admins and customers. Saleor’s extensibility and relatively big community make it a true (and flexible) eCommerce powerhouse.
If you want to be up-to-date with the posts in this series, simply sign up for our newsletter.
Also, here’s a list of all posts we’ve written on this topic so far: