Geek Talk: Interview with Developer John D. Wells

Related Snipcart project: The M Project

For this Geek Talk entry, we're chatting with developer John D. Wells. His company One Darnley Road integrated Snipcart on The M Project website, a contemporary online fashion boutique. The site is run by two passionate sisters who, in their own discerning way, managed to combine the best of both worlds: a luxurious, high-fashion shopping experience inside a fast, user-friendly e-commerce environment. You can dive into The M Project's online experience here, and shop for their stylish clothes and accessories here.

Developer profile


Full name: John D Wells Jr

Role: Developer/Technical Director at One Darnley Road

Favorite programming stack: LAMP

Favorite programmer: Anyone who comments his or her code is my favourite.

Favorite superhero: Meh, I’ll just go with the Man of Steel.

Favorite quote: How about Einstein’s “Everything should be made as simple as possible, but not simpler.”

Favorite book: If the Internet were a book, that would be it - mostly the code parts. But the book I have on hand right now is The Decision Book, Fifty models for strategic thinking by Mikael Krogerus and Roman Tschäppeler.

Favorite CMS: Craft FTW!

Years of experience: Over 15 years, if I can remember back that far. Ugh.

Interview with John: E-commerce, front-end frameworks, Craft CMS & Snipcart

As a developer, what do you think of the current state of e-commerce? For instance, have you had any experiences with other e-commerce solutions?

It may finally be coming of age. I still haven’t decided if I want e-commerce to be handled by the CMS that powers our site content, or if I want to offload it to a 3rd party service (like Snipcart). There is a strong argument to stick to what you’re good at - and so far I haven’t really seen a CMS be good at e-commerce, at least not in the same way they’ve become good at content.

It’s important to give up on the notion that e-commerce might ever be “easy”, because it just isn’t - shipping fulfillment, inventory tracking, transactional emails, gateway timeouts, customer accounts… As soon as a client utters the word “shop”, a whole heap of tasks and risks collect at your feet.

What do you think of frameworks such as Bootstrap or Foundation? Do you use them, or prefer to build everything on your own?

Bootstrap was very useful for getting our feet wet with LESS, and at first glance it looked like it might be a productivity boost during development. However, over time I found that we spent too much effort undoing a lot of things that Bootstrap wanted to do out of the box. I used Foundation once and found it buggy and limiting as anything other than a prototyping tool - and since it doesn’t support IE8*, it’s still not a relevant tool for us.

For the past couple of years we have simply used Preboot (or more specifically the SASS port), which as it turns out was the early incarnation of what would eventually become Bootstrap. I’m interested in giving Bourbon a go, but I’m nearly done compiling our own library of mixins and other utilities (and getting heavily into SassDoc in the process), which better suits our particular approach to development.

*Just a quick word about IE8. Yes, we have international clients who “enjoy” a potential user base on antiquated machines. But more so, I consider IE8 support to be a rather lo-fi (and perhaps somewhat arbitrary) litmus test for a site’s underlying code stability and broader accessibility - especially when I prefer supporting IE8 without polyfills or other JavaScript (though in reality it doesn’t always work out that way). Now, I’m not saying that all of our sites look perfect on IE8; I’m just saying we make an effort during development to maintain a usable and performant experience.

Why did you choose Snipcart for your e-commerce project?

We had already chosen Craft as the CMS platform, and had hoped that by the time we were in the build phase, one of the few e-commerce add-ons in beta would have been released. It was a risky calculation that didn’t work out. So we found ourselves needing a workaround solution that could get our client’s shop up and running without blowing the already established budget. I sat in on the Google+ Hangout that was run with Anna Brown, and was impressed with the apparent simplicity and speed with which she was able to get her shop up and running.

What alternatives did you compare it to?

Aside from getting a private preview of some of the aforementioned beta plugins for Craft, we had also considered Shopify. We have a client running on Shopify using a custom theme we built, so we were familiar with the platform and knew it was fully capable of running a solid store. However the “integration” options with Craft were not to our liking, and we also knew from experience that in some very peculiar ways we’d have our hands tied if we moved the entire site, content and all, onto Shopify.

We had also looked at Foxycart, having known about it for years, but community feedback and reviews put us off. We had also looked at integrating with Moltin, but knew it would blow the budget.

How did the integration with Craft go?

Craft is incredibly fun to work with, seemingly infinitely flexible, and perfectly suited to build products that can be placed into Snipcart. Integration was a breeze.

In fact, integration was so easy that we had time left over to experiment around how to best set up Craft to suit how our client could edit and maintain their products. I’ll spare the details, but we played around with 2 or 3 different ways of building products & their variants, controlling inventory, sale status, etc, while also taking into account front end caching, previewing, new product creation vs edit product workflows, etc. Along the way we even worked on some rather clever custom plugin development. In the end we settled on the simplest solution - a classic case where trying to be overly clever as a developer often does very little to help your client.

Did you use our API to integrate with other systems? If so, which ones?

A little bit - we have custom shipping options set up based on the customer’s billing country, and we also reduce product inventory after a successful purchase. All of this was built by customizing Matt Stein’s Snipcart Craft Plugin. With all of his code already in place, it was really easy. I wish there was more budget to do further API integration, to bring more of Snipcart’s data into the Craft control panel.

On the front-end side of things, how’d you find Snipcart’s cart customization?

Not too bad. On occasion we had to request a few extra CSS classes to be added so that we could hook into elements that we wanted to style but couldn’t, and I was pleasantly surprised at how quickly you guys answered the call.

I’m not a huge fan of how specific some of the CSS selectors are (e.g. #snipcart-main-container table#snipcart-items tr th), but I can appreciate that building a product which might be dropped into any hostile environment, it’s probably a necessity. A couple of elements we also would have liked to move (for example, moving the subtotal to sit beneath the price columns), but on the flip-side the constraints allowed us to not get too carried away with trying to customise things.

As it turned out, the design of Snipcart as a cart modal was exactly in line with the site’s design, as we decided to emulate an Instagram-esque feel where products each appeared in a modal, allowing a customer to quickly browse through the shop catalogue. So we feel the result is a seamless user experience.

How much time did it take you to complete your Snipcart integration?

I wish I tracked our time more accurately to tell you. Probably a week all told - which some might consider a lot, but I’m trying to account for everything that went into it: front-end tweaks, outputting markup & JS to control variant and product inventory, product/image appearance in the cart, configuring the web hook to reduce inventory, and the custom shipping endpoint. Plus, simply getting to know the platform. When you add it all up, a week is incredibly fast for a professional result.

Did you rely much on our documentation?

Absolutely - and it’s clear, simple, consistent. Documentation is a critical element in building trust in a product. I am of the very strong opinion that until the documentation is finished and polished, you do not have a commercial product worth buying. I remember seeing a developer release a commercial EE plugin sans documentation, clearly in an effort to be the first to market, and it categorically put me off. Your customers deserve good documentation - and it’ll ease your own support obligations, so everybody wins.

What could we improve to make Snipcart an even better e-commerce solution for developers (or just for you)?

More payment gateways would be my number 1 request - if not an API or similar to allow us to provide our own (although I don’t know exactly how that would work in a SaaS model). But I’m struggling to come up with other big features you might be missing.


I'll end this one by sending a huge, virtual thank you to John, who took some of his precious time for our little geek talk. We hope you enjoyed discovering another inspiring dev's thoughts and experience as much as we did. Of course, we invite you to chip in on the whole thing: hit the comments to discuss any of the stuff we covered in the interview. John and our team will be happy to answer any questions. And if you found this article entertaining/inspiring, please, take a second to share it on Twitter.

We’ll be back with another featured Snipcart developer in a few weeks tops.

You can follow John on Twitter, and his creative agency One Darnley Road too.

Suggested posts: