How to choose the right technology for your next CMS project

Written by petrpalas | Published 2018/07/05
Tech Story Tags: web-development | javascript | wordpress | react | development

TLDRvia the TL;DR App

Having spent over 15 years in the CMS world, I can say this industry never gets boring. In fact, it’s been evolving even faster in the recent years. With all the emerging devices, frameworks, APIs and cloud options, there’s always something new to learn. The question every developer asks: How do I choose the right technology for my next CMS project, and what skills should I learn?

Source: https://pixabay.com/en/children-fishing-teamwork-together-1807511/

#1: Traditional or headless CMS?

Headless CMS has been a controversial topic for developers in the past two years. That’s no surprise given the disruptive potential it has for the whole CMS industry. However, is it the right choice for everyone?

Regardless of the controversy, it seems that developers find the concept very attractive.

According to the State of the Headless CMS 2018 survey conducted by Kentico among almost 1,000 CMS practitioners earlier this year, 29% of respondents who know headless CMS have already used one and additional 38% plan to use it in the next 12 months.

When do you plan to use a headless CMS? (n = 526; only those who knew what headless CMS was were asked this question)

Those who already used a headless CMS are highly positive: 63% love the idea of headless CMS, and 30% say “I like it, but it has its limitations.”

With this sentiment, it’s very likely we will see strong adoption of headless CMS in the nearest years, and developers should start paying attention to this new phenomenon.

#2: Which languages and frameworks?

Becoming fluent in some language or framework requires a significant time investment.

In the world of traditional CMS, the choice of CMS is often connected with the programming language you prefer.

That’s something that becomes irrelevant in the world of headless CMS, as you can use any language to call its API.

These are the most popular languages and frameworks used by CMS developers according to the State of the Headless CMS survey:

Technologies used by developers (n=526)

JavaScript is — unsurprisingly — a clear winner. On the back-end side, PHP is the clear winner — again, no surprise, given the size of the WordPress and Drupal community.

However, when we look at developers who already use headless CMS, node.js wins over PHP:

Technologies used by those who already use headless CMS (n=137)

What it means for you: PHP may lose its traction as people adopt headless CMS. Thus, sharpening your node.js skills may be a more future-proof investment.

#3: Self-hosted open source, managed hosting, or SaaS?

Other choices developers must make are “Which CMS hosting model should I choose?” and “Should I go with an open source or commercial solution?”

Traditional CMS combines its own code and the front-end presentation written by the developer in a single monolith. Its architecture requires that you have a high level of control over the CMS code and its hosting environment. That’s why developers have historically preferred to host the CMS themselves.

However, headless CMS comes with a very different architecture: it strictly separates the CMS back-end and presentation layer.

This separation allows vendors to provide headless CMS in a true multitenant SaaS model and lets you focus on developing your website or application using its REST or GraphQL API.

Interestingly, most developers (63%) still prefer a self-hosted open source model even for headless CMS so that they can retain total control over the CMS and avoid vendor lock-in.

While there are some good reasons for choosing such a model in the traditional CMS world, I believe that the benefits of the SaaS model will prevail as companies explore more agility and lower maintenance costs.

Which of the headless CMS models do you prefer? (n=430)

#4: Monolith or microservices?

With a traditional CMS, you use the CMS as a platform and build your website on top of that. At first glance, this makes perfect sense because you get a lot of out-of-the-box functionality, which means that even a less-experienced developer can quickly build a sophisticated website.

The problem is that your code is tightly coupled with your CMS, which means that you can’t use a different programming language and that the CMS might not work well with the latest front-end frameworks. And, when you decide to move to another CMS, you typically have to rewrite your code from scratch.

That’s why developers increasingly prefer a microservices architecture where CMS is just one of the services they use.

They combine their own microservices and third-party APIs, such as SendGrid for emails, Auth0 for authentication or Stripe for payments. It gives them more flexibility and independence on other solutions and vendors. On the other hand, this approach may require more coding and stronger development skills.

It’s no wonder the headless CMS becomes so popular among developers who use microservices. According to the report, 30% of developers already use microservices, and those who do are twice as likely to be already using headless CMS (39%) than those who don’t (19%).

Do you use microservices to build your applications? (n=711)

The move toward the microservices architecture also has a significant impact on how you think about your career development: In the past, you needed to learn the specifics of a CMS and how to develop with it.

In the API-first world, such knowledge becomes mostly irrelevant as you only need to learn relatively simple APIs.

My advice: Instead of learning a specific CMS, invest your time into understanding the microservices architecture and improving your development skills.

It’s all about mindset

The CMS market is in the middle of a major technology transition. It moves from web-first, on-premise, monolithic CMS towards content-first, cloud-first, microservices-oriented model.

Making the right choices in this transition is not easy. At the end of the day, the deciding factor isn’t the technology itself, but the innovation appetite of you and your clients:

If you want to play it safe and failure is not an option, you will most likely choose a traditional model.

If your goal is to gain a competitive edge by developing some innovative projects, you will choose the headless model.

There’s no single answer for every project — you need to choose the combination that works for you and your clients.

From the career perspective, however, there’s no point to wait — make sure you’re on top of the latest trends. If your clients or employer aren’t ready for this, build some innovative side project to keep your skills up to date.

If you enjoyed this article, please clap it, share it or post your comment below.

If you’re not sure whether headless CMS is right for you, see my previous Hacker Noon article:

Moving to a Headless CMS? First Change Your Mindset!_If you do not change how you think about content, your headless CMS project is destined for a failure._hackernoon.com

Do you think about building your own CMS? Read this first:

How I built a CMS, and why you shouldn’t_In the past 15 years, I’ve written five Content Management Systems and built a leading CMS software company. Now let me…_hackernoon.com

Full disclosure: I’m the founder of Kentico Software, a leading CMS vendor behind Kentico Cloud, the cloud-first headless CMS. Although I wrote this article with the best intentions, my view may be biased.

You can download the full version of the State of Headless CMS 2018 report at https://kenticocloud.com/state-of-headless-cms-2018 (direct download, no forms).


Published by HackerNoon on 2018/07/05