Tag1 Consulting: Laravel, the evolution: challenges with monolithic apps and fully decoupled systems – finding a middle ground – Pt. 2

There are pros and cons to every type of software installation – from ease of use and maintenance, to separation of concerns, to division of expertise. Finding the system that works best for you or your company may require a lot of research and some weighty decisions. Does a single system meet your needs? Do you have a great back end setup, but you need to separate your front end from it for business reasons? In the second installment in our three part series on Laravel, Managing Director Michael Meyers talks with Senior Software Engineer Laslo Horvath about the challenges and pitfalls of systems – whether they’re decoupled or monolithic. Learn more about the factors of each, and if you really need to go one way or the other – or if a hybrid approach is the better way to move forward. * Part 1For a transcript of this video, see Transcript: Laravel with Laslo – Part 2. — Photo by Dan Meyers on Unsplash

Mon, 05/10/2021 – 06:56

Go to Source

OpenSense Labs: The Merits of Open Source DXP: Can Drupal Provide Them?

The Merits of Open Source DXP: Can Drupal Provide Them?
Gurpreet Kaur
Mon, 05/10/2021 – 16:09

Digital experiences have become an integral part of everyone’s life today. Be it the provider of the experience, being the businesses or the receiver of those experiences, which would be the users; both benefit a great deal from a sound and seamless digital experience. 

For the business to provide an impressive digital experience and the user to enjoy it, a DXP or a Digital Experience Platform is somewhat necessary. Through the software’s management of multiple channels, devices and every user touchpoint, it is able to provide personalised user experiences. Its forte is its ability to converge multiple technologies to provide the best possible experience to the user, making their journey a memorable one. With the use of the latest technology, the people building the experience are also pretty gleeful since they get to explore whatever is new.

So, if I had to define a DXP, I’d say it is a platform that is equipped to handle and deliver all the digital experiences of an organisation and perpetually work towards enhancing them. And if I had to mention DXP’s formal definition, I would quote Gartner

A DXP is an integrated set of core technologies that support the composition, management, delivery and optimization of contextualized digital experiences.

In this blog, we’ll be talking about these Digital Experience Platforms and all that they come equipped with, however, we’ll be focusing on a particular category, which is open source DXPs. Before I get into that it would be more appropriate to compare open source DXPs to their counterparts, which would be proprietary. Let’s get started.

Open Source DXP in Comparison with Proprietary DXP

There is a table that shows different aspects of digital experience.
Source: Infosys

Based on the above image, you can clearly see that a DXP encompasses every aspect of the digital experience that an organisation may want to be taken care of. 

From user touchpoints to targeted campaigns; 
From content services to social services; 
From commerce to searches; 

DXPs are pretty versatile in their offerings. 

Now that we have a basic understanding of what a DXP is and what it does, let’s look at two of its major classifications, being open source and proprietary software. 

In essence, the difference between open and closed source software lies in the ownership. Open source by definition means a platform that is open to everyone, everyone can use it and anyone can contribute to it and there are no restrictions in the form of licencing fees or other charges. On the contrary, proprietary software, or DXP in our case, would be closed in plain terms. It’s a software that would be used by people who pay for it and the majority of the development comes through the proprietor himself.

Talking in terms of DXP, there are three main differences between an open source and a proprietary DXP apart from the licensing fees and charges. Let’s look at them. 

Parameter  Open Source DXP  Closed DXP 
Licensing fees Not required, it is free to use Mandatory
Choice  Abundance of choices; you can pick and choose the features you want to use The choices are limited; you have to use the DXP in areas that were already optimised
Integrations  Integrates seamlessly with other software Integrations are minimal 
Growth  Has a faster growth rate due to heightened flexibility  Fast, but not as fast as the open source

Open VS Closed Choice

The first major difference between these two categories is the level of choice they offer. If I talk about the open source DXP, the choices are plenty. You’d never be locked inside the software. You do not even have to use the entirety of the software, you can simply select the aspects which require improvements and leave the rest. There is also the option of customisation, you can build on top of the DXP you are using without anyone questioning you. You could use it for one of these or all of them.

Web content management; 
Web personalisation; 
Data and analytics; 
Marketing automation.

Now taking the closed DXP into consideration the choice is pretty limited. You choose a closed vendor and you are locked inside of their software. There isn’t much or even leeway to explore outside that locked space. You are all in. 

Open VS Closed Integrations 

Next difference is in regards to the integrations. An open source DXP can also be described as a combination of multiple products provided by multiple vendors. Using a DXP like Drupal, which is open source, you can integrate your digital experience with a platform like SalesForce with ease.

For the closed DXP, the story is a little different as the integrations are pretty limited as it is a one stop destination. You will find the majority of the services a DXP can provide, but they’ll be from that one vendor only.

A closed DXP is like one single brand, wherein you’ll find the products and services of that brand only, while the open source is like a supermarket, wherein you can find the products of almost all the major brands.

Open VS Closed Growth 

Finally, the open and closed DXP’s growth also paces at different rates. This is because of the kind of flexibility and contributions they have respectively. 

The open source DXP would be immensely flexible because of its open foundation. This means that it’ll always be open for adaptation as per the changing market requirements and its growth seamless and quick. Add to this the fact that there is an entire community to contribute and make necessary improvements into the software. 

In comparison, the closed DXPs also continually evolve. There are certainly improvements made to the software. However, because it’s not open, its level of flexibility isn’t as high as its counterpart. Perhaps that is why the open source software DXP is making strides in the closed spaces as an alternative to them.

Why should you choose Open Source DXP?

So, you know that an open DXP is quite different from a closed one. Since you can only choose one of them for your organisation’s digital presence and consumer experience, you will have to pick one. Based on the previous section, I am sure you would have come closer to a decision. To make it even easier, let me tell you about all the benefits of an open source DXP.

Open Source is malleable to the future 

The only thing we can say for certain about the future is the fact that it is uncertain and that there is high plausibility of change. Future cannot be predicted, so we should not even try. However, what we can do is make ourselves malleable enough to adapt to whatever the future might hold. 

And that is what open source DXP entails with its API-first infrastructure that has the ability to integrate with the future. Of course, by future I mean the tools and frameworks that would reign in the future. Open DXP’s technology stack is indeed ready for the future because it is always ready to adapt. 

An open source DXP’s malleability also helps in improving consumer experience. This is because it makes it easy for businesses to create solutions in accordance with the changing consumer needs. The said solution would provide the most optimal results if it is created with speed and here the open architecture comes extremely handy.

Finally, with open source DXP you have the power to eliminate and replace certain parts of the platform that either do not align with your strategy or are hindering your growth. This makes it highly efficient in the worst of times. To know more, read about the impact of open source in Covid-19, how open source remains recession-free and why large enterprises are leaning towards open source.

Open source lets you innovate to your heart’s desire 

Shared goals; 
United ambitions; 

All of these mean mutual success, all of these mean more power for better innovations and all of that is what open source stands for. Open source is where innovation thrives. Let’s understand the why. 

Have you heard of JAMstack? It stands for JavaScript, APIs and Markup. Back in 2018, it made quite a noise in the realm of marketing site theming. Ever since then it has become the go-to design stack for developers. This stack of modern technologies gives the developer the room to innovate and spurs them on constantly, the results enhanced developer velocity. It creates just the right environment with its new tools and quickness for more innovation. 

If I were to talk in plain terms, I’d say that because open source does not confine the developers with one vendor and only its resources, there is a lot of freedom to innovate. It creates an open culture that allows the people in it to build as much as they want individually and with partnerships through the open connections of open source.

Open source elevates consumer experiences 

Today consumers do not have just one single touchpoint with the business. They can connect to it through mobile applications, IoT, voice assistants and even chatbots. And the consumer expects context awareness in all of these. So, what is the solution?

With an open DXP, you can deliver content that is created by content authors without special emphasis on the channel it’ll be used on. This sounds bad, but it, in fact, is a good thing as it allows content creators and front-end developers to create pieces that are aligned with the target audience’s needs.

Once a piece of content is created, it can be repurposed for the platform and its context can also be altered and further delivered across various channels. This eases the complexity of working with an open framework and makes content quite composable. Moreover, the open APIs make the centralisation of content consistent throughout the channels and devices. 

The result is a holistic consumer experience that has the consumer in control of his interaction with you.

Open source empowers consumer data 

Every time a consumer interacts with you, he leaves some information behind. It’s like meeting someone in real life, with every encounter you will get to know the person more and not the other way around, you can’t be asking the person to introduce themselves every time you meet, that’ll be rude on so many levels. Yet this is what happens when your digital presence has consumer data that is scattered in various departments in data silos that are often inaccessible.

An open source DXP comes equipped with an open Customer Data Platform, which would help you capitalise on the consumer information you already have with you. Consumer data from e-commerce, from customer support systems and CRMs gets accumulated and organised at one place, so that you can actually utilise the information you have about your consumers. These consumer insights are immensely helpful in building forward and an open DXP helps in that. 

Open source has room for microservices 

Imagine a suite of lightweight mechanisms like an HTTP resource API that would be responsible for running many small services within an organisation as one single application. This is called a microservices architecture and it is provided by the open source DXP.

You might think what is the point? 

The points are three benefits you will get from this architecture. 

  1. You’ll get a better handle on your technology solutions; 
  2. You’ll be able to enhance your productivity because of that; 
  3. And you’ll also be able to achieve better scalability as the architecture will fit perfectly to your long term organisational goals. 

Open source caters to commerce needs 

For the gazillionth time, because an open source DXP is open, it can better cater to your commerce needs. Let’s understand this with a comparison to its closed counterpart. 

A closed DXP would have an already established, integrated and rigid commerce platform that you cannot mess with, while an open source DXP could integrate itself with any commerce platform that you want based on your needs. 

So, when the need to add a commerce capability to your digital platform arises, which it will, you would be glad to have chosen an open source DXP. This is because open source is never tightly coupled, so, you wouldn’t have to compromise and adjust to the rigidness of a particular platform, rather you can stand your ground on your needs and capitalise on the platform that aligns with your needs.

Open source offers better security 

Security breaches and data leaks are far too common for anyone’s liking. And when you consider a software that is open to everyone, the threat of these security attacks should be all the more obvious, right? Wrong. 

Open source DXPs are far more secure than closed DXPs and the only reason for that is their openness. With an open DXP, you would always be aware of the vulnerabilities and can take action to improve on it, while a closed DXP, being a proprietary software would consider not telling about those vulnerabilities merely because it’d lose money. You decide, which is better?

Open source saves money 

When you choose an open source DXP, you choose to save money. This is because of two reasons. 

One is because it acts as central management tool that helps you manage multisite as well as give you flexibility, security, control and efficiency it needs. Once you get that, there would be minimal chances of duplicacy of resources, be it in IT or marketing. And that is going to be a worthy investment.

Secondly, an open source solution is a combination of microservices and SaaS, which essentially translates to you paying for only the services you choose and not a penny more.

How does Drupal fair as an Open DXP?

We know what a digital experience platform is, we also know what an open source digital experience platform is, now we’ll talk about a particular DXP that is open source and its Drupal. Having worked with Drupal myself, I can say for sure that it is up there in the list of most impressive DXPs and being a fan, I have to talk about it.

An open source platform that has been around for two decades and is still running strong, Drupal is meant to create the most amazing digital experiences and the support and contributions of its vast community makes that a possibility every day. 

If I had to compare Drupal to the benefits of open source DXP that we discussed in the previous section, I’d say that it fairs pretty well. Drupal as an open source DXP is always to work. Let’s see why. 

API-first build  

The best part about Drupal as an open DXP is its API-first architecture. This makes the creation of multi-channel experiences quite fulfilling. With an API-first approach, Drupal can decouple itself and provide room for new technologies like Vue, React and Angular. You will have the option of selecting the best-in-class products to integrate and build your digital infrastructure, adding the freedom of innovation for your developers. 


Drupal can very easily accommodate your needs and goals and that is what makes it extensible. You can have a small organisation or a global one, Drupal will be able to help you architect your digital presence the way you want, build it and expand it until you keep growing. 

Drupal’s modular architecture makes it all the more extensible. With upgrades being equivalent to installing a new module, building and improving a Drupal site’s digital experience is never going to be a mountainous task. 

Then there is the fact that Drupal, as an open source, allows customisation. You can very easily build your own DXP on top of Drupal. There are umpteen open source DXP vendors, who have actually done that. 


Drupal has a community of over a million and growing. With that many Drupalists in the world, you can be assured that there would be an answer to any Drupal conundrum you may be stuck in. Upon raising an issue, you can always expect the Drupal veterans and contributors to respond and help you out. The contributions from the Drupalist not only make Drupal a successful DXP, but also ensure that it is reliable. 

Here is a video that will help you understand the role of Drupal as an open source DXP. 

Nobody can deny that Drupal is a powerful DXP, however, denying that it doesn’t have any flaw would be unfair too. 

  • Certain advanced features like creating customer profiles or building a neural network become a difficult task; 
  • A/B testing and introducing personalisation is also something Drupal isn’t renowned for; 
  • CDP, an important practical capability for a DXP is one that is missing from the DXP.

I wouldn’t say that these features make Drupal unworthy or hard to work with, not in the least. However, they are something that need to be mentioned. 


Having a digital presence has become pivotal today. However, having a digital presence that does not leave its mark on your consumer is as good as not having one. A DXP is what will help you leave that mark and lure your target audience towards you. And if that DXP is open source that mark would be all the more deeper and you’ll be all the more delighted because of it and I am pretty sure you’d like that.

blog banner
The open sign is hanging on a glass door.

blog image
Open is written inside a red circle on a black background.

Blog Type
Is it a good read ?

Go to Source

PreviousNext: Migrate from drush_cmi_tools for Drupal 9

Drush CMI Tools was the standard approach for config management at PreviousNext prior to Drupal 9. For Drupal 9, Drush CMI tools has been deprecated and replaced by a community-supported project which provides the same functionality — Config Ignore 3.

Config Ignore version 3 removed the dependency on config_filter in favour of using core’s new APIs available for Drupal 8.8 and above. Using this module, we are now able to achieve everything Drush CMI Tools did, with better integration with core’s APIs and event subscribers. This is a huge improvement over the completely custom commands shipped with Drush CMI Tools, and ironed out some annoying bugs with it… No more pesky leftover field maps!

How to upgrade

The upgrade path is quite straightforward. You’ll first need to require the 3.x version of Config Ignore and, at the time of writing this post, you’ll need to apply a patch from this issue. Add the following to your composer.json patches section:

"drupal/config_ignore": {
  "fixes import (3117694)": "https://www.drupal.org/files/issues/2020-05-28/3117694-active-config-25.patch"

And then run:

composer require drupal/config_ignore:^3

You can now enable config_ignore, and disable drush_cmi_tools

drush en config_ignore -y
drush pmu drush_cmi_tools -y

Note: Config Ignore requires Drush 10, you’ll be prompted to upgrade via Composer if on an earlier version.

composer require drush/drush:^10

The final step is to migrate your ignored config settings into config_ignore settings. This requires a manual upgrade path due to the fact that enabling the module and importing the module’s config happen at the same time, if you do not use an update hook to import the settings your ignored config will be deleted.

First, move the yml file that listed your ignored config for drush_cmi_tools into config_ignore.settings.yml. For us this was in drush/config-ignore.yml

mv drush/config-ignore.yml YOUR_CONFIG_SYNC_DIRECTORY/config_ignore.settings.yml

Next, change the key in the file from ignore to ignored_config_entities

It should look something like this:

  - devel.settings
  - devel.toolbar.settings

Finally, add the following update hook to a module or profile:

 * Migrate to config_ignore.
 * For this to work, updb needs to be before config-import in your deployment.
 * Alternatively, use `drush deploy`.
function MY_MODULE_update_N() {
  /** @var DrupalCoreExtensionModuleInstallerInterface $moduleInstaller */
  $moduleInstaller = Drupal::service('module_installer');
  ], FALSE);

  // Populate config_ignore initial values so we don't delete configs we need
  // in the first config import step after this.
  $syncDirectory = Settings::get('config_sync_directory');
  $data = Yaml::decode(file_get_contents(sprintf('%s/config_ignore.settings.yml', $syncDirectory)));

Update your deployment scripts

Now that you’re migrated, you need to change the commands you run in your deployment scripts. At PNX we generally use Makefile commands to run a deployment, e.g make deploy this runs update-db, config-import, cache-clear in that order.

Now that we are not using a custom drush command, we can simply change the config-import/config-import commands to:

# Old import
drush config-import-plus -y --source=$(CONFIG_DIR) --install=$(CONFIG_INSTALL) --delete-list=$(CONFIG_DELETE)

# New import
drush config-import -y

# Old export
drush config-export-plus -y --destination=$(CONFIG_DIR) --ignore-list=$(CONFIG_IGNORE)

# New export
drush config-export -y

In fact, I would highly recommend you migrate your whole deployment workflow to using the new Drush Deploy command. This gives you the added bonus of being able to run post deployment hooks. These are really handy if, for example, you’re deploying a new taxonomy vocabulary and need to create some default terms when deploying. Instead of having to manually import the vocabulary config in an update hook, you can simply add the following to my_module.deploy.php

 * Add some terms.
function MY_MODULE_deploy_add_terms() {
  $terms = ['Foo', 'Bar', 'Baz'];
  foreach ($terms as $term) {
    $term = Term::create(['name' => $term, 'vid' => 'new_vocab']);

And with that we can simply run drush deploy -y to run all of our deployment steps in the appropriate order.

Go to Source

#! code: Drupal 9: Customise Your Robots.txt File

A robots.txt file tells search engines spiders what pages or files they should or shouldn’t request from your site. It is more of a way of preventing your site from being overloaded by requests rather than a secure mechanism to prevent access. It really shouldn’t be used as a way of preventing access to your site, and the chances are that some search engine spiders will access the site anyway. If you do need to prevent access then think about using noindex directives within the page itself, or even password protecting the page.

The syntax of a robots.txt file is pretty simple. Each part must be proceeded with what user agent it pertains to, with the wildcard of * being used to apply to all user agents.

User-agent: *

To allow search engines to spider a page use the Allow rule. For example, to allow access to all spiders to the entire site.

  1. User-agent: *
  2. Allow: /

To disallow search engine spiders from a page use the Disallow rule. For example, to disallow access for all spiders to a single file.

  1. User-agent: *
  2. Disallow: /somefile.html

You can then apply rules to a single search engine spider by naming the spider directly.

Read more.

Go to Source

rachel_norfolk: Giving hard recognition for notable contributions – an idea

Giving hard recognition for notable contributions – an idea
Fri, 05/07/2021 – 12:33

Notes in various denominations

Whilst sat in our regular FOSS Foundations Working Group meeting, Duane O’Brien raised a tweet from Nicolas Zakas at ESlint:

Go to Source

Jacob Rockowitz: Webform module’s Open Collective: Rethinking and adjusting backer and sponsorship tiers

If you have been following my blog, you know that my current work situation has made my free contribution of maintaining the Webform module for the Drupal community no longer sustainable. I want to start using the Webform module’s Open Collective funds to compensate me for my time and encourage organizations to hire me to assist with their Webform-related projects and even proposals. On the Webform module’s project page, issue queue, and in the module’s UI, I am encouraging people to get involved, fund development, or hire me. All funding is going to be handled transparently via the Webform module’s Open Collective.

Like many Open Collective projects, I am going to track my monthly work and expense it. After a few months of invoices and ticket tracking, I should be able to surmise how many hours it takes to resolve most issues and requests in the Webform module’s issues queue. Knowing exactly how collected funds are spent hopefully will encourage people and organizations to continue backing the collective, and inspire new people and organizations to become backers. Because there is already a diverse group of backers of the Webform module’s Open Collective, it is essential to have the backer and sponsorship tiers reflect the community and opportunities for anyone supporting the Webform module.

Who is backing the Webform module’s Open Collective?

Looking at the current backers, I see individuals, small Drupal shops, and a few large Drupal agencies and providers.

Individuals make up most backers either making a one-time donation or a small monthly $5 contribution. Drupal is built and maintained by individuals, and making it easy for individuals to contribute something can collectively make a difference. I think the $5 tier…Read More

Go to Source

Drudesk: How to Add Tabbed Content in Drupal with Quick Tabs Module?

Quick Tabs Module to add tabbed content in Drupal
The Quick Tabs Module

is handy when there is a need to add tabbed content and the possibility to switch between content displayed on your web page.

This blog post is  entirely devoted to the Quick Tabs Module, how to add tabbed content and what benefits you will get from creating tabbed content on your Drupal website. The Drupal support team does not guarantee that you will become a professional after reading the blog, but you will definitely get the basics.

Go to Source

wishdesk.com: How to add a form to Your Website with the Webform Module

Quick Preview: This will be an informative guide on what web forms are, how to add a web form to a website, and why you need them.

It is simply impossible to imagine a site without web forms. They are everywhere. Customers fill them out when:

  • making a purchase
  • leave a review about a product or company
  • go through various kinds of surveys
  • registering when taking quizzes. 

We could even say that web forms are the main source of information on potential customers. Below, the Drupal website development support agency has prepared information about web forms, how to embed a form to a web page, and many other useful things.

What is a web form?

A webform / HTML form is a form consisting of fields to be filled in. Most often, it requires a name and login, such as a password. Users enter their details to get some benefit from this. 

Go to Source