This website uses cookies to better the user experience of its visitors. Where applicable, this website uses a cookie control system, allowing users to allow or disallow the use of cookies on their computer/device on their first visit to the website. This complies with recent legislative requirements for websites to obtain explicit consent from users before leaving behind or reading files such as cookies on a user’s computer/device. To learn more click Cookie Policy.

Privacy preference center

Cookies are small files saved to a user’s computer/device hard drive that track, save, and store information about the user’s interactions and website use. They allow a website, through its server, to provide users with a tailored experience within the site. Users are advised to take necessary steps within their web browser security settings to block all cookies from this website and its external serving vendors if they wish to deny the use and saving of cookies from this website to their computer’s/device’s hard drive. To learn more click Cookie Policy.

Manage consent preferences

These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
Cookies list
Name _rg_session
Provider rubygarage.org
Retention period 2 days
Type First party
Category Necessary
Description The website session cookie is set by the server to maintain the user's session state across different pages of the website. This cookie is essential for functionalities such as login persistence, ensuring a seamless and consistent user experience. The session cookie does not store personal data and is typically deleted when the browser is closed, enhancing privacy and security.
Name m
Provider m.stripe.com
Retention period 1 year 1 month
Type Third party
Category Necessary
Description The m cookie is set by Stripe and is used to help assess the risk associated with attempted transactions on the website. This cookie plays a critical role in fraud detection by identifying and analyzing patterns of behavior to distinguish between legitimate users and potentially fraudulent activity. It enhances the security of online transactions, ensuring that only authorized payments are processed while minimizing the risk of fraud.
Name __cf_bm
Provider .pipedrive.com
Retention period 1 hour
Type Third party
Category Necessary
Description The __cf_bm cookie is set by Cloudflare to support Cloudflare Bot Management. This cookie helps to identify and filter requests from bots, enhancing the security and performance of the website. By distinguishing between legitimate users and automated traffic, it ensures that the site remains protected from malicious bots and potential attacks. This functionality is crucial for maintaining the integrity and reliability of the site's operations.
Name _GRECAPTCHA
Provider .recaptcha.net
Retention period 6 months
Type Third party
Category Necessary
Description The _GRECAPTCHA cookie is set by Google reCAPTCHA to ensure that interactions with the website are from legitimate human users and not automated bots. This cookie helps protect forms, login pages, and other interactive elements from spam and abuse by analyzing user behavior. It is essential for the proper functioning of reCAPTCHA, providing a critical layer of security to maintain the integrity and reliability of the site's interactive features.
Name __cf_bm
Provider .calendly.com
Retention period 30 minutes
Type Third party
Category Necessary
Description The __cf_bm cookie is set by Cloudflare to distinguish between humans and bots. This cookie is beneficial for the website as it helps in making valid reports on the use of the website. By identifying and managing automated traffic, it ensures that analytics and performance metrics accurately reflect human user interactions, thereby enhancing site security and performance.
Name __cfruid
Provider .calendly.com
Retention period During session
Type Third party
Category Necessary
Description The __cfruid cookie is associated with websites using Cloudflare services. This cookie is used to identify trusted web traffic and enhance security. It helps Cloudflare manage and filter legitimate traffic from potentially harmful requests, thereby protecting the website from malicious activities such as DDoS attacks and ensuring reliable performance for genuine users.
Name OptanonConsent
Provider .calendly.com
Retention period 1 year
Type Third party
Category Necessary
Description The OptanonConsent cookie determines whether the visitor has accepted the cookie consent box, ensuring that the consent box will not be presented again upon re-entry to the site. This cookie helps maintain the user's consent preferences and compliance with privacy regulations by storing information about the categories of cookies the user has consented to and preventing unnecessary repetition of consent requests.
Name OptanonAlertBoxClosed
Provider .calendly.com
Retention period 1 year
Type Third party
Category Necessary
Description The OptanonAlertBoxClosed cookie is set after visitors have seen a cookie information notice and, in some cases, only when they actively close the notice. It ensures that the cookie consent message is not shown again to the user, enhancing the user experience by preventing repetitive notifications. This cookie helps manage user preferences and ensures compliance with privacy regulations by recording when the notice has been acknowledged.
Name referrer_user_id
Provider .calendly.com
Retention period 14 days
Type Third party
Category Necessary
Description The referrer_user_id cookie is set by Calendly to support the booking functionality on the website. This cookie helps track the source of referrals to the booking page, enabling Calendly to attribute bookings accurately and enhance the user experience by streamlining the scheduling process. It assists in managing user sessions and preferences during the booking workflow, ensuring efficient and reliable operation.
Name _calendly_session
Provider .calendly.com
Retention period 21 days
Type Third party
Category Necessary
Description The _calendly_session cookie is set by Calendly, a meeting scheduling tool, to enable the meeting scheduler to function within the website. This cookie facilitates the scheduling process by maintaining session information, allowing visitors to book meetings and add events to their calendars seamlessly. It ensures that the scheduling workflow operates smoothly, providing a consistent and reliable user experience.
Name _gat_UA-*
Provider rubygarage.org
Retention period 1 minute
Type First party
Category Analytics
Description The _gat_UA-* cookie is a pattern type cookie set by Google Analytics, where the pattern element in the name contains the unique identity number of the Google Analytics account or website it relates to. This cookie is a variation of the _gat cookie and is used to throttle the request rate, limiting the amount of data collected by Google Analytics on high traffic websites. It helps manage the volume of data recorded, ensuring efficient performance and accurate analytics reporting.
Name _ga
Provider rubygarage.org
Retention period 1 year 1 month 4 days
Type First party
Category Analytics
Description The _ga cookie is set by Google Analytics to calculate visitor, session, and campaign data for the site's analytics reports. It helps track how users interact with the website, providing insights into site usage and performance.
Name _ga_*
Provider rubygarage.org
Retention period 1 year 1 month 4 days
Type First party
Category Analytics
Description The _ga_* cookie is set by Google Analytics to store and count page views on the website. This cookie helps track the number of visits and interactions with the website, providing valuable data for performance and user behavior analysis. It belongs to the analytics category and plays a crucial role in generating detailed usage reports for site optimization.
Name _gid
Provider rubygarage.org
Retention period 1 day
Type First party
Category Analytics
Description The _gid cookie is set by Google Analytics to store information about how visitors use a website and to create an analytics report on the website's performance. This cookie collects data on visitor behavior, including pages visited, duration of the visit, and interactions with the website, helping site owners understand and improve user experience. It is part of the analytics category and typically expires after 24 hours.
Name _dc_gtm_UA-*
Provider rubygarage.org
Retention period 1 minute
Type First party
Category Analytics
Description The _dc_gtm_UA-* cookie is set by Google Analytics to help load the Google Analytics script tag via Google Tag Manager. This cookie facilitates the efficient loading of analytics tools, ensuring that data on user behavior and website performance is accurately collected and reported. It is categorized under analytics and assists in the seamless integration and functioning of Google Analytics on the website.

Best Rails Ecommerce Platform: Spree Commerce vs Solidus

  • 22432 views
  • 9 min
  • Aug 31, 2017
Tania H.

Tania H.

Copywriter

Vlad V.

Vlad V.

Chief Executive Officer

Share

Since 2015, when Spree declared the end of support for its open source ecommerce platform, the global Ruby on Rails business community has been confused by this move. When we get inquiries about creating online stores, the very first question we get from customers is “What’s up with Spree?”

The good news is that the Spree team has not only revived platform support but has also released a new version recently. In the meantime, the uncertainty surrounding Spree provided the basis for a forked ecommerce solution, Solidus.

To reply to the most pressing questions and pull together all the details as thoroughly as possible, we’ve prepared an overview of Spree and Solidus: their statuses, the opportunities they provide, their main differences, and their development trends and business uses.

But before going into details, let’s briefly touch upon the history of the ecommerce era for the Ruby on Rails business community.

Ruby on Rails and Ecommerce

The story of Ruby on Rails ecommerce starts in 2004 with an online store selling snowboards, named Snow Devil.

Ruby on Rails and ecommerce

Two years later, in 2006, Snow Devil’s creators, who were also Ruby on Rails core team members, started a closed ecommerce platform called Shopify. By spring 2014, the number of stores built on Shopify had reached 200,000.

Meanwhile, in 2008 a project called RailsCart appeared, which then got the name Spree. A year later, the Spree team launched the platform’s website. Since October 2011, Spree has offered support for Ruby on Rails 3.0.

Ruby on Rails and ecommerce

What is Spree?

