Why E-Commerce and CMS Should Be Separated

The original version of this post dates back to 2015. It felt like a necessary (and fun) exercise for us to go back to it today, 5 years later.

At the time, we presented the statement that e-commerce and CMS should be separated as a contrarian one. One that few people would agree with.

But web development has come a long way since then. Today, I bet many devs would agree with that statement.

We must have been right. ¯_(ツ)_/¯

Humblebrag apart, popular dev trends such as the JAMstack promote the use of the right tools for the right job. By connecting multiple specialized services into one project, developers get the best solutions for their specific needs. They ditch the traditional mentality promoting jack of all trades CMSs.

More and more developers and agencies are selling this approach to clients, putting forward benefits like reduced costs and development times. I’ll come back to that later on.

E-commerce is one single piece of that web development puzzle. It can be a complex beast in itself, so why wouldn’t you want to handle e-commerce concerns in a dedicated software?

Time has only reinforced our belief that e-commerce and CMS should be decoupled. The good news is that it has become way easier to accomplish.

Let’s explore that initial statement in depth.

When did we realize this necessary separation of e-commerce and CMS?

moment-of-realization

Let me take you on a short trip down memory lane, before Snipcart was even an idea. We used to be geeks working in an awesome web development shop before our startup days. One day, a client came up to us with a specific need:

I’d like to start selling stuff on the website you developed for me a few years back. But I don’t want a new website, and I don’t want to spend much on this move.

Many agencies would’ve told him no. “We’re sorry, we need to update your old CMS site in order to set you up with a neat, modern e-commerce platform.” But he was one of the first to trust us with his business back in the days, so we told him we’d figure something out.

One morning, while the team was sharing coffee in our office kitchen, Charles came into the room and said:

Guys, what if we injected the products and cart directly into his frontend code, using only HTML and JS?

We were skeptical at first. A few days and lines of code after, we were convinced. Eventually, this one-time solution we came up with became a full product. That product became our bootstrapped startup, which became the profitable business Snipcart is today.

I’d like to tell you that we saw the rise of frontend-centric development and JAMstack coming. Truth is, it came to us as a (welcomed) surprise. And it blew many times past our wildest expectations.

Luckily for us, we happened to fit quite well in this ecosystem as a product. Something we’ve since totally embraced.

Before we turned Snipcart into a full-fledged product, we had already decided to leverage one specific technical insight: the strong distinction between great CMS and great e-commerce platform requirements. Snipcart was built on that precise foundation.

For us, delivering on that promise also meant one fundamental characteristic for our product: it needed to be tech-agnostic. Not restraining devs from working with a specific stack or XYZ website building tool. This has been at the core of Snipcart since the very beginning.

A few definitions: CMS vs. e-commerce platform

What is a CMS?

CMS stands for Content Management System. WordPress, Craft, Umbraco, Squarespace, Ghost… there are enough CMSs out there for everybody’s tastes. Their initial purpose? Allow users to manage website content. That’s it.

They were a response to all the custom-built websites forcing customers to contact their service provider every time they wanted to change something on their site. Fast-forward a few years: non-technical users are now completely autonomous when it comes to web content edition. CMSs are all over the web.

So what are they today? They are a tool for content, brand, and marketing. They allow easy content management and flexibility. Depending on the CMS, many will offer full design control, pre-made pages and architecture templates, and more. In other words, they allow brand and content management. They are a marketing tool in today’s online business world.

But they’re ever-changing, not frozen in time for a second. People building these CMS have taken the rising interest in the separation of concerns seriously. Case in point: the popularity of headless CMSs.

headless-cms

The likes of Sanity, DatoCMS, Directus, TakeShape, and Strapi are focusing their efforts on what CMSs are great at: managing content. Their APIs then allow developers to work with any beloved frontend techs and third-party services.

Even big names from the first wave of “monolithic” CMSs are embracing the headless trend—e.g. WordPress with its REST API.

To get a good sense of how headless CMSs can be a good fit for your e-commerce projects, I suggest this comprehensive guide.

What is an e-commerce platform?

An e-commerce platform’s number one purpose is to allow you to sell online. People typically use it to sell products, process payments, and manage orders/payments. In that sense, it’s an operational tool to manage (and process) your sales. A management application.

This administrative tool is there to handle sales processing and required back-office management. Not brand marketing and visuals.

Gotta keep ‘em separated (here's why)

This brings us back to our main focus here and why you should keep e-commerce functionalities separated from other website’s functions. Putting it bluntly:

Administration should never mess with the marketing and vice-versa.

We often repeat that we’re in a best of breed model technology-wise. This should reflect on the tools we choose for the various tasks we need to accomplish.

The CMS is there to manage “public” content; the e-commerce platform, on the other hand, only needs its shopping cart and product information to be public. The real strength of the administrative/operational tool that is an e-commerce platform resides in all its amazing back-office features.

Plus, let’s face it; most CMSs’ ambition to manage everything (content, themes, forms, comments, reviews… the list goes on) on your website is big enough without even starting to handle the complex machine that is e-commerce. Seen this way, it makes sense to manage everything specific to an online store on a dedicated platform.

Most of the functions associated with e-commerce don’t even come close to the nature of “managing a website”. Things like shipping, tax & inventory management, orders, invoicing, etc. have nothing to do with what the core of a content management software should offer.

Managing your business vs. managing a good-looking, performant website are both important. But they are two very different tasks. Thus the need for the best available tools to handle both.

So basically, combining CMS and e-commerce solution leaves us with a merge of two different platforms. It kind of feels like we’re back in the 90’s, with jam-packed black box systems. As if no APIs, no webhooks existed, and interoperability between systems was a dream.

But it’s not the 90’s anymore. The way you display products and design websites shouldn’t dictate the e-commerce “sales” tool you’re using.

Enjoy JAMstack’s many benefits

The static web development trend is a good reflection/extension of this independent relationship. Many cool static sites are living proofs that e-commerce doesn’t need a CMS.

In most cases, the involvement of non-technical users makes user-friendly content management mandatory. However, you’ll find that even very lightweight CMSs such as TinaCMS or Stackbit can more than often do the trick.

Using the tools available in the ever-growing JAMstack ecosystem (SSGs, JS frameworks, headless CMSs, etc.) comes with many benefits, for both developers and merchants. Mainly:

→ Performance: Replacing database queries by CDN-based content serving allows for faster load times.

jamstack-benefits-speed

→ Security & reliability: Withdrawing complex server-side architectures reduces potential breaches and the need for constant maintenance.

jamstack-benefits-security

→ Reduced costs: By reducing development time and ditching servers, databases, and plugins, you’ll inevitably cut operational costs.

Plus, it brings a new sense of fun and flexibility for developers to work with the tools they love and adapt for every new project.

How we see things at Snipcart

Like we said earlier, we believe CMS and e-commerce platforms involve different use cases. For this reason, we believe they should be independent of one another. We believe today’s technology allows us to easily integrate them with one another without the need for a turnkey, black box solution.

That’s exactly why Snipcart in itself is two-fold:

  1. A JS/HTML shopping cart you can plug into any website and customize at will.
  2. A neat back-office dashboard to manage your online shop.

Whatever CMS you like, whatever technology you love, Snipcart will allow you to stay independent when it comes to using your favorite marketing tools.


Whether you agree or not with us, we’d love to hear your thoughts on the subject. Feel free to hit the comments, friend. And if you’ve enjoyed the post, go ahead and share it on Twitter.

Suggested posts: