Ruby on Rails for Ecommerce: Solidus Vs. Spree [2022 Update]
Before we even get into comparing Spree and Solidus, one might ask the question: why Ruby on Rails? Well, because it is one of the better solutions available for ecommerce.
It can be confirmed simply by looking at the success story of Shopify, which started initially as a fork of Spree, and has grown to the behemoth that it is today.
Ruby on Rails is also known for its cost efficiency as it is extensible and very fast to prototype with, drastically bringing down time to market and cost for a new project.
Ruby on Rails for ecommerce
Knowing that Ruby on Rails (RoR) is one of the best solutions for a web-based ecommerce project, there are two quality open-source ecommerce projects you can use for your next project – Solidus and Spree Commerce. Both will help you build customized, scalable, and performant products fast. However, there are some critical differences between the two. I'll discuss them in this article and try to compare them unbiasedly.
A quick dive into the Spree and Solidus story
Spree is an open-source ecommerce platform built with Ruby on Rails and launched back in 2007. It quickly became a leading solution with over a million downloads from RubyGems. Solidus was the newer framework that forked from Spree, which meant that a group of developers took the same source code and started an independent project. Naturally, both platforms have a similar codebase and are competing for the same user base.
While Spree was more popular, many software developers were not fans of the solution. The code was considered opinionated and not clean, and often it's difficult to understand how it works. At the beginning of a project, everything seems to be clear. However, with time, when you need to customize the designed flow, it becomes more complex. As a result, most Spree projects lacked the flexibility you need from a modern ecommerce system.
Although the platform is developed by Spree Commerce Inc., you can find bugs that haven't been addressed for a long time by the company's team. Actually, in 2015, after being acquired by First Data Corporation, Spree ended its support of the open-source platform. This was the main reason why a group of Spree contributors decided to branch out and develop a new platform – Solidus.
Eventually, Spree’s maintenance was taken over by Spark Solutions and most recently by Vendo, which is an ecommerce marketplace providing a premium SaaS solution for Spree, quite like Shopify.
Solidus, although not technically a brand new product since it was forked from Spree 2.4, was intended from the start to be a better version of Spree, thanks to being backed by a dedicated and engaged team working on improving its quality and fixing bugs.
Similar to Spree’s open source development being taken over by a different company, Solidus is being looked after by Nebulab.
Spree vs. Solidus
As of writing this article, the latest version of Spree has moved to a headless version, and has dropped support for their built-in storefront, which is now marked as legacy, whereas Solidus still supports the built-in views for the storefront, albeit very basic, while also having a well-documented API to build a custom storefront.
The backend dashboard of both platforms is clean and intuitive. They are built with Ruby on Rails and share a large chunk of the code. But let’s take a look at what makes them different. To do this, I went through the most important aspects of using Spree and Solidus and tried to conclude which solution works better. If they are equally good, I declare them a "draw."
Learning and support – draw
Support and maintenance were the reasons why Solidus forked from Spree. Earlier, one of the main advantages of Solidus was its team having a Slack channel where you can find solutions to your problems. Most of the questions I posted there were answered, which means that the support is quite good.
Now, Spree also has its own Slack channel, a thriving community over 6,000 strong, adding to their existing support from the website, and well-structured documentation which covers almost every problem one might come across when starting off with Spree.
Using Spree, you get most of the support from its website, with documentation that covers every type of issue that you may encounter.
Ruby on Rails – draw
Ruby on Rails emphasizes the use of convention over configuration (CoC). This allows for ease of build for Spree and Solidus developers who are left with fewer decisions to make when writing code, whilst never having to sacrifice on quality or flexibility.
Ruby on Rails is a very popular framework that is already in use in applications all over the web, including some of the world’s biggest ecommerce sites (Shopify, for instance, or check out these top 34 sites built with Ruby on Rails).
Licensing – draw
Spree’s BSD license is one of the least restrictive licenses out there. Indeed, no matter the size of your business, Spree always uses the same open-source software. This means that there is no “enterprise edition” of Spree – so whether you’re classed as an SME or a large multinational corporation, you’re able to use Spree for commercial purposes without ever having to pay a license fee.
As for Solidus, the only license it requires on its GitHub is the one of Spree, so you can use both platforms for free with no limits.
Design – advantage Spree
Both Spree and Solidus offer a number of themes to choose from when it comes to designing your storefront. Each one can be tweaked and altered to suit your business needs.
Alternatively, an entirely custom-made design can be built, with endless extensions and modifications that can be implemented with ease, allowing you to create the exact storefront you want.
While it is easier to find Spree themes, you can also use them with your Solidus project, so there's no difference here.
The new version of Spree comes with out-of-the-box integrations for vuestorefront and Next.js commerce, along with a JS/TS SDK for writing your own JS frontend that Solidus lacks.
Solidus is working on a new starter frontend that gives complete control of the frontend to the Rails developers acting as a good starting point for new Rails developers working with Solidus.
Extensions – advantage Solidus
Store owners will always want to have additional or slightly altered features than initially provided by the default settings of a theme. There are many third parties that have already designed such extensions for Spree, all of which can be modified from the source code that’s available. Any additional extensions can also be developed very quickly using Spree’s sturdy application programming interface (API).
Once again, due to its shorter history, Solidus offers fewer extensions than Spree, but you get higher quality and fewer issues. From our experience, your software engineers will prefer fewer ready-to-use components than an extensive library with errors. With Solidus extensions, you get more control over your code and spend less time and money on fixing compatibility issues.
Scalability – advantage Solidus
Spree is designed with scalability in mind, meaning that as your traffic grows and grows – which it will – your store can grow with it with ease. Since Spree is open source, as the popularity of your online store increases, the Spree platform allows scaling with minimal effort and also cuts out additional hardware and development costs.
Solidus inherits scalability from its predecessor. However, cleaner source code and active maintenance by the community make it a safer choice for the future growth of your business.
The yet-to-be-released Solidus version 3.2 will also support Omnes, a relatively new pub/sub event bus that should enable a cleaner core for Solidus, ensuring better maintainability as the project grows.
Analytics – draw
Monitoring customer behavior will be important for increasing your sales. You can identify what’s working and selling and what’s not, and then take the necessary action to focus on specific areas of your storefront.
Although Spree doesn’t come with built-in analytics, there are plenty of third-party extensions that have been built, which can be integrated very simply and easily into the backend of your online store.
While you don't get an analytics plugin on the solidus.io website (though there are some basic reporting extensions), having full control of the code makes it much easier to implement a Ruby on Rails analytics solution or connect any other solution with an API.
Communication with customers – draw
It’s always of the utmost importance when designing your storefront to integrate a platform on which you and your customers can communicate openly and easily to ensure that they have the very best shopping experience.
Third-party applications have been developed to allow you to integrate such a communication platform for you and your customers to ensure that you can provide such an engaging and indeed useful experience for all of your visitors.
Search – draw
A speedy, fully optimized, and sophisticated search platform is of absolute importance to all sites that operate ecommerce businesses.
The API provided by Spree allows for a variety of specialized high-functioning search platforms to choose from – Spree Maker Search, for instance, which allows customers to filter their searches by the product maker’s name, or Spree Sunspot Search, which is a very robust and flexible full-text search.
Solidus has two search plugins. You can grab ElasticProduct or Searchkick from GitHub.
Adaptability – advantage Solidus
Predicting how your online store will grow is very difficult. What matches your current requirements won’t necessarily meet them a year or two down the line. That's why you need to build adaptive solutions that will allow you to pivot and adjust to future ecommerce trends.
Online stores offer the same core features – shopping cart, search platforms, etc. As the traffic to your site grows, these modules need to be updated to keep your site as optimized and appealing, easy to use, and flexible as possible.
Solidus gives you a better solution to this problem. While you can assemble the web app quickly using existing components with Spree, your developers will likely find it difficult and frustrating to adjust the code as it hasn't been supported for over five years. You get fewer resources with Solidus, but the changes will be easier for your Ruby on Rails engineers.
Payments – advantage Solidus
Choosing the right payment gateway is a crucial decision for every ecommerce owner. There’s a number of popular online payment providers available if you run your store on the Spree or Solidus platforms.
Spree uses the Spree Gateway gem, which supports over a dozen gateways out of the box and can be extended for a whole plethora of gateways thanks to it being a wrapper around the well-maintained gem, Active Merchant. In contrast, Solidus dropped support for Solidus Gateway and archived it in favor of six different payment gateways as of writing this article, and requires developers to work on their own payment gateways.
Here are some of the most popular payment service providers (PSPs) that are used with Spree:
Even though PayPal now seems to have a dedicated army of determined detractors, the fact that it is still loved and trusted by so many users (the site boasts that having a PayPal button on your site will increase sales by 31% on average) means that it still makes sense to offer it as a payment option on your site.
Stripe has emerged as one of the biggest contenders to PayPal’s dominance, and it’s easy to see why. As it’s already integrated with literally thousands of iOS and Android apps, it is in a great position to meet a lot of online merchants’ needs.
Furthermore, Stripe also offers revenue and subscription management and is favored by businesses like Rackspace and Parse, who can take advantage of this. However, what Stripe doesn’t offer is its own shopping cart, but with Spree, this is very easily integrated anyway, so it’s not too much of a problem.
Formerly known as Moneybookers, Skrill is one of the most versatile PSPs on the market, supporting over 100 payment options for customers.
Skrill is available in more than 200 countries and supports 40 different currencies. One of its most innovative features is that it allows you to send text messages to your customers right from your account. It’s also free to start using and is generally considered to offer one of the lowest fees on the PSP market. A Netguru team contributed to Skrill, joining the company’s internal teams in Berlin and Sofia to build the online payment account management app.
You can find nine PSP integrations on the Solidus project website. You get Stripe for Solidus, which is one of our favorite services, and it is being updated constantly. As well as this, you get Pay with Amazon, Klarna, Braintree, and more.
Once again, due to continuing support, we find Solidus slightly better in this field.
Admin Panel – advantage Spree
Spree undoubtedly has the better experience with its admin panel out of the box, which feels smoother and is mobile-friendly. However, this isn’t a deal breaker, since it can be customized manually but that would require time and resources. Spree’s admin dashboard also has more options for search and filtering, which only really shine when the store has a substantial number of products and orders.
[above] Spree mobile panel, [below] Solidus admin panel
Who’s using what?
With both the projects being famous and used widely now, some big names that are using them include:
Spree: KFC, Pack help, MeUndies
Solidus: Floyd home, Trade coffee, Peach Clothing
Considering both are battle tested and well used by companies out there, here’s the final verdict.
Solidus or Spree – which one is better?
Both platforms are very similar, and they share the same core strengths. They allow you to build a customizable and scalable ecommerce site with the Ruby on Rails framework. We've been doing it for years and find both combinations a great choice for an online store.
Although Solidus is quite new, and neither the community nor the resources are large, we find it much more convenient to use a platform that's supported and up to date. That's why for most projects, we'd rather go for Solidus over Spree. It is much easier to comprehend and take control of the open-source code. Finally, there are fewer annoying bugs and discontinued integrations.
The Spree legacy brings a lot of bugs and bad code that hasn't been fixed yet. This problem is being continuously worked on by Solidus contributors. While Spree can work better for setting up a store quickly, in the longer run, the benefits of Solidus should take over as it is much easier to maintain.
I think Solidus will be great in the future and might already be a better solution than Spree, and I know many others share the same view.
If you require a quick solution that might not need a lot of changes in the future, on a smaller budget, Spree would be the way to go, otherwise Solidus wins.
I think Solidus will be great in the future and might already be a better solution than Spree, and I know many others share the same view.
If you’re considering building your ecommerce site from scratch, feel free to drop us a line to continue this discussion and explore your ideas.