Spree is an open source, multifunctional Ruby on Rails solution aimed at building large online stores. It’s pretty flexible, which allows to adjust this platform according to business needs and requirements, and it implements a wide range of features.

The adjustability and reliability of Spree are proved by figures. According to Spree’s data, over 45,000 stores worldwide have implemented this platform for their ecommerce projects.

In spite of such promising success, several key members left the project in 2015, and therefore Spree support was dropped for a while. Its suspension led to the appearance of Solidus, a fork of Spree version 2.4.

After almost a year of assumptions and confusion about Spree and its further support, Spree Commerce announced the release of version 3.0.0 along with a new roadmap in January 2016. This new Spree version and its updates provide Bootstrap support for frontend and backend, enhanced support for RoR, and many other useful features.

Since then, the Spree team has continued sharing regular releases, supporting migrations to updated versions, and encouraging the developer community to revive and actively contribute to the platform.

What is Solidus?

When the Spree team stopped investing in its open source platform, some previous Spree contributors from Canada (to be more precise, developers from Bonobos and Stembolt) started a new project called Solidus by forking Spree version 2.4.

Just like Spree, Solidus is an open source ecommerce solution that works equally well for small and medium-sized businesses, complex storefronts and high-volume retailers.

Forking any project is a big responsibility, which demands commitment and accountability. The current status of Solidus proves that its creators and developers are seriously committed to providing high-quality code:

The story of Ruby on Rails ecommerce starts in 2004 with an online store selling snowboards, named Snow Devil.

Nothing gets into master until it has two thumbs from core contributors who feel confident that it is production-ready code.

Solidus’s creators also encourage the developer and business communities not to accept their word, but rather check out their GitHub repository and see for themselves.

Due to Spree’s revival alongside the development of this high-quality forked platform, Ruby on Rails-based storefronts now have even more efficient options to build their online ecommerce projects.

What makes these platforms so great? Let’s investigate the opportunities they provide compared to other ecommerce solutions.

What Makes Spree Commerce and Solidus Similarly Efficient for Business

Since Solidus has nearly the same purpose as Spree, implementing either is easy and profitable for online stores.

  • Faster development. When it comes to web development, the Ruby on Rails framework is much faster than other frameworks. What’s more, RoR, which was created for online business and is at the core of Spree and Solidus, is efficient in terms of resources and time.
  • Full ownership. Since both Spree and Solidus are open source projects, you get ownership and control over all code assets. Additionally, both platforms set code quality and integrity as the top priority, verifying each piece of contributed code to ensure a stable, clean, and excellent codebase.
  • Fully functional. Another great benefit Spree and Solidus offer compared to other ecommerce platforms is a complete set of features needed to launch a full-service online store. These features include extended payment methods, easy integration of various extensions, and convenient and straightforward ways to configure, add, replace, or remove any feature. Additionally, both platforms provide efficient means for improving online store performance: keyword targeting, product meta-descriptions, permalinks, and other SEO tools aimed at profitable and successful storefront operation and promotion.
  • Modularity. Spree and Solidus allow you to efficiently and smoothly scale your online stores. Since both solutions are based on modern standards, they respond to market innovations, speed requirements, and corresponding modularity principles.
  • Highly customizable. Modularity, in turn, ensures exceptional opportunities for customization and helps you meet business needs. At the same time, it keeps Spree and Solidus lean and flexible from the point of development and setting up. Easy extensibility also allows for smooth and safe upgrades. One key capability related to storefront or marketplace customization, and which is supported by Spree and Solidus, is a mobile-friendly approach. A mobile-friendly approach ensures that it’s easy to surf online stores with mobile devices due to responsive web design in particular.
  • Mobile commerce support. These ecommerce platforms provide extensive support for mobile applications. Along with regular features like browsing products and placing orders, Spree and Solidus support social media app integration, transactional and marketing email services, and location services. Also, both support different modes of payment (including card, cash, or check), and ensure smooth and easy integration of those payment methods.
  • Easy payment integration. Spree is bundled with more than 125 payment solutions, including Paypal, Stripe, and Redsys. Solidus also supports a collection of payment methods. Each of these provides support for more payment gateways than other platforms.
  • Comprehensive APIs. Spree and Solidus also offer stable APIs, which is crucial for smoothly integrating third-party solutions. Another important point to mention is that a complete API kit is available for nearly any use case.
  • Community. Both platforms’ contributors encourage and extend their open source communities. In 2016, Spree relaunched its regular conference, which is now called OpenCommerce Conf. Solidus gathers its contributors at Solidus Conf. The latest Solidus meetup happened in spring 2017. Both platforms also support active Slack channels with over 1000 participants each. To extend your development expertise, you can join either the Spree or Solidus channel.
