Ruby on Rails (RoR) is one of the best solutions for a web-based ecommerce project. There are two quality open-source ecommerce platforms you can use with RoR – 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 will show you why, at Netguru, we tend to lean towards Solidus.
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 is a newer framework that forked from Spree, which means 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 groups of users.
While Spree is more popular, many software developers are not fans of the solution. The code is 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 lack 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.
It wasn’t technically a brand new product because it was forked from Spree 2.4. But although Solidus inherited the code base, from the start, a dedicated and engaged team was working on improving its quality and fixing bugs.
The user interface of both Solidus and Spree is lightweight and easy to use. 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 declared a "draw".
Support and maintenance were the reasons why Solidus forked from Spree. Until today, that's one of the main advantages of Solidus. Its team has a Slack channel where you can find a solution to your problems. Most of the questions I posted there were answered, which means that the support is quite good.
Using Spree, you get most of the support from its website, with documentation that covers every type of issue that you may encounter.
As mentioned above, Spree support and lingering issues have been a problem for developers and are the main reason why many ecommerce owners choose Solidus.
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).
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.
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.
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 a 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.
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.
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 plug-in on the solidus.io website (there are some basic reporting extensions, though), 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.
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.
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.
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.
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.
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.
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’re considering building your ecommerce site from scratch, feel free to drop us a line to continue this discussion and explore your ideas.