They’re great to contrast as they are both open-source ecommerce platforms; I’ve worked professionally with both, and I can identify with both sides of the argument. The Spree folks say that Spree can do everything Magento can and does it in 1/200th the amount of code (their cores are 45k vs 8.2m lines of code respectively). The Magento folks say that Spree is new and relatively untested, and as such is only really good for smaller businesses that won’t hurt too much if their site is somewhat lacking in the reliability department.
Well, Spree’s come of age now, and perhaps it’s time to contrast Spree against Magento again, in 2015.
Maturity & Reliability
The main argument levelled against Spree has mostly been that it’s a newcomer; immature technologies are generally less reliable than their better-established competitors. Magento beats Spree in maturity, that’s for sure. We’ve been hearing this for quite a few years now, and you’ll still see arguments levelled against Spree on the basis that it’s an immature technology. These arguments, of course, neglect the fact that larger codebases tend to be much less reliable than smaller ones (Magento is several hundred times larger, codebase-wise) and the fact that Spree is built upon the rock-solid Ruby on Rails framework. Rails powers some of the largest and most robust websites on the internet, including Airbnb, Square, Github, Hulu, and many others.
So, for how many more years is Spree going to be considered a newcomer? At some point, ‘it came first’ stops being a reason that one product can be considered better than another. Spree already powers a whole bunch of successful, high-revenue online storefronts: Dulux, Bonobos, Fortnum & Mason, Finery and On Running all spring to mind (in fact, Bonobos switched from Magento to Spree). Spree has been around going on 8 years now, and in the tech world, that’s actually a pretty long time. Spree has come of age.
Speed of Development
No-one’s arguing that Magento is quicker to develop features for than Spree; Ruby on Rails is renowned for being the most productive web framework out there and adding new features to a gargantuan codebase like Magento takes considerable time. Where Magento does score points however is concerning plugins. The Magento store has integrations for pretty much everything under the sun, and you might find that you can buy all the integrations you need without having to pay anyone to write any code. There’s also a ton of themes that work well out of the box. Magento also scores points here in that it’s written in PHP. PHP is a very popular language, and finding PHP programmers is considerably easier than finding Ruby programmers.
Having said that, Magento sites often suffer from the codebase becoming large and unwieldy. Hiring more developers does not fix this problem as those developers then have to be trained on the project. If the codebase becomes difficult enough to understand, hiring new developers does not guarantee that work will be done any quicker. These projects may grind to a halt as new work requires understanding of the old work. Project managers on these projects become very well acquainted with terms like “bus factor” and “development hell”.
Back when Spree was relatively new, it was missing all kinds of features that online shoppers have come to expect. Proper product searching, sales, wishlists, BOGOF promotions, and multiple currencies were either not fully polished or missing entirely. Spree has come a long way since then, and now really can do everything that Magento can. I’d be happy to settle for a draw in this department were it not for one thing that Magento stores can really struggle with: loading a page quickly. It’s well known that page load speed can severely affect conversion rates, and this is an area that Magento will always struggle with, especially given the size of the codebase.
If we disregard Magento Enterprise (the pricing of which would make Donald Trump’s wig fly off), the pricing of Magento and how that compares with Spree’s pricing is really more about the company that you get to do the work. It’s well known that quotes in this business can vary wildly, and finding the right company for you is a quest which you must embark upon yourself, as a business (although we might know of one company that could help). This is assuming the quote is, of course, for getting an initial site up. If your business then decides to add a bunch of features and remove a bunch of different features, the manpower required is significantly less for Spree, and as such should be reflected in the cost of getting the work done.
Comparisons in 2012 had a fairer pro/con list between these two platforms. In 2015, Magento is very similar to how it was, whereas Spree is a completely different beast. With the release of Spree 3, the main reason I’ve found for a business to build a project with Magento is that their developers are already familiar with PHP. I’ll fully admit to bias here, as I worked professionally with Magento for several years and consciously made the decision to move away from it for precisely the reasons I’ve described in this article. Things move pretty fast in the technology world, and often the slow-moving maturity that Magento exhibits is but a few short steps from obsolescence.