Shopify Vs. Squarespace for eCommerce

I had the recent opportunity give both Shopify and Squarespace a thorough test drive and learned a great deal about the two. I wanted to give them an equal chance to wow me so I built the same exact site and product catalog using both platforms. Throughout development I kept thorough whiteboard notes on features that I liked and disliked about each. In this post I will share my story of what it was like to build the same site using two different platforms.

The site is an online retail store for a clothing brand called LOM Clothing which was started by world renown battle rapper and hip-hop star, Hollow Da Don. LOM Clothing has a growing catalog that changes frequently so product/inventory management was definitely a priority. Other priorities included quality of design, ease of checkout process, security features, ability to customize at every layer, and native integration with Stripe, the popular credit card handler. After some quick googling it quickly became clear that both Shopify and Squarespace met all this criteria so here comes the good, the bad, and the ugly of both platforms.

Shopify Highlights

  • Product Entry / Management
    • This is one area where Shopify really shines. Creating new products, categories, collections, features, etc really couldn't be easier and managing inventory is a breeze. As a side note, their "bulk editor" function is absolutely and completely epic.
    • Going deeper into the collections topic, the ability to create "regex style" rules to define product collections is extremely cool and allows you to keep things quite dynamic.
  • Editable Liquid Templates 
    • Liquid is a templating engine, similar to Smarty, Jade, and others but the ability that Shopify gives you to customize and add to these templates is really outstanding. I didn't feel like I was trying to code my way out of a box, I could add and change functionality to my heart's content without feeling frustrated.
    • The build-in CSS/HTML editor is actually quite functional. I was expecting to have to copy/paste things out to Sublime and back in but I didn't do that, even once.
  • General Administration
    • Navigating Shopify's admin section is really a pleasure. It doesn't matter if you are managing products, orders, website settings, or accounts, the entire experience is very well done.
  • App Store
    • Shopify has its own app store which includes a variety of different data manipulation tools, additional analytics, sales channels, and more. It's a great feeling to have an active community of other developers publishing useful apps for a platform you are developing on.

Shopify Negatives

  • The only negative I can call out is that there isn't a "Create New" button from a product detail page unless you have just created that product. When you save a product for the first time it has a link at the top to create a new one. If you update an existing product you have to go back to the overview page to find a way to create a new product. While that's a little nit-picky, I found it to be annoying on a few occasions.
  • I know this sounds a bit crazy being the only "negative" but after a fairly frustrating experience with Squarespace (which I used first) I found Shopify to be a great experience.

Squarespace Highlights

  • Extremely WYSIWYG
    • There are a lot of ways this can be a negative but Squarespace does an outstanding job of proving "blocks" which you just plop into containers, define some properties for, and boom, you have content. While these aren't extremely easy to customize, they provide an outstanding way to get rich and dynamic content on your pages. 
  • High Quality Themes
    • The "quality" of templates in the Squarespace ecosystem surpasses what is currently available with Shopify.  By "quality" I mean the attention to detail, the responsiveness, and the UX of a given theme or template. Squarespace seems to take a lot of care with what they publish to the marketplace.
  • Import Tools
    • Squarespace makes it incredibly easy to import products and content from existing platforms such as Big Cartel, Etsy, and ironically, Shopify.  Using the Squarespace admin UI you simply select your platform, enter your credentials, and boom, it takes care of the rest. In my limited testing I found their import tools to be very impressive and robust.

Squarespace Negatives

  • Product Management
    • With any eCommerce site, product management is crucial for scalability, maintainability, and sanity. Managing products in Squarespace feels very clunky and at times was incredibly flaky. It took far too many clicks to create/update products which ultimately leads to frustration and wasted time.
  • Product Relationships
    • Squarespace does something very strange with products in that it creates a relationship between a product and a page. This means that when I was doing testing and creating/blowing pages away I would suddenly lose products. I finally realized that there is a strange and seemingly arbitrary relationship between a product and a page which leads to a lot of extra work. Something as simple as getting the same product to show up on multiple pages is a common ask in the Squarespace support forums. Clearly that is a problem.
  • Customization
    • As I mentioned in the "Shopify Highlights" section, the ability to customize templates and their associated assets is incredibly useful. Squarespace doesn't offer any options to make direct edits to template files without using their "developer platform" which I heard very negative things about from Squarespace users and developers. The fact that there is no support for anything other than injecting code into the header is quite limiting and something that definitely got in the way of things I needed to accomplish.

Summary

I am sure it's fairly clear which direction I would go but for the sake of clarity, Shopify won this contest hands down. Whether you are handling product/inventory management, web site development, or both, Shopify provides a much better all around experience. I would highly recommend it for developers and non-developers alike because even though it gives you all the tools to customize it doesn't require that you do in order to get up and running. 