What makes Spree Commerce and Solidus efficient for business

Differences Between Spree and Solidus

These ecommerce platforms have a number of similarities, but what distinguishes one from the other? There are several peculiarities to point out.

There are a few innovative features implemented in the Solidus platform out of the box:

  • Shipping integration. Cartons, a solution designed by the Solidus team, is aimed at smoothing shipping services integration and letting you group orders.
  • Supply management. Solidus provides support for promo codes and specials that can be used multiple times.
  • Better order management. An improved ordering system opens new opportunities for managing orders. Solidus lets the customer specify the reason for order changes or cancellations, and lets you set an amount of money and taxes to pay.

Since Solidus was forked from Spree 2.4 (not Spree 3.x, which marked Spree’s revival), from this moment these platforms are developing on different technical planes. Specifically, Spree 3.x updates include Bootstrap for frontend and backend, which isn’t supported by Solidus. And Solidus implemented a new authorization process, among other things.

Another point to mention is migration from Spree to Solidus, which has become less consistent due to the different paths these solutions are going down. Meanwhile, both platforms are sharing their upcoming plans. You can check out Solidus’s GitHub milestones and Spree’s release notes, as well as Spree’s latest version and its open source GitHub repository.

After all the opportunities and technical details described above, it’s logical if you still have the question:

Which Ecommerce Platform Should I Choose?

Since both solutions are fast, full-featured, and efficient for online business, you will benefit from using either. However, different business needs, goals, and use cases require a clear choice. We suggest choosing the platform based on your project's current status.

If you’re planning an online store

When you’re at the stage of investigating available ecommerce platforms to pick the right one for your project, it’s pretty difficult to choose between two options that offer almost the same functionality.

Still, when we’re talking about open source solutions, it’s important to be sure that you can rely on continuous support. Although Solidus has a relatively younger community, compared to developers contributing to Spree, Solidus’s contributors are more active.

The graphs below illustrate these differences in terms of regularity and recency of new additions and commits:

Comparing Spree and Solidus activity in communities

As you can see, Solidus has had about 50k commits during 2017, while Spree has had only about half that amount. Therefore, we suggest taking a closer look at Solidus if you're going to launch a brand new ecommerce project.

If you’re currently using Spree

If you’ve already built an online store with Spree, we suggest you keep using it and just upgrade it up to the most recent version. Since Spree is reviving its community and building promising development plans, you should continue to get support and updates for your project. Besides, in the matter of functionality and efficiency, Spree is about the same as Solidus..

However, migrating to Solidus is also an option. If you’re running a project on the earliest Spree version, you should upgrade it at least to 2.4. Upgrading will ensure smooth and easy migration, as Solidus is an improvement of Spree 2.4. In case you’ve already tried Spree 3.x and still would like to consider migration, Solidus offers version 1.1 for this purpose.

We’ve built online storefronts for different industries: beauty (Artdeco), healthcare (Medshop Express), household supplies (Hollar), and many others. We know that it’s not easy to choose an ecommerce platform that’s the right fit for a particular industry and project. We hope our assessment of features, latest updates, innovations, and upcoming development plans of Spree and Solidus will come in handy and guide you in your choice. If you have any questions or need more details, feel free to reach out to us.

CONTENTS

Authors:

Tania H.

Tania H.

Copywriter

Vlad V.

Vlad V.

Chief Executive Officer

Rate this article!

Nay
So-so
Not bad
Good
Wow
2 rating, average 4.5 out of 5

Share article with

Comments (2)
Spark Solutions
Spark Solutions about 6 years ago
Hi! Spree Commerce Core Team here. Spree has a new website: https://spreecommerce.org/ - would be awesome if you could update it in the article. Thanl you
Reply
Maryna Z.
Maryna Z. about 6 years ago Spark Solutions
Hi there! Ok, we'll update the links ASAP. Cheers from RG team ;)
Reply

Subscribe via email and know it all first!