How To Achieve Scalability in Software Development?
read this article to learn how to achieve scalability in software development!
If you’re confused about the difference between Spree and Solidus, don’t see why they both exist, and can’t decide what’s best for your store, relax: You’re not alone.
That’s why I spoke with the developers involved with these two popular open source projects. They’ve shared history, behind-the-scenes drama, and most significantly, future plans — so you can make an informed choice.
Here’s what we’ll cover:
In 2004 an enterprising Tobias Lutke launched Snowdevil, an online store selling snowboards. Snowdevil was one of the earliest examples of Ruby on Rails eCommerce.
Tobias became a Ruby on Rails Core Team member and in 2006, he and others formed Shopify, a closed source hosted eCommerce platform. Shopify has seen incredible momentum and has clearly started to crush its competition. Shopify Inc filed for IPO on the New York and Toronto stock exchanges in April 2014 and today powers over 200,000 stores.
Spree’s journey started in January 2008 when Sean Schofield was hired by EndPoint to work on a project called RailsCart. One month later RailsCart moved from Google Code to GitHub and was given a new name: Spree.
During 2009, spreecommerce.com launched and the Spree Core team was formalized. Come May 2009 Sean Schofield left EndPoint and founded Rails Dog, a consultancy specializing in building Spree Commerce stores.
Spree started to gain traction in the open source community. By October 2011 the Spree project had an extensions registry, and support for Ruby on Rails 3.0.
Spree Commerce Inc was formed July 2011 and raised $1.5 million in seed funding from AOL and True Ventures. Initially, the goal of the company appeared to be building products around analytics, recommendations and mailing lists.
Over the next four years Spree Commerce attempted to bring two products to market:
Ryan Bigg was hired by Spree Commerce Inc in 2011 to run the Spree open source community and became the top committer to the project. Sean Taylor, Founder at Stembolt told me “Ryan was amazing for years.” I agree. Here’s how Ryan describes Spree’s growth and his role:
"During my time as Community Manager I saw the community double in size in the first year, and then almost double again during the second year of my tenure. I lead the development and release of Spree 1.0 and Spree 2.0 and acted as a Benevolent Dictator for the project; deciding what issues and pull requests were necessary to the project."
As the community grew, so did the conferences. Three conferences were organized starting in 2012 and ending 2014. We attended SpreeConf in 2014 which had around 300 attendees. At the conference it was announced that GoDaddy would use Spree to be the underlying platform for their GoDaddy Online Store product. Spree Commerce Inc also announced that a further $5 million in investment was secured.
This time the investment was lead by Thrive Capital but more interestingly Red Swan, a group led by Bonobos CEO Andy Dunn. Bonobos was relying on Spree and became a darling example of using Spree in production. Andy spoke at SpreeConf and showed off his latest brand and Spree storefront, AYR, which has recently replatformed to Shopify.
Spree Commerce created a group of certified solution partners (Resolve Digital included) to route inquiries for custom Spree development to the appropriate partner and scale up the custom Spree builds.
By 2015 Wombat started supporting Magento and was no longer specifically for Spree. This was a crucial moment when Spree Commerce aligned their goals with Wombat and not the open source community.
As interests diverged, pressure mounted on the open source community and Ryan Bigg was the first to go. Here’s how he describes it:
"At the beginning of 2014, I was starting to get overwhelmed with the activity across the Spree ecosystem… I asked for help and direction from Spree Commerce Inc. Despite being told for several months that this help was coming, it never did eventuate and so I decided, for my sanity, to quit."
Ryan left the company late in 2014 and the community witnessed a corresponding slowdown of commits to the project.
Next to depart was CTO and Co-Founder Brian Quinn, who went on to work at Stickermule in February of 2015, delivering another blow to the confidence in Spree.
On September 18th, 2015 Spree Commerce announced it had been acquired by First Data and was no longer going to back the open source project in any meaningful way. Sean Schofield confirmed this later in a blog post:
"...we can no longer dedicate significant resources to this effort. This means that you can expect a decline in contributions from [Spree Commerce Inc] employees"
The initial reason for the acquisition is a bit vague:
"We will continue to focus on technology solutions related to e-commerce. We will be taking advantage of First Data’s financial and technical resources to bring the Spree technology to a worldwide audience."
Since the announcement it’s become clear they have been tasked with building out First Data’s Clover Online Store product. The old SpreeWorks domain now redirects to Clover and the Spree Commerce YouTube channel contains Clover related videos.
The aftermath of the acquisition created a somewhat confusing situation where Spree Commerce Inc was no longer involved with the Spree Commerce project.
Along with the announcement, we learned that Wombat was being retired by March 31, 2016 which would have been a piece of critical infrastructure for a number of stores running Spree. An open source alternative to Wombat called Cangaroo has since been created.
What is a "fork"? It is when a developer takes a copy of an existing project and starts development on a distinct and separate version of it. This is particularly useful when there’s a fundamental disagreement about how development should proceed.
In response to this situation, developers at Bonobos and Stembolt (formerly FreeRunningTech), an eCommerce-focused consultancy based in Canada, made a bold decision to fork Spree 2.4 and start Solidus.
When asking Sean Taylor at Stembolt why they forked Spree he explains:
"It was a very long decision process... We kept losing fights about what should and shouldn’t go into core. The level of quality we wanted it to be was so much higher than what they were accepting. We can’t keep out the things that we wanna keep out, and we can’t keep in the things that we really want in."
It’s this frustration that ultimately lead to action. Spree was forked and given a new name: Solidus, named after a golden coin issued in the Late Roman Empire. Stembolt have written up an article about why they forked Spree and started Solidus if you want more.
Developers Weigh-In: Alberto Vena at Nebulab reviews their involvement with Spree and Solidus over the years. He writes about “Why Solidus?” on their blog. And Allen Burt at Blue Stout offers a detailed comparison of Spree and Solidus.
The decision to fork a project should never be taken lightly, but in this case it genuinely represented a divergence of developer interests, and allowed development to proceed where it had all but stalled. We wrote about how we believed Solidus is a positive change and discussed migration options from Spree.
While Solidus moved forward, Spree looked completely abandoned. A notice at the top of the project on Github read:
"This project is no longer maintained by Spree Commerce. We recommend using Solidus, which is a fork of the Spree codebase."
Post acquisition the Spree open source community had many questions about what that meant for them so Sean Schofield blogged about: “The Future of Spree Open Source Software” to clarify their position:
We’re going to leave it up to the community to decide... if they want to continue forward with the current Spree codebase, use the Solidus project, or perhaps start another fork using a completely new approach. If we’re presented with a credible plan to maintain the project long term, then we’ll gladly turn over the keys.
According to Spark Solutions, a consultancy based in Poland, their company along with several others contacted Sean Schofield after this blog post, presenting their plan for the project in hope of “getting the keys”.
In January of 2016 Sean Schofield announced a new roadmap for Spree that will be lead by volunteers from Spark Solutions and India based consultancy Vinsol. In a recent conversation with Spark Solutions’ Damian Legawiec and Michal Faber told me:
"We’ve set out a road map which has been accepted by Sean Schofield and other developers and we are coordinating community efforts."
They’ve since set up a Slack team which has over 500 members and revived the mailing list. More importantly, commits have started to flow back into Spree and the next version has been released.
A Spree development roadmap was shared and the new Spree Core Team completed a laborious task of cleaning up a pile of issues and updating the most commonly used extensions to the latest 3.1 version.
The revival of the Spree open source project is interesting. Mike Faber explains:
"There isn't just one or two flavors of Spree - it's a much more complex ecosystem. But one thing is sure - thousands of stores and developers rely on a lean, flexible, extendible Spree open-source project to go on. That is why we picked up Spree in early 2016."
Both Vinsol and Spark Solutions saw value in picking up Spree and have aligned their companies with it. Faber describes their relationship with Solidus as “Coopetition”. There is some evidence of this. Various vulnerabilities identified by Solidus have made it back into the Spree codebase and there are changes in Spree making their way to Solidus - “mostly housecleaning of unused code” according to Faber.
Magnus von Koeller from Bonobos stepped down from the Solidus Core Team and Thomas von Deyen from magic labs stepped in. Thomas works heavily on Alchemy CMS which has integrations with Spree and Solidus.
This brings us to the present day. We now have two active open source projects: Solidus, and a revived Spree.
“If you’re coming from Spree to Solidus developers will notice the two projects haven’t diverged in a significant way yet. There are a lot of changes behind the scenes though” is how Sean Taylor describes it to me.
Spree 3.x was updated to use Bootstrap on the front and backend and Solidus purposely didn’t include that change which is why Spree 2.4 was where the fork was created.
Solidus also has a new returns and authorization process. But aside from that, it’s the future that matters the most. You can see what’s coming up with Solidus on the Github future milestone. And Spree published their 2016 development roadmap on their wiki.
Initially there was a clear migration path between Spree 2.4 and Solidus 1.0. And then Solidus 1.1 allowed for migration from Spree 3.0 but now as the projects continue diverge, migrating between Spree and Solidus will become less compatible.
Michal at Spark Solutions best describes the overall feel. He told me that Spree is in a “transitional period”. That’s a great description for both Spree and Solidus, and it’s currently a tough call to decide which you should go with.
Visiting us in 2020? Be sure to check out Spree vs Solidus: 2020 Update.
Spree was dropped for a while and now has new backers trying to revive the community. But what represents Spree right now is a bit unclear because of Spree Commerce Inc. If you visit spreecommerce.com today it’s the remains of an old company.
There’s a trademark issue too because Spree Commerce is owned by First Data. Works such as the domain name and logo will present a problem for the Spree open source community and we might see Spree Commerce get a rebrand.
OpenCommerce Conference is set for June in New York. Among the speakers is Brian Quinn, Spree Co-founder.
Solidus on the other hand is trying to pave new ground and make progress towards their roadmap. The bold move has already been made and now they need the community to move from Spree to Solidus. Sean Taylor explains “If you look at the community as a whole, a lot of people are switching” and we’re definitely starting to see this. The Solidus Slack channel for example already has over 500 members. And SolidusConf is set for May in Toronto.
We’ve blogged about how Solidus is a positive change and we’re attending and speaking at SolidusConf. Our customers who are on Spree will likely stay on Spree, but new stores we build will be on Solidus. This is because behind all the noise, we think Solidus is the future.
When it comes down to it, here’s what we recommend as of today: