Someone was asking on Twitter for an opinion on customization of look and feel on Shopify. I've done a lot of Shopify sites, kicked the tires on Magento and done exactly 1 Lemonstand site (most of it based on the demo theme which apparently is an example that shouldn't be used), so I replied saying:

Compared to the ones I've used (Magento, Lemonstand) Shopify is miles ahead in ease and flexibility of customization

I then saw this reply from Lemonstand:

@ I'm not sure what @ is referring to you, but in LemonStand you can customize anything, in any way, period.

Ok, fair enough I thought - I should elaborate:

@ @ you can customize but not as easy: layout more complex, editing HTML via CMS sucks, not jquery friendly

Now, instead of taking on board some feedback from one of their customers and using this as a learning opportunity, Lemonstand replied with:

@ well that's vague and incorrect. We and many others use jQuery. Everyone has personal pref & that's all you're saying

and followed up with:

@ layout is not "more complex". You use any HTML you want. Its up to you entirely.

Well, they were right about being vague - there is only so much you can say in 140 characters. But they are wrong about being incorrect, and here's why:

1. Layout more complex


In Shopify you have templates - an overall layout (theme.liquid) and individual ones for the main page types (index, collection, product, page, blog are the biggies). There is clean separation between content and layout, allowing users to edit content via a rich text editor and pulling in that content via placeholders in the template.

You can create alternate layout templates, and use snippets to isolate repeating HTML/logic, but by default there aren't any. Assets (css, images etc) are listed on the Theme Editor page at the bottom.

There is one page for everything related to layout.


In Lemonstand, you have Pages, Templates and Partials. Out of the box, there are 3 templates and on the site I'm working on there are now 61 partials and 35 pages.

I found navigating to the right chunk of code to be painful in the Lemonstand GUI. They use a tabbed interface with each tab containing a paginated list of items. If you are on page 2 of partials and need to do something in another tab it will forget what page you were on when you come back so now you have to find it again. It took me a while to figure out that I can increase the page size to stop this problem.

It would be easier conceptually if they used tree (folder) style navigation and opened files in tabs. Actually, I would prefer not to have to build the site inside a browser, but I'm getting ahead of myself.

There isn't a clear separation on pages between content and layout so granted some of those pages are actually content, which reminds me - there is no WYSIWYG editor for users who are expected to be able to edit pages that contain markup.


In response to the comments below, here is a screenshot of the so-called WYSIWYG editor:

Content, markup and code are intermingled, and sorry, but that is not a WYSIWYG editor.

2. Editing HTML via a CMS sucks

Currently there is no HTML editor that runs in a browser that comes anywhere close to the productivity you get with desktop editors (although I have high hopes for SkyWriter). The one I use has color coding, formatting, a really nice tabbed interface that switches smartly when I use Ctrl+Tab, code completion and it allows me to plug-in things like a code minimizer and lint-checkers.


In Shopify you can edit your files in the Theme Editor (browser based), but most professional designers I've spoken to use Vision to get a site up and running first. Vision is a stand alone tool you can run from your desktop and most importantly allows you to use whatever editor you like to create the HTML/CSS. There is also the awesome TextMate bundle.


Lemonstand chose to store source files in the database making it impossible to access them via the file system. They are effectively off limits to desktop HTML editing products. Having said that, the editor in Lemonstand actually knows about HTML markup, so it is better than the Shopify one in that respect. But... Compared to a real HTML editor it is a still short of the mark.

Oh, you want to use your own version control system? Ain't. Gonna. Happen.

3. Not jQuery Friendly


In Shopify you can use any Javascript library you like with impunity. They make no assumptions, and there are no limitations.


You can of course use jQuery in Lemonstand, but the problem arises in the design of their Ajax implementation. Their "front-end library" utilizes Mootools to do the Ajaxy thing, which is fine in and of itself, but the problems I had were around trying to get jQuery validation working on a jQuery UI dialog backed by an Ajax submitted form. I couldn't find a way to get these to play nicely with Mootools after considerable effort so I had to give up after I realized that you have to use Mootools to do Ajax submits in Lemonstand.

Lemonstand said "Everyone has personal pref & that's all you're saying" - exactly! My preference is to use jQuery for Ajax. Why are you making me use Mootools which doesn't work with the plugins that I am very proficient in because I use them on every other site I do?

Summing up

There is no doubt that "in LemonStand you can customize anything, in any way, period", but that completely misses my point. Shopify also does this, but in a simpler more elegant way.

I'm really disappointed in the way Lemonstand responded to my feedback. There are lots of ecommerce products out there and each has their niche. It is important to find solutions that are a good fit in terms of  feature/function (I had initially recommended Lemonstand because Shopify doesn't do customer logins yet), but it is equally important to me that there is cultural alignment - open and willing to listen to feedback from customers. Unfortunately for Lemonstand, this is a deal-breaker for me.