Drupal is amongst the top ranking CMSs in the world, its capabilities, both on the front-end and the back-end has made it one of the very best. Yet there were many who thought Drupal lacked somewhere, especially in harnessing the hottest technologies available. And Drupal had the answer to it with Decoupled Drupal.
Decoupled Drupal has generated a lot of buzz around it, making it almost ubiquitous in the industry. The full separation of the structure from the content has aided the content management systems with appropriate means to accelerate the pace of innovation and this is the primary reason for Decoupled Drupal to gain an edge over its competitors.
If you are reading this blog, you might have some knowledge about decoupling or the buzz around it might have pulled you in and now you want to try and see whether it is suitable for you or not. Before we get into that, let me give you a clearer picture of what Decoupled Drupal actually is, even if you have some idea of what it is. So, this blog is going to accentuate all the aspects of Decoupled Drupal to help you understand whether it indeed is the right choice for you or not.
What is Decoupled Drupal?
Traditionally, websites operated in a similar fashion to a magazine, meaning they provided static communication to the users, wherein the user is only a witness and not a participant. This system worked for a long time, but no more. Today, websites excel because they are interactive and not just one platform, but many. Phone applications, social media and the answering of client questions through chatbots, all of these have altered the audience’s expectation of websites and consequently the web builders are trying to find ways to improve their user’s experience.
Drupal, even in the conventional sense, was equipped to handle multiple channels. A Drupal website can be accessed through multiple devices, be it computers, tablets or smartphones. This speaks for Drupal’s versatility and its flexibility, which is why it became so popular. The monolithic Drupal with its ability to store content, present it to the user and create an editorial interface makes it proficient enough to run websites, yet people want more. Since flexibility is the equivalent of Drupal’s middle name, it provides yet again. Get a complete outlook on differences between monolithic and decoupled Drupal architectures here.
In simple terms, the Decoupled Drupal gives room to new technologies on your website, so that they can also work their magic on them. With decoupling, you will be able to segregate your front-end from the back-end and use React and node.js for the former, while the latter would be managed by Drupal. So basically, you will have the best of both worlds, the excellence of Drupal and the many front-end technologies available in the market.
Let us look at some of the technical aspects of Drupal to get a better understanding of decoupling.
- The speed and performance of Decoupled Drupal sites is usually seen to be higher than the monolithic Drupal sites.
- The technical stack in Decoupled Drupal is usually seen to be quite complex.
- The workflow from the front-end to the back-end is loosely connected, but the connection never falters.
- The editors enjoy full control over the content, however, additional effort may be required to preview the content.
- The RESTful web services have allowed Drupal 8 to become an API-first back-end serving web applications, which is absolutely necessary in decoupling.
To get a complete picture of different options of decoupling Drupal, read here.
Why Should You Decouple?
You would only be willing to try something, if you know that you are going to benefit from the trial. Am I right? The same is true for Decoupled Drupal, it has only been able to gain traction in the industry because it is advantageous to the developers. It is these advantages that become the reasoning behind implementing Decoupled Drupal architecture.
Yes, it builds creative websites that have independent components making development easy and smooth. A front-end developer would not have to be reliant on a back-end developer to make a change in his presentation layer, nor would a backend developer have to worry about the impact of his changes on the presentation layer. So, can this be the only reason to take on the Decoupled approach?
Decoupled Drupal brings along several advantages that are single-handedly responsible for its adoption. Let us shine some light on these.
The foremost reason as to why decoupling should be taken up is because it enhances your performance more than you could have thought. The separation of concerns means less request time and that consequently makes your website respond faster and performance automatically enhances.
With the risk of repeating myself, I am still going to say that when you decouple, you create a clear cut separation between the front-end and back-end. This can be interpreted to mean that both the front-end and the back-end can develop at their own pace without thinking about the effects of the same on the other. They work in parallel. As long as a sound API is in place, development won’t be blocking work since the work is being done independently.
And there is also the fact that the risk of re-platforming becomes almost non-existent with decoupled Drupal developments.
Apart from this, the 'decoupling team' is usually bigger than a 'monolithic team'. As the saying goes, the more the merrier; the higher number of developers means more ideas for development and faster development. A five-man team is going to bring more results than a one-man team. Do you agree?
Impeccable Publishing and Multiple Consumers
Decoupling comes with an omnichannel presence and the ability to support multiple consumers. Let us understand how.
The Decoupled Drupal architecture works around the API-first notion, which basically means that all your consumers are on a leveled field. This makes publishing all the more easy. You can create content for your website and with just a few clicks, it could be published on multifarious platforms, including social media, intranet and your microsites. Your content would be reused in many different ways and many different times. Since the content is not rigid to the current form of your website, you would also be able to reuse the same after a total website redesign or two.
The Decoupled Drupal is not only the driving force behind your website, but also all the other apps you have, be it on smartphones, set-top TV boxes or maybe the gaming consoles.
Impeccable Team Management
Decoupled Drupal may mandate a larger team, but it, in fact, makes the working of the larger team smooth and result oriented. You could have 50 developers on your team, yet there won’t be any overlapping concerns. Why? Because decoupling clearly segregates the duties of all developers.
Apart from team management, it is also quite easy to create a team. You may very well know that there is a dearth of Drupal specialists in the market, however, developers proficient in JS are in abundance, for lack of a better word. This makes the process of creating a highly competent team easy, since you do not have to find developers who are skilled at every aspect of website development.
Decoupling and the latest technology go hand in hand, and you must know that the latest technology means more innovations. Decoupled Drupal architecture can aid you in implementing frameworks that are top-of-the-line. Be it Angular.js, Backbone.js, Meteor.js, Node.js, or Ember.js, you can work with any of these.
For creating UIs, you can take up the React library;
For tracking state, you can take up Redux;
For mobile applications, you can take up Google’s AMP or Polymer tools.
Using all of these would only accelerate your innovative streaks and make your web applications as innovative as it can be. Learn more on how marketers can extract the power of decoupled Drupal here.
When Should You Decouple?
By now we have established enough facts that Decoupled Drupal is a package full of advantages. Now, it’s time to delve deeper and seek the accuracy of circumstances in which it can be put into effect.
When your back-end and front-end needs are separate
When you have the right team
Having a need for decoupling is not going to cut it for you, you also need to have a skilled team to execute the process of decoupling Drupal. The decoupled approach divides your team into two subdivisions along with your project. Each subdivision would be responsible for a separate codebase, which would later become a complete tech stack. These teams would have to work in sync, although parallely to make the project a success. Provided that you have the team, which has all the varying skills and experience required for the decoupled project, you can and should take on decoupling.
When you have clearly defined data roles
For decoupling, you must also be in tune with your data needs. Since Drupal would only act as a content repository in the Decoupled approach, it becomes essential for you to remember the communication lines. In this architecture, you will end up using other data services. Such a situation demands clarity, you should be clear as to how you want the data interaction to the front-end, do you want it directly through the service or through Drupal’s API.
When you can support new architecture
Moving towards a decoupled approach means you would need to evaluate your hosting provider. The architecture post decoupling should be under its handling capabilities and that needs to evaluated beforehand. From security measures to additional caching, the host should be able to handle a non-Drupal front-end. If not, check how long your contract is and work from there.
When you have to cater to different channels
The concept of write once and publish everywhere has become synonymous with Decoupled Drupal. The ability to cater to various publishing platforms comes with ease through decoupling. So, if you have a single application that is supposed to dispense content onto various channels, decoupling is going to be great for you. Although it would take some editorial control away from you, the fact that your control will be reused, without much effort from your part makes up for it.
When metadata holds prominence
Metadata is often considered to be a part of the page content, it encompasses the microdata such as ad targeting, meta tags and JSON LD. When content is shared on multiple platforms, the metadata becomes a prominent part of the back-end, as opposed to the front-end. So, metadata would only be shared on different publishing platforms when it is decoupled, similar to the typical content.
When redirects are not essential
The redirect logic only adds complexity to the decoupled architecture. So, it would only be prudent for you to decouple when you do not need control over the redirects and your architecture will support multiple redirects rules being combined as one.
When Drupal is bringing in more work
Drupal can be as easy to use as it can become a hassle, this depends on your perception of it. For many, Drupal seems to bring in more work than not. The many built-in features are the cause of it. The node edits, tabs and screens, you would not use all of them, so they just add to your workload because you would always be working around them.
The simple example of evites would help you understand this better. The content structure would be easy to build, however, creating the evite, its customisation along with the addition of the recipient, preview and actually sending it is a whole other ball game. In such a scenario, decoupling helps ease the work.
When you have a static menu
The traditional Drupal can effectively manage your menu lists, while doing the same in the Decoupled Drupal can become tricky. It is always preferable to avoid complexities as much as possible, so if your site has a static menu, which can be created in the front-end application, decoupled Drupal would suit you to the T.
If you and your web applications are aligning with the aforementioned scenarios, then decoupling can be beneficial for you. If not, well you are intelligent enough to answer that.
When Not to Decouple?
Decoupled Drupal architecture indeed paints a prettier picture that is more than appealing. After reading up till now, you might have made up your mind to take on the Decoupled approach and part with the coupled Drupal and you might even be right. The decoupled Drupal could be the right choice for you, but you cannot be totally sure of that without taking into consideration the challenges it is going to dredge up for you and your site. Have a look at these first and then decide for yourself.
When you do not want to increase costs
The foremost consideration when deciding on a project has to be its financial implications. Whether your pocket allows you to take it on is one of the most crucial questions to ask. Although Drupal is open source, requiring little to no costs of implementation, Decoupled Drupal is a whole other ball game, since you will be building a front-end that is entirely or partially independent of Drupal. And this is the reason why decoupling becomes the opposite of cost-effective.
- Features that would have been free would need to be built from scratch by your developers like Website Preview and this costs money.
- The creation of a sitemap is often done by using a third party XML sitemap application, developing it on your own would cost so much more.
- The creation of a good API that would aid in future developments rather than constrain them costs more money.
- The decoupling team also becomes an expensive affair since more number of developers need to be hired.
Overall, the Decoupled Drupal requires massive infrastructural investments simply because you will be losing a high degree of Drupal’s out-of-the-box functionality. So, the question comes again, can you afford it?
When you do not want to increase complexity
Decoupled Drupal comes with a 180° change and this change mandates another 180° change in the mindset of the developers and the content authors. It would be suffice to say that it becomes complex. The simple fact that editors would not be creating pages, but reusable content that is well-structured can become a lot to digest.
On top of this, the infrastructure becomes cumbersome and complex as well. The simplest of tasks like previewing content before publishing it is no longer an option that is available. Since the content is to be posted on multifarious platforms, the task would be meaningless anyway.
You would also need to be extra vigilant about the coding, if the front-end logic is encoded in the API, the recipe is going to burn your tastebuds.
Taking on the complexity of Decoupled Drupal would only turn out to be prudent, when you have multiple sites and multiple consumers.
When you do not want to lose page control
Control is another thing you part with along with Drupal’s out-of-the-box functionality. If you think that, as an editor, you will have free reins over the placement of your content on the page, then you, my friend, are mistaken. Editors have non-existent control over the presentation of their content, the URL included. And if you want to have the control, it can be done by certain tools. However, the process to get it done would be extremely complex.
When you do not want a web of systems
When you decouple, you don’t just do it for an app or a site. So, when you decouple, there is a high likelihood that your team is going to build much more than a website and a JS app, rather a web of systems. These networks require a lot of build and testing mechanisms and that adds to the complexity of Decoupled Drupal. Then, there is the issue of human intervention. There are many decoupled sites that manually integrate the API, which becomes a hassle when the number of clients is on the higher side.
Continuing on the point of complexity, Decoupled Drupal creates a web of systems. It would seem to work until you have to debug. Once that point comes, the web of systems turns into a nightmare because you do not know where to look. Fixing a broken link in a web is far more difficult, since you can’t be sure whether the problem lies in the API or the request.
The Right Choice
Yes, Decoupled Drupal demands a lot of work and it is as costly as it is time-consuming, however, its benefits easily trump all the drawbacks.
Yes, Decoupled Drupal is going to increase your costs initially, but in the long run, it would reduce your overall development costs.
I would say that Decoupled Drupal is always going to be the right choice as long as you know that you can and will overcome its drawbacks. Regardless, if you believe that your current monolithic Drupal is too good to part with and it is accomplishing all your goals, you might have to re-think the decision of decoupling. It would only serve you its benefits, when you actually have a need for it. These success stories on Decoupled Drupal would give you a glimpse of your future project and its success. So, what will your choice be?