Side Note

Ironically and a result of all this, I did end up migrating 5 years worth of blog posts from WordPress over to Squarespace. This blog (as of the time of this post being published) is running on their personal platform and I am extremely happy. It's a breeze to maintain, the "block" approach to laying out content is fantastic for blogging, and now I don't have to think about keeping my WordPress server/plugins up to date any more. I will be doing a separate post on the import process and how Squarespace really shines as a blogging platform sometime in the near future.

Hosting for Business and Pleasure

In the world of web hosting there are so many options it's dizzying. Each boasting that they are faster, cheaper, and easier to setup than the next. The purpose of this post is definitely not to wade through all of the murky waters that is cloud-based web hosting but rather to shine some light on three hosts that I have a fair amount of experience with. I am going to briefly talk about some of the pros/cons as well as what I would recommend as the general use case for each of the three.

AWS

Obviously Amazon Web Services (AWS) has a huge presence in the hosting space and rightfully so. They are top notch when it comes to scalability, customization, features, and in a lot of cases pricing. With that said, why not go with them for everything? Personally, I think they are overkill for things like brochure/marketing sites, personal apps/blogs, etc. Now when it comes to scalable, distributed, high availability web applications, AWS is my top choice. I have been a part of two major migrations from other hosting platforms to AWS in the last 60 days and I can say from experience they provide some of the best platforms/tools in the business. I actually have a talk submitted for an upcoming conference that focuses on one of these migrations so I am going to hold off on going too much deeper into AWS in this post. What I will say is that we were able to leverage all of the following services for a single web application:

Digital Ocean

Touted as the "SSD-Only Cloud", Digital Ocean provides a slick interface to manage servers/keys/etc, and also has a great API. Beyond that it has one-click installations for the following apps/stacks:

In my mind, Digital Ocean is the best host for personal blogs/sites. You can scale the server up (vertically) at any time and you just pay for what you use. This blog is currently running on Digital Ocean and I pay next to nothing for hosting. Furthermore, I have full SSH access into my box(es) so I can tweak/customize to my hearts content. Getting a server (or in Digital Ocean terms, a "Droplet") up and running really couldn't be easier. If you are new to hosting or are just interested in focusing on development/publishing content rather than managing your server, Digital Ocean is a great option. If you do decide to give Digital Ocean a shot please feel free to sign up using my referral link, I would certainly appreciate it!

Linode

This site (and many others done by @MitchellHislop and Myself) have co-existed on the same Linode cluster for years. I have nothing but good things to say about them, they provide great support, offer a variety of SSD-based linux varieties, and a bunch of other services. For a large web application that got a lot of traffic during the holidays (particularly after being featured on the news in two states) we were able to use "NodeBalancers" to take care of routing traffic to our various nodes and could swap nodes in and out as needed. They definitely don't have the feature set or instant scalability that AWS does but they are certainly robust enough to run most apps. If you know your way around a Linux environment and have a general understanding of hosting, DNS, etc, Linode is a great place to call home.

Summary

I'd say the big take away here is that there is no perfect host. There are always going to be some give-ups whether it be functionality, ease of setup, or cost. If you are competing with the "big boys" in the web application space, then AWS is absolutely the right place to be. If you are looking to get a site up quickly and easily then Digital Ocean is the place for you. If you are a developer/hacker looking to spin up boxes for a variety of purposes that need at least some ability to scale in both directions, then Linode is a perfect fit.

As I mentioned at the beginning of this post, I have left out A LOT of major players (Rackspace, MediaTemple, countless others) but these are the ones I have experience with and I think they provide a nice representation of the different types of hosts out there which still provide with you with the basic needs like SSH, SFTP, etc.

I'd love to hear about your experiences in hosting, I know most people have strong opinions on the topic so please share your story/thoughts in the comments.

The World In Links [11/21-11/27/2011] -- CodeIgniter, Firebug, MongoDB

The World In Links by Nicholas Kreidberg Chrome: Game changing performance increase with new garbage collection routine.

CodeIgniter: Easy package management using Sparks.

CSS: Creating style sheets for print.

Firebug: A guide for using Firebug from a design perspective.

Google+: 10 productive things you should be doing.

jQuery: 10 awesome snippets.

MongoDB: A getting started tutorial.

MySQL: Generate complete Excel spreadsheet using a database.

PostgreSQL: Heroku launches cloud-based database-as-a-service.

Ruby: Installing Rails and MySQL on Lion.

Tools & Toys: The 2011 Christmas catalog.

Web Development: Injecting custom HTML and CSS into an iFrame.