Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough
Dec 17 2020
Dec 17

argument-open-source

Recently, Drupal has been on an update rampage. The introduction of the oh-so-beautiful Drupal 9 core has spurred a chain reaction of upgrades across the Drupal platform. Just this week, we’re getting a new default theme (which is hyper-minimalist and easy-on-the-eyes), a 20% reduction in install times, and automated lazy load for images. But let’s talk about the juiciest UI/UX update that came with Drupal 9 — the standardization of Drupal’s Layout Builder.

If you’ve built a pre-Drupal-9 website over the past few years, you probably dabbled with Panels/Panelizer, WYSIWYG templates, or even custom coding to set up your UX/UI. And that works. We did it for years. But you can throw that worn-out Panelizer module in the trash. The times, they are a-changing. Drupal’s new Layout Builder module combines the core functionality of Panelizer with an out-of-the-box WYSIWYG engine.

First hinted at in 2017, Drupal Layout Builder officially left the onerous Drupal testing pipeline last year as part of Drupal’s 8.7 updates. Despite circulating for a year now, the chaos of 2020 has overshadowed this potent and flexible tool. So, let’s talk about it. Here’s what you need to know about Drupal’s Layout Builder.

What is Layout Builder?

Layout Builder is a WYSIWYG page editing engine that lets you manipulate back-end features via an easy-to-use drag-and-drop interface. It’s difficult to overstate just how valuable Layout Builder is when it comes to time-savings. You can create templates in minutes, immediately preview and create content changes, and tweak page-by-page UI/UX features to create more cohesive and on-the-fly websites and landing pages.

At its core, Layout Builder is a block-based layout builder. You can create layouts for either a single page or all content of a specific type. In addition, you can jump in and create rapid-fire landing pages based on your existing design theme. There are three “layers” that Layout Builder operates on to help you build out holistic websites.

  1. Layout templates: You can create a layout template for all content of a specific type. For example, you can make a layout template for your blog posts or a layout template for every product page. This template will be shared across all pages, so you don’t have to go in and rebuild for each content type.
  2. Customized layout templates: You can also go in and make granular changes to a specific layout template. So, if you want a certain product page to be different than the layout template, you can make granular changes to just that page.
  3. Landing pages: Finally, you can create one-off pages that aren’t tied to structured content — like landing pages.

Important: Founder of Drupal — Dries Buytaert — dropped a blog post with some use cases for each of these layers.

To be clear, Layout Builder isn’t a WYSIWYG template. It uses your existing template. Instead, it allows non-developers (and lazy-feeling developers) to quickly make per-page changes to the website without diving into code. But these aren’t just simple changes. You can create a layout template for every page type (e.g., creating a specific layout for all the shoes you sell), and you can also dive into each of these layout pages to make custom changes. So, it really lets you get granular with your editing without forcing you to completely retool and redesign pages for each type of content. This gives Layout Builder a massive advantage over WordPress’s Gutenberg — which requires you to go in and re-lay elements for every page individually.

Here’s the kicker: you get a live-preview of all changes without bouncing between the layout and the front-end. Every block and field you place and every change you make to taxonomies or content is visible the second you make the change. The entire process takes place on the front-end, and changes are instantly visible. Remember, Layout Builder is part of Drupal’s Core, so you don’t need to implement new entity types of dig into third-party elements. It’s an out-of-the-box experience.

Advantages of Layout Builder

Last year, we got a gorgeous, picture-perfect demo of how Layout Builder would work. It’s beautiful, fast, and packs a punch that other leading layout builders are indeed missing. So, to help unpack the value of Layout Builder, let’s look at some of the advantages of Layout Builder:

Customization

Beyond Layout Builder’s incredibly powerful and customizable block-based design engine, it offers customization in usage. Let’s say you want to create an amazing landing page. You can start with a blank page that’s untied to structured content, drop in some hero images, a few pieces of text, some content, and a video. Suddenly, you have a custom landing page (complete with modules, blocks, and taxonomy) that exists in a separate ecosystem from your website.

Simultaneously, you can create a template for every blog post, then dive into a specific blog post and make on-time changes to just that page while still being tied to your structured content. Remember, you can make these changes nearly instantly, without touching code. And you’ll see a live preview of every change immediately without switching between interfaces.

Accessibility

Drupal is committed to accessibility. The second principle of Drupal’s Values & Principles page reads, “build software everyone can use,” and this rings true. Layout Builder meets Drupal’s accessibility gate standards (i.e., conforms to WCAG 2.0 and ATAG 2.0, text color has sufficient contrast, JavaScript is keyboard-usable, etc.)

Ease-of-use

Like many WYSIWYG editors, Drupal Layout Builder is all about “blocks.” But these aren’t your run-of-the-mill blocks. There are inline blocks, field blocks, global blocks, and system blocks. Each of these has its own use case, and you can combine these block types to create stellar pages in minutes. For example, global blocks are used to create templates, and inline blocks are used to create page-specific changes that don’t impact the layout. The combination of these block types makes Layout Builder a hassle-free experience.

Additionally, there are plenty of ease-of-use features built into the core. Layout Builder works with the keyboard, has plenty of usability features that tie to Drupal’s value statements, and allows nit-picky setups for customized workflows.

Creating a Drupal Website is Easier Than Ever

With Layout Builder, users can generate valuable content and pages without needing to patch together various WYSIWYG tools or Panel/Panelizer. At Mobomo, we’re incredibly excited for our clients to dive into Drupal Layout Builder and make actionable and memorable changes to their templates based on their in-the-moment needs and experiences.

But Layout Builder isn’t a replacement for a well-designed and well-developed website. We can help you build your next world-class website. Once we’re done, Layout Builder gives you the freedom to make substantial changes without the headaches, back-and-forth, or unnecessary touchpoints. Are you ready to create a customer-centric, experience-driven digital space? Contact us.

Dec 17 2020
Dec 17

You started your ecommerce site with Shopify, and you obviously did it right, because you are continually seeing growth. That’s fantastic! But you are starting to see areas where you are outgrowing Shopify. What are the signs you should be looking for to make sure that your business keeps growing and not be held back by your ecommerce platform?

Seven areas to look at if you think you are outgrowing Shopify:

In this blog, we will take a look at a few things you can do if you think you are starting to outgrow Shopify.

Is it time? Has your company outgrown Shopify? We can help. Call today >Are you spending too much time every month manually inputting information into your CRM, ERP or inventory systems because there either isn’t an integration available for Shopify or it is not functional? Is there a platform that can automate some of those processes? The time you save can then be put back into important business tasks for strategic growth.

Look at all the 3rd party integrations your site needs.

Or will need to integrate with vendors to keep your ecommerce machine rolling. These integrations should enable you to more securely accept payments, provide more buying and delivery options for your customers, and more. Find an ecommerce platform that easily accepts these kinds of integrations and are securely developed so that you don’t wind up with a liability down the road.

Look at your user experience and how you want your brand to be perceived.

Does your site look and feel like the brand you want it to represent? Is there something missing that the Shopify themes are just not giving you? Does your brand stand out from the rest of the Shopify templated storefronts? Will you be able to make effective changes within the restrictions of Shopify’s templates?

Are you getting the reporting you need? Limited reporting makes it hard to develop a long-term business strategy. Better reporting means better decisions and more growth.

Look at the costs of “renting” Shopify’s platform.

Adding plugins to your base Software as a service (SAAS) platform to add customer-friendly and value-add features come with a price. The costs of those modules add up and could seriously be eating away at your bottom line every month. Consider the long-term advantage of owning your ecommerce website by creating it with an open source platform like Drupal and Drupal Commerce.

Look at your data.

Did you know that your Shopify store is generating a ton of data, but that you don’t own it? Shopify ties up your data, known as service lock-in, so that transferring your data becomes a cumbersome process, especially if you have a lot of it.

Look at the effectiveness of your CMS.

Shopify is not meant to be a content management system, so when it comes to adding videos and rich media, linking pages with products, and managing large amounts of content like a blog, your customer engagement and SEO. Shopify can make it hard at times to properly implement search engine optimization (SEO) tactics that would contribute to your growth.

For small to medium-sized businesses, Shopify is the best in class for ease of getting online, standardization and generally doing the basics in ecommerce.

As your business grows you may quickly learn that the things that made Shopify so attractive in the first place are the elements that are holding you back. If you have taken the time to really look at the above items and find that Shopify still meets your needs, then great.

If you are in a position where you feel that you may be starting to outgrow your ecommerce platform, the sooner you start looking at other options, the better. Making changes away from a standardized platform will get more complicated the more and more data, plugins and services you add to your current site.

Does all of this information leave you feeling a little overwhelmed? Don’t worry, we get it.

For something as crucial as your ecommerce platform, you want to make sure you are doing the right thing. That is where we come in. We live and breathe this stuff. Our ecommerce consultants and subject matter experts are open source commerce pros and are always happy to give as much advice as you need. Reach out today and let’s talk about what your next ecommerce platform should be after Shopify.

Don't struggle with a platform that can't adapt to your needs. Talk to the experts who help businesses facing the same problems every day  Have a no-obligation conversation today >

Dec 17 2020
Dec 17

Anyone who has decided to start an online business has had problems with choosing who to host a Drupal site. This is a sore spot for every business owner. Often, site owners simply do not understand the essence and why hosting their Drupal site.

Choosing a suitable hosting for your website is a serious matter. The future success or decline of your business depends on the chosen hosting company.

Our web development company has created this blog to dispel all myths and help site owners choose the best hosting company for their Drupal site.

Which type of hosting does your Drupal site need?

In order to select a hosting company as accurately as possible, you first need to know what kind of site you have and what you want. Everything is quite individual.

We have already written about what web hosting is, and what types of hosting exist. Let's briefly go through them again:

Shared Hosting

Shared hosting is the simplest and cheapest variant, but also the least functional. You get minimal opportunities as you share hosting with many other sites. It's like eating only a cake-topper at a party.

VPS Hosting

Virtual private server (VPS) is somewhere in between. In terms of price and capabilities, it is pretty average. It's like eating a few pieces of cake at the party.

Dedicated Hosting

Dedicated hosting is the maximum opportunity for hosting your site. Accordingly, the price for this type of hosting will be higher, but it's worth it. It's like eating the whole cake yourself!

The types of Drupal hosting

To learn more about each type of hosting, just go to the blogs we have already written.

What to Consider When Choosing a Drupal Hosting provider?

Many hosting companies are on the Internet, but a large number does not mean quality and reliability. Before finally choosing a Drupal hosting provider, analyze whether it satisfies the following requirements:

1. Security

The Drupal site itself is quite reliable and secure, but an extra level of security never hurts. Therefore, when choosing the type of hosting, remember that some of them are more or less secure.

2. Reviews

Before making a final decision, you should read reviews about this type of hosting and the hosting company. This is one of the easiest ways to learn more about a hosting provider.

3. Server capabilities

The more features your web hosting gives, the easier it will be for you to develop and fill your site. The usability for your users also depends on it.

4. Сost of use

It is quite clear that the cost of hosting is formed in accordance with the possibilities it gives. Check if there are any hidden costs so you don't get disappointed later.

5. Customer support

Many do not attach much importance to support when choosing a hosting provider. But it will be important when the first problems crop up and the help of specialists is vital. The better the support service is in the hosting company, the calmer you can be.

6. Server location

The location of your host data centres is also one of the conditions for your site to work well. The more stable the country your data centres are located in is, the safer it is for your online business.

What to Consider When Choosing a Drupal Hosting provider 

These are the minimum issues that need to be considered before making the final decision on choosing a Drupal hosting provider.

Top 4 main advantages of Drupal specific hosting company

You should opt for a company that specifically host Drupal websites, because:

  1. It provides your Drupal site with a specifically optimized server infrastructure
  2. It focuses all attention on the acceleration of your Drupal site
  3. It understands all the nuances of Drupal CMS 
  4. It offers hosting where Drush, Composer, and Git tools are already taken into account
Top 4 main advantages of Drupal specific hosting company

What benefits do you get from hosting your Drupal site at Wishdesk?

Entrust us with your website and you will receive the following hosting benefits:

  1. Reliable Drupal website hosting 24/7
  2. Drupal-optimized hosting to make it perfect for your website
  3. Hosting for all types and sizes of site
  4. Reliable multisite hosting
  5. Fast responses from managers and support team
  6. Cloud, Shared, VDS / VPS and SLA hosting types

These are just a few of the reasons why you should choose us! In order to find more details, you can contact the managers of our web hosting company.

Choose the best hosting company for your Drupal site!

Choosing the right hosting company for a Drupal site is vital — it is choosing your future partner, deciding who you want to become in the future, etc. Where you are hosting a Drupal site determines how it works, and therefore how successful your business will be.

Wishdesk is a trusted Drupal hosting provider for your business and for your success. If you have any questions, we will be happy to help you.

Dec 17 2020
Dec 17

Last week, Drupalists gathered virtually for DrupalCon Europe 2020. As a matter of tradition, I delivered my State of Drupal keynote. You can watch a recording of my keynote, download a copy of my slides (146 MB), or read the brief summary below.

The theme of my presentation was "How to optimize for impact". Often my DrupalCon talks are product-focused. This time, I wanted to be more reflective on the journey of building Drupal over the last 20 years.

Drupal has done a great job of embracing technological innovation. Not many technologies survive two decades of dramatic changes. I called out our current work on Headless Drupal as a recent example of keeping up with the pace of innovation. And now we're working towards launching official JavaScript components for Drupal, starting with Decoupled Menus. You can see our progress in this video snippet:

From there, I moved on to reflecting on what I would change if I could do things differently. I covered topics like "being compelling beyond code alone", obsessing about the user experience, and rewarding Open Source Makers to maximize the speed of innovation.

Perhaps most importantly, I've been surprised by a few big things since first creating Drupal, starting with the larger impact of Drupal on the Open Web. Today, this is an important part of my big picture "Why". An important part of that vision includes cultivating a diverse, inclusive Open Source community.

Looking back, what do you think are Drupal's biggest successes? Knowing what we know now, what would you have done differently? Has anything surprised you?

Dec 17 2020
Dec 17

Open source is gradually sliding into the workspace of most developers these days, as they prefer a model that listens to their needs, and is also something that they can exercise some control over. As opposed to closed source where only the management can change, edit, and contribute, open source welcomes all opinions - from all nooks and corners of the world. 

Why open source?

In recent times, we’ve been seeing a number of big companies using open source software (OSS) in business and preferring it over the proprietary model. This shift can be attributed to multiple reasons.

Working with open source translates to minimal costs and time incurred in surveying and researching on market-needs discovery. As the software is accommodative of all the suggestions that developers make and even lists out the best contributions, open source becomes a self sustaining model with outpouring innovation. Hence, a reason why open source is good for businesses is because it consequently relies much less on its own internal resources, and is free to tap the ideas that make their way in externally. 

It generally sees a greater diversity in its contributors, ranging from academic researchers to full time developers. This leads to the inclusion of a wide variety of themes and modules, and the approach becomes quality driven. This increases the market competitiveness, thus reaping long term benefits. These are the primary grounds due to which open source adoption statistics have been soaring in its favour.

But, why contribute to open source?

Multiple reasons have been identified as to why big companies that use open source find it in their best interest to contribute to it. In the diverse community of OSS users, corporations find greater innovative capability, and the relationship turns symbiotic. There exists a give and take of ideas from which the entire pool of users, companies using open source in business included, benefit from. It also becomes a passive form of CSR (Corporate Social Responsibility), as a little shared goodwill never hurt anyone. 

Apart from that, being in close proximity to the market of end users acts as an innovation catalyst. A recent McKinsey report talks about this phenomenon called ‘Developer Velocity’, referring to the act of enabling developers to create an environment and a subsequent methodology where their talent is left free of any friction - which results in newer, fresher, unbound ideas.

Open source, hence, demarcates itself clearly from stagnation. Companies that use open source software don’t lose their hair worrying about going out of fashion. Every time the market undergoes a change, it is sure to be reflected in the OSS by its community. The end result is a mutually beneficial relationship, where the company stays up to date with all market fluctuations and demands, and it gets updated whenever there arises a need - becoming a repository of high utility modules. Read more about the perks of being an open source contributor here.

Impact of large companies on open source softwares

During recent times, the open source community has seen quite a bit of infiltration from big players in the market. Large companies venturing into open source is on the path to become the norm soon. These companies are some of the major vendors of open source - 

  1. IBM has turned out to be pretty resourceful with various OSS projects, contributing to a list of platforms like Hyperledger, Kubernetes, Node.js, Egeria, etc. IBM also has a training program for OSS contributors, and goes the extra mile by sponsoring various OSS projects.  
  2. Google broke the ice by creating Kubernetes in 2014, an open source container orchestration system that automates a bunch of manual work done in managing and scaling applications. Presently, under Google Summer Of Code and Google Code In, Google invites University and high school students respectively to intern with them by contributing to different OSS projects. 
  3. Facebook’s most notable open source creation would be React Native, a mobile application framework - used to develop various applications for diverse platforms. Other OSS projects by Facebook include Hermes (javascript engine created to run React Native on Android), Detectron2, Hydra etc.
  4. LinkedIn runs a large number of OSS projects under LinkedIn Engineering - some of which are Ambry, LASER, Helix and Kafka. Apart from contributing to OSS and using OSS in business, LinkedIn also maintains a dedicated blog for the articles related to it, and a separate tab enlisting all the research work on OSS that LinkedIn community has contributed to.
  5. HPE and Intel are working on Network Functions Virtualisation(NFV) for 5G installations, partnering with open source platform RedHat for the same. 
  6. Another alliance on the frontline is that of Apple, Amazon and Google - working together under the Connected Home over Internet Protocol (CHIP) project to create an all-in-one smart home device, and in the process, share and use each other’s resources. 

Talk about the open source community is incomplete without the mention of GitHub, a software development platform that boasts of being the largest in the world. Microsoft’s acquisition of GitHub goes on to show that large companies are seeking to become major vendors of open source and are ready to invest large amounts of capital in the same. 

Hence, in the open source platforms that we see now,

  • Scalability is high - owing to cyclic contributions that not only keep the resources from stagnation but also constantly add value to it.
  • Sustenance is dependent on contributions - which might be voluntary, sponsored, or both. Since its users are also its contributors, open source leads to exemplary results with minimal investment on creating and updating its own resources.
  • Bug resolution is done by the users themselves. Constantly identifying errors and shortcomings keeps the site updated. Newer versions are tested, approved, and rewarded within the community. 

Seeing through the eyes of Drupal Community

Dries Buytaert, founder and project lead of Drupal, in one of his personal blogs, identified that open source communities are seen to be working at a steady pace even when the world suffers from recession. A collective purpose and associated ethics are the main drivers of OSS, making it resilient to external factors.

According to one of Dries’ blogs, Who sponsors Drupal development? (2019-2020 edition),  contributions to Drupal keep increasing by each passing year. The Drupal project has gained from the contributions by big companies that use open source like Capgemini and EPAM systems. Dries notes that even though the contributions from tech giants lag behind considerably when compared to the traditional Drupal businesses, he hopes to see a dramatic shift in the coming future. Apprising large enterprises about the value of contributions to large open source softwares like Drupal will go a long way. Moreover, providing better incentives can also play a huge role in increasing contributions from big companies, he feels. 

Bar graph with blue, green, and black vertical bars showing statistics on contribution by large companies on open source projects and Drupal in particularSource: Dries Buytaert’s blog

Open source has been a revelation during coronavirus pandemic. The Covid-19 pandemic couldn’t put a stop on the development of the Drupal project. #DrupalCares campaign proved successful as a number of organisations and individuals helped raise $500,000 in just over 30 days. This shows that OSS is treated as a public good - something that is non-rivalrous, and can be used by and benefits everybody. Instead of racing against each other, users of open source run together, and share its responsibility.

The future of open source communities 

More than a new concept, open source fits in like an upgrade to the software world. It is the beginning of a virtual workspace that is very user friendly and has the potential to achieve maximum consumer satisfaction.

Open source communities have also responded to the COVID-19 crisis with much responsibility, participating in and contributing to the COVID-19 Global Hackathon. Giants like Facebook, AWS, Twitter etc. have gone ahead and shared resources to assist the participants. Also, a number of open source collaborative projects have shown up to tackle problems that the world is dealing with right now, creating digital solutions as an effort to minimise the effects of the coronavirus pandemic. 

Dec 16 2020
Dec 16

The corona situation forced DrupalCon Barcelona 2020 to be fully hosted online, and was therefore renamed to DrupalCon Europe 2020. How was the experience? And how did I end up here?

You will find my first impressions about the conference in this article, as well as a bit of a background story, and some tips. Enjoy.

Background

I have been working as a backend developer on PHP projects for more than 15 years now. I joined Liip in Lausanne a bit more than two years ago, and at first, I was mostly involved in Moodle projects.

About one year ago in late 2019, we founded a team (we call it Circle ®) to craft digital solutions based on Drupal in Lausanne. The Drupal knowledge has already been within Liip for many years, as we use and contribute to it in many of our locations, including Fribourg, Bern and Zurich. I was onboarded and coached by others Liipers; I grew my skills and got in touch with the Swiss Drupal community. Everything looked promising! After a couple of months, we nevertheless decided to stop the adventure, and continue with other projects. That being said, I had the opportunity to work with Drupal 8 for a couple of months, and it was far more evolved, than the somewhat difficult memories I got from earlier versions of it.

So I decided to keep my ticket for DrupalCon Barcelona, even if it meant to spend a few days at home watching talks instead of being at a great venue full of people in the beautiful city of Barcelona. Let’s be clear, it is the first DrupalCon I have ever attended, I did attend some conferences for other projects (Symfony and Moodle).

The conference format

Well it all started with an email, telling us how to get familiar with the online platform, and how to use it or seek for help. I was surprised to see that the online event did not abandon the "networking part" of a conference. A “virtual exhibition” was available where you could find the different sponsors and meet them. A “meeting hub” was available to connect with other attendees. You could even ask for a buddy that can catch up with you and help you through the conference. DrupalCon Europe even planned social events in the evenings, but I wasn’t in the mood to attend them (yet).

The rest was as usual, you had different tracks you could subscribe to and watch. A chat and live Q&A area were available for each talk and it’s all quite straightforward to use. The platform uses a Zoom integration. Unfortunately, it did not work on my Linux distribution on the first day. It’s quite an unpleasant experience to miss a few minutes of the first talk because of technical issues. Fortunately, a workaround was available, and the issue got more or less fixed on day 2.
Furthermore, all the sessions were recorded and are available to watch later. I guess that this can be expected for a first full-online experience, and overall the platform was great. I can’t imagine how much work it has been to turn this event from an in-person to an all- virtual one. I was quite impressed by the result!

The talks

I attended a few talks, they all focused on specific topics, but some are more “developer”-oriented than others. I did a bit of everything, including “business” oriented talks. I still can’t figure what to say about them, some were more than excellent, others felt basic or too simplified. There was something for every kind of profile, but overall I felt disappointed by most of them. (To be honest, it’s something that has happened in the past. I probably enjoy the social part more at these events, or I don’t choose the right talks). However, there were very good talks that I personally enjoyed:

The feeling

Having mastermind speakers is quite a thing. You can listen to talks by people that have been doing Drupal for years, sharing their overall experiences on Drupal and no matter the topic they share, it’s a pleasure to listen!
It makes me realise how huge the community is and how difficult it is to drive it in an embracing, contributive and constructive way. Drupal has evolved a lot, specifically since the switch to Drupal 8. But managing the technical aspect is not all there is in a community. Finding ways so people can have a safe place to discuss, interact and contribute is something too. A strategy to center humans and their rights in Open Source Design is one aspect they tackle, but there are many more that are worth the efforts. I can say that I like the direction that Drupal is taking, and it’s a pleasure to see that everything is built together to provide one of the best CMS out there! Even if the learning curve is still pretty steep and should not be neglected.

I was worried about having a fully remote conference, but I shouldn’t have!. The experience was great, I had very little issues, and the number of talks was impressive.
I recommend you to have a look at the talks in advance, book them, and don’t hesitate to switch to another one if your gut feeling is telling you to do so. I also recommend you to keep some space in your schedule for your daily business, ongoing projects, in case you will have to answer some emails or do a few meetings here and there. Last but not least, I recommend connecting with the community, there are amazing people out there, and it’s always great to share and build connections.

Congratulations and a big thank you to DrupalCon Europe 2020 and everybody involved, making this event a great online experience!

Picture taken from:

Dec 16 2020
Dec 16

Hey folks, we're letting the NTEN Drupal Monthly Call have the month off for the holidays, so no NTEN Drupal call tomorrow, 12/17. We'll be back to our usually scheduled chat to discuss all things Drupal and Nonprofits (and anything else on our minds) on Thursday, January 21, 2021(!) at 1pm ET/10am PT.  Talk to you then!

Dec 16 2020
Dec 16
Drupal modules to increase site performance

Do you want your site to be the first in the search results, make users feel comfortable using it, and get a high conversion rate? Just make it as fast as possible! 

Your website's speed is essential because, if the website is fast, users will visit it more often. Statistics say that if a user waits for 3 seconds and more, they will leave the website and never return. The most comfortable loading time for users is 2 seconds. You may ask:

Dec 16 2020
Dec 16

A Hallway of Fun


It felt energising to reconnect with old friends in the Hallway track. We did miss being able to see each other in person and give each other a hug (high-five, or just a handshake). However, there were many opportunities to jump into a Hallway track session which would automatically pair you with up to 9 others who share similar interests to you. When registering for your ticket, you had a few questions which you could optionally fill-in, these were used as the basis to pair people in interest rooms.

DrupalCon Europe Hallway Track 1


Day one, it begins!
 

As we at Amazee focus on building decoupled websites using Gatsby, I had a keen interest in the talk by Oier Bravo entitled “Drupal and Gatsby, static without limits. Compiling more than 100,000 pages in less than what it takes to make a coffee.” Oier gave us an in-depth look into two Drupal modules that they are contributing to and utilising for their client projects: Static Suite and GraphQL Node Preview module.

Gatsby - Instant Navigation: Fast builds, Prefetch, and Made with React

From the addition of named functions to constructor properties, Ayesh Karunaratne gave an excellent overview of what’s new and changing in PHP 8. amazee.io has updated the Lagoon Docker images to include the latest stable release of PHP 8.0.

Nick O’Sullivan presented a thoroughly informative talk on “Decoupled translations with Drupal.” Nick explained how to create a multilingual Gatsby site with content sourced from Drupal, and described some of the key considerations to take into account when building your translation system.

Content Translations vs Interface Translations

Jumping from the more technical talks, I found myself captivated by Marissa Epstein’s session entitled “From squiggles to straight lines: Sketching user experiences to make decisions and get on with it.” Marissa’s enthusiasm for sketching is clearly expressed through this knowledgeable talk that included an overview of the various tools to aid you in drawing sketches for your projects.

Marissa Epstein - From Squiggles to straight lines

Michael Anello’s talk “Taking Maximum Advantage of Drupal Core's Composer Template” gave us an overview of the benefits that Composer 2 brings. You can leverage composer plugins like scaffolding to remove unwanted files or add lines to the robots.txt file.

In the Drupal Initiative’s Leads Keynote, we saw Putra Bonaccorsi, Ted Bowman, Neil Drumm, Ryan Aslett, Baddy Sonja Breidert, Gábor Hojtsy, and Len Swaneveld.

Putra presented the new frontend theme for Drupal – Olivero – which has just landed in Drupal 9.1.0 as an experimental theme.

Ted gave us an update on the Automatic Updates Initiative and the difficult technical challenges they face.

Neil showed us how to get started with merge requests on Gitlab; this should make the barrier to contribution a lot less complicated for newcomers.

Unfortunately, Ryan was unable to present. However, Tim Lehnen stepped in to take over. Tim talked about the composer 2 updates with improved cacheability, lower memory usage, and faster execution time.

Baddy talked about the decoupled menus initiative which aims to bring modern Javascript frontend components to Drupal, starting with a React.js version of the menu system.

Gábor showed us the roadmap plan to Drupal 10 in which we will upgrade CKEditor 4 to CKEditor 5, amongst many other dependency updates.

Len presented the bug smash initiative and how they’ve smashed a whopping 664 bugs between May 30th and December 8th.

We ended the day with some cardio by learning to dance Flamenco in a workshop provided by Marta G. Blanco. A fun-filled event which had several participants on their feet rhythmically dancing to the flamenco music.

Flamenco workshop with Marta G. Blanco at DrupalCon Europe 2020

Day 2, the Driesnote
 

With the first day ending with us shaking our hips, we were ready to hear the latest from Dries Buytaert in the Driesnote.

Phil Wolstenholme gave an insightful and well thought out presentation about Tailwind CSS titled “Write better CSS by stopping writing any more CSS! How and why to use utility-first CSS on large-scale Drupal websites with Tailwind CSS.” Phil explained how to configure and extend Tailwind CSS to aid you into building an improved component-based theme using design tokens.

Tailwind configuration holds your design tokens


Driesnote

Dries highlighted the latest changes to Drupal and how we’ve stayed relevant for the last 20 years by working on things that mattered, by embracing new technologies, and by making it easy for end users to adopt.

Optimising for impact means caring for people you don't know.

I joined Josef Kruckenberg and Joanita Bonnier for a retrospective on “How did the COVID-19 crisis affect client relationships and what can we take out of it?” It was an intimate experience in which we explored the negative and positive impacts of the pandemic and our learnings that we plan to take into 2021.

COVID-19 Client Relationships Retrospective at DrupalCon Europe 2020


Day 3, Keynotes


We started the 3rd day with an amazing talk by Eriol Fox in their Keynote: "Centering humans and their rights in Open Source Design.” Eriol guided us through a journey mapping activity to shape our minds into striving to be more inclusive and inspire us to put Human Rights Centered Design first.

If we are not intentionally working against injustice, we are unintentionally complicit in it.

Eriol Fox presentation slide - Our Structure

Philipp Melab, along with Laura Gaetano, Shyamala Rajaram, and Josef Kruckenberg conversed in their panel about “Sustainable practices for building and maintaining the Open Web.” They touched on topics such as payments to open-source projects and the feeling of creating something new is not always reciprocated when maintaining a project for several years.

Panel talk on the Sustainable practices for building and maintaining the Open Web featuring Philip Melab, Laura Gaetano, Shyamala Rajaram, and Josef Kruckenberg

Fran Garcia-Linares gave a fantastic lightspeed live demo on “adding end-to-end tests to your Drupal site in 20 minutes with Cypress.” Fran spun up 3 different sites; a simple non-Drupal HTML website, a Drupal 7 website, and a Drupal 9 website, and added Cypress tests to each of them. The live demos worked flawlessly and returned all green status checks indicating the tests had passed.

Fran Garcia-Linares' presentation slide showing the Way forwards as part of his talk - Adding end-to-end tests to your Drupal site in 20 minutes with Cypress

My session about “Building a platform to bring people together to Celebrate Drupal” went well. I described the process of how I built up CelebrateDrupal.org and what learnings I gained from this experience.

Dan Lemon's presentation slide - Chapter 1: Design. Stealing

Siri Chilazi presented a wonderful keynote on “Building Diverse, Inclusive and Equitable Communities.” Siri expanded on important training topics that all of us should attend such as diversity training, leadership training, and unconscious bias training. We all have unconscious bias and in order to reach good behavioural design we must design for diverse, equitable, and inclusive systems.

Siri Chilazi's presentation slide on

With a thrilling end to the sessions, we jumped into the Drupal Trivia Night. We created teams of 5 in order to compete for the title of Drupal trivia champions. My team, “WAVATE - We Are Volunteers At The Event” came 3rd, and Edouard Cunibil won the individual ranking by correctly answering the final question worth 1000 points before anyone else.

DrupalCon Europe 2020 Trivia Night Leaderboard


Day 4, Contrib Corner


As always with every DrupalCon, we had a day dedicated to contribution. It was held over Zoom using the Breakout feature, with a room for each table. I jumped into the contrib corner and worked on adding the official DrupalCon Europe photo to the Celebrate Drupal platform so that everyone could zoom-in easily and see each selfie taken via the photo booth during the conference. Others worked on upgrading their modules to be Drupal 9 compatible as well as aligning on issues for the decoupled menu initiative.

Day 4 Contribution Topics


The Open Web


With 4 days packed with talks, networking, social events, and contribution, we believe the conference was a great success. The shift from an in-person event to virtual was a difficult decision to make, but the community was thrilled to reconnect with each other and discuss Drupal and the open web.

If you're as passionate about Drupal web development and the open-source community as we are, get in touch today!

Dec 16 2020
Dec 16

We all know Drupal as this robust, flexible, and dependable CMS platform but not many realize its abilities when it comes to SEO. SEO can be one of the most influential factors for the success of an organization or a business. Did you know that 93% of online experiences start with search engines and 51% of all website traffic is attributed to organic searches (source)?! 

When people from around the globe search for your product or services, you want to appear as high as possible on the search engine ranking. Improving your SERP (Search Engine Results Page) ranking is now more important than any other marketing strategy. Ideally, Drupal SEO is about making your website easy for both your visitors and the search engine crawlers to understand. Thus, your SEO strategy begins long before your Drupal website is built. With an effective long-term perspective, its amazing collection of Drupal SEO modules, its flexibility and customization options and not to forget, the loyal community working towards the betterment of the open-source platform, Drupal tops the CMS chart. Drupal 8 (and 9) offers some exemplary modules that can boost your Drupal 8 SEO and SERP ranking.

With our SEO for Drupal guide, you don’t have to go too far in search of Drupal SEO modules, features, and tips to boost your website ranking. 

Lay your Foundation

With Drupal 8, most of the required SEO best practices are already embedded into the core of the platform and with a little knowledge of SEO and some must-have configurations, anybody can possibly boost their website’s SEO to drive more traffic. But before you jump right into the tools and other configurations on Drupal 8, sit back and think about the basics which you need to get right for your website's success.

Things to remember -

  • With your website goals in sight and your visitors' interests in mind, sit down and form a proper pre-SEO strategy, to begin with. 
  • Know your audience before you begin with your Drupal 8 SEO strategy. Once your audience set is established, shooting targeted content will be easier.
  • Pay attention to every detail that goes into your On-page SEO (content, improve keyword ranking), Off-page SEO (backlinks), and Technical SEO (site architecture, UX, clean code). 
  • Website performance and site speed directly contribute to a website’s SEO ranking factor. This is not just true because of Google’s algorithm update for speed but also because a slow loading website hampers user experience.
  • Yes, come 2019 and Google has changed the way SEO used to work previously. The focus is more now on the value you bring to your users – mainly through content. Hence, getting your Content strategy right is very crucial for a good website ranking.
  • Google favors websites that make it easy for users to navigate and access irrespective of the device. With Drupal 8, you can be assured of a responsive website because of its Mobile-first approach. 
  • Remember that SEO works differently for different businesses. There is no one-size-fits-all when it comes to crafting an SEO strategy for your Drupal website.

Top 5 Drupal SEO Modules to Optimize your Website

With Drupal 8 and the continuous innovation approach, it has adopted some of the best-in-class technologies thus making it more future-proof. More importantly, it has made content authoring more powerful and easier at the same time. One of the great things about Drupal 8 is that it is "SEO ready" right out of the box. Drupal 8 has hundreds of Drupal modules to choose from to boost the SEO of your website. Let's make your job easier by laying out some top Drupal SEO modules that help enhance your SEO efforts on your Drupal website.

1. Metatag Module

We all know what a significant role does meta data play in improving the overall SEO of a website. It’s the hidden information that is seen and understood by search engine crawlers that gives them an overview of what your page is all about. The Drupal Metatag module (previously Metatags) lets you create and modify different meta data elements of your website. 

Meta-Module

The Metatag module plays an extremely important role in improving your website’s Drupal SEO ranking. Take a look at this article to set up and install the Drupal Metatag module.

2. Pathauto Module

It is proven now that websites with a more organized, user-friendly and keyword rich URL have a better click-through rate (CTR). And a better CTR means a better SERP ranking. The Drupal Pathauto module lets you easily automatically generate URL or path aliases for different kinds of content.

pathauto-module

         Pathauto Module

You can even create bulk URL aliases automatically when you have tons of content that needs to be converted to user-friendly URLs.

3. Simple XML Sitemap

Sitemaps are essential for any website to let the search engine bots know which of its pages needs to be indexed and on what priority. The Simple XML Sitemap Drupal module allows you to automatically generate XML sitemaps for your Drupal website. The sitemaps generated follow the latest Google standards. 

Simple XML Sitemap

The Simple XML sitemap module also supports multilingual content by creating hreflang sitemaps and image sitemaps.

4. Google Analytics Module

In our recent post on the Google Analytics Module, we discussed how you can add the module to your Drupal website and also create custom reports for better performance of your website. Though the Google Analytics Drupal SEO module does not have any direct effect on your SEO for Drupal or does not improve your search engine ranking, it plays a major role in providing the necessary information that can amplify your Drupal 8 website's SEO success. By tracking your visitors, their behavior and interests within your site, you can change or add new strategies to drive more traffic and increase conversions. You can also use the GA Reports module that can provide you with a graphical representation and details reports about your Drupal website.

drupal google
        Google Analytics Module

5. Redirect Module

Google certainly does not like spammy duplicate content on a web page. Such content can have a negative impact on your SEO efforts and as a result, can harm your rankings on the search engine. On Drupal, while you are happy creating clean URLs with the alias system, you should note that there is a small problem arising. With the creation of new URLs, the default URL still exists and the search engines do not see it as a good sign.

global-redirect.

      Redirect module

The Global redirect module helps in rectifying this problem by verifying the existence of an alias for a URL and letting you manually redirect it to the same. The Redirect module also plays a role in checking the URL implementation and permission or the access required to the nodes and URLs. You can also install the Redirect 404 submodule that will log all the 404 errors and lets users create redirects for those often-requested pages. Another submodule that can be used alongside this module is the Redirect Domain that lets you redirect between different domains.

6. Real-time SEO for Drupal

This is an extremely cool module that lets you edit your SEO elements (meta data) like in real-time! No more worrying about how much description and content is too much or too less. Or wondering what it may look like in the search engines. It is like a What-You-See-Is-What-You-Get editor for SEO. It works in co-ordination with the Metatag module to offer some absolutely stunning features.

real time SEO

7. Drupal SEO Checklist module

If you are a ‘To-do-list’ person who is in love with organizing things, this Drupal SEO module is for you. The Drupal SEO Checklist module is one of most significant Drupal SEO modules and something you absolutely need. This Drupal module does not directly affect your SEO and improve the SERP but will provide critical information on the changes to be made on the site. The Drupal SEO Checklist module checks your entire Drupal website for proper search engine optimization against SEO for Drupal best practices and tells you what to do. It provides a detailed report on what needs to be done to improve the performance of your Drupal website.

seo-checklist
          Drupal SEO Checklist

The SEO checklist module keeps a track of how tasks have been taken care of, what has already been done (with timestamps) and what needs to be attended to. If a task needs you to install a module, it provides with a link to download it as well. This data provides a report that can be used for further monitoring. However, this module is only supported in Drupal 8 (and 7) but not compatible with Drupal 9 yet.


In addition to these Drupal modules, there are many other Drupal SEO modules such as the Page Title module which allows the page title to be set, the Meta tag module which equips you with complete control of meta tags on your Drupal website, and the XML Sitemap module to create a search engine readable, dynamic sitemaps.

Some Additional Tips to Improve your Drupal site's Ranking

Just to let you know, while you were reading this blog:

  • More than a million Google searches were made.
  • Close to 20,000 Facebook posts were posted.
  • More than 1000 blogs were posted on the internet.

The internet is noisier than ever now, and it doesn't seem like it is going to stop anytime soon. SEO at its beginning stages was all about cramming your website with keywords and let the crawlers do their magic. But over time, SEO has blossomed with Google introducing some amazing algorithms and updates to curb the black hat SEO practices.
Right now, for a successful Drupal 8 SEO campaign, you need to study your visitors, their behavior and interests on your website and curate the content accordingly to stay ahead of the curve. You don't want to be in the midst of a content gap which can create problems for your website's conversions. With this study, you have a real opportunity in hand to develop fresh content for your Drupal website and optimize it for the searches on the search engine.
 

Dec 16 2020
Dec 16

As a developer I tend to be lazy. I'm always searching for tools or shortcuts to make my live more comfortable.

Recently I stumbled across a giving an example on how to use migrate instead of a custom update script to update existing entities. Having no use for it at this time I saved it in my "maybe useful later"-part of my brain ... and forgot about it.

However, last week I had to add an existing field to the form display of all Paragraphs types in a project. Additionally a new field should be added and configured. Because I didn't want to configure the fields manually (remember? I'm a lazy developer!) for all Paragraphs types (there are about 80 of them in this project) I normally would have written an update hook for this task. But then I remembered the tweet and thought "wouldn't it be also possible to update the configuration using migrate?".

What do we need?

The first part of the task is easy: to display an existing field in the form of an entity you simply drag it from the "hidden" section to the content section.

Paragraphs form display Form display of a simple Paragraphs type.

After moving the field "Published" into the content section, I exported the configuration changes to see what happened and got the following result for core.entity_form_display.paragraph.text.default.yml:

Configuration changes in Paragraphs form display Configuration changes in Paragraphs form display

So in my migration I have to replicate exactly this configuration change for all Paragraphs types.

Migrating form display settings

In the migration I need a source plugin for all available Paragraphs types first. Because I already made the necessary changes to the form display of Paragraphs type "Text" the source plugin also needs the possibility to exclude certain items (well, I eventually could have reverted the previous configuration changes and start over with a recent database backup, but ...).

  1. namespace Drupal\up_migrate\Plugin\migrate\source;

  2. use ArrayObject;

  3. use Drupal\Core\StringTranslation\StringTranslationTrait;

  4. use Drupal\migrate\Plugin\migrate\source\SourcePluginBase;

  5. use Drupal\migrate\Plugin\MigrationInterface;

  6. use Drupal\paragraphs\Entity\ParagraphsType;

  7. /**

  8.  * Source plugin for ParagraphsType.

  9.  *

  10.  * @MigrateSource(

  11.  *   id = "up_paragraphs_type",

  12.  *   source_module = "up_migrate"

  13.  * )

  14.  */

  15. class UpParagraphsType extends SourcePluginBase {

  16.   use StringTranslationTrait {

  17.     t as t_original;

  18.   }

  19.   /**

  20.    * List of paragraphs types to exclude.

  21.    *

  22.    * @var array

  23.    */

  24.   protected $exclude = [];

  25.   /**

  26.    * List of paragraph types.

  27.    *

  28.    * @var array

  29.    */

  30.   protected $items = [];

  31.   /**

  32.    * {@inheritdoc}

  33.    */

  34.   protected function t($string, array $args = [], array $options = []) {
  35.     if (empty($options['context'])) {
  36.       $options['context'] = 'up_migrate';

  37.     }

  38.     return $this->t_original($string, $args, $options);

  39.   }

  40.   /**

  41.    * {@inheritdoc}

  42.    */

  43.   public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration) {
  44.     parent::__construct($configuration, $plugin_id, $plugin_definition, $migration);

  45.     if (isset($configuration['exclude'])) {
  46.       $this->exclude = $configuration['exclude'];

  47.     }

  48.   }

  49.   /**

  50.    * {@inheritdoc}

  51.    */

  52.   public function fields() {

  53.     return [

  54.       'id' => $this->t('ID'),

  55.       'label' => $this->t('Label'),

  56.     ];

  57.   }

  58.   /**

  59.    * {@inheritdoc}

  60.    */

  61.   public function getIds() {

  62.     $ids['id']['type'] = 'string';

  63.     return $ids;

  64.   }

  65.   /**

  66.    * Return a comma-separated list of paragraph type ids.

  67.    */

  68.   public function __toString() {

  69.     return implode(', ', array_column($this->items, 'id'));
  70.   }

  71.   /**

  72.    * {@inheritdoc}

  73.    */

  74.   protected function initializeIterator() {

  75.     $this->items = [];

  76.     $paragraphs_types = ParagraphsType::loadMultiple();

  77.     /** @var \Drupal\paragraphs\ParagraphsTypeInterface $paragraphs_type */

  78.     foreach ($paragraphs_types as $paragraphs_type) {

  79.       $this->items[$paragraphs_type->id()] = [

  80.         'id' => $paragraphs_type->id(),

  81.         'label' => $paragraphs_type->label(),

  82.       ];

  83.     }

  84.     if (!empty($this->exclude)) {
  85.     }

  86.     return (new ArrayObject($this->items))->getIterator();

  87.   }

  88.   /**

  89.    * {@inheritdoc}

  90.    */

  91.   public function count($refresh = FALSE) {
  92.     parent::count($this->items);
  93.   }

  94. }

As you can see in the gist above, the source plugin is very simple. It grabs a list of all available Paragraphs types and removes the types you would like to exclude.

The next step is to write a migration that updates the configuration for the form display.

  1. id: paragraphtypes_form_display__status

  2. label: Add status field to paragraph form display.

  3. source:

  4.   plugin: up_paragraphs_type

  5.   exclude:

  6.    - text

  7.   constants:

  8.     entity_type: paragraph

  9.     field_name: status

  10.     form_mode: default

  11.     options:

  12.       region: content

  13.       settings:

  14.         display_label: true

  15.       third_party_settings: {  }

  16.       type: boolean_checkbox

  17.       weight: 5

  18. process:

  19.   bundle: id

  20.   entity_type: constants/entity_type

  21.   field_name: constants/field_name

  22.   form_mode: constants/form_mode

  23.   options: constants/options

  24. destination:

  25.   plugin: component_entity_form_display

  26. migration_tags:

  27.  - up_paragraphstype

The migration uses the new source plugin "up_paragraphs_type" and excludes the Paragraphs type "text" from the list to process. In line 11..17 we set exactly the same display settings as in the screenshot showing the configuration changes made for the "Text" Paragraphs type.

In the "process" section the migration loops over the results from the source plugin, using only the returned ID from each Paragraphs type and otherwise the constants defined earlier. Since we would like to update the form display configuration, we choose the "component_entity_form_display" plugin as destination, which is kindly provided directly by Drupal Core.

After running the migration all Paragraphs types available on the site are configured to display the "Published" checkbox. Yeah!

What about new fields?

But what about the new field I needed to create? Basically the migration doesn't really differ from the one above. The only thing we need to add is an additional migration creating the field configuration for each Paragraphs type.

Let's say, we would like to create a text field named "Comment" for all Paragraphs types. Then you will need to create the field storage for this field using something like this:

Note: if you have created the field manually (like me for Paragraphs type "Text") you can skip this migration because the field storage is already existent.

To add the newly created field we need to create a field instance for each Paragraphs type. This can be done by using the migration destination "entity:field_config":

Simple, isn't it?

What's up next?

After seeing how simple it is to create and update field configuration some new ideas came to our mind. It should also be possible to create entity types containing all required fields and display configuration using migrate. This could be a great option to enable some additional features on a site simply by clicking on a button (disclaimer: of course you need to export the configuration and eventually do some more stuff).

But this is stuff for another blogpost ...

Dec 15 2020
Dec 15

At Promet Source, our favorite types of questions are “why not?” and “what if?”  This mindset energizes new approaches and possibilities. It’s the perspective that’s fueled a lot of our collective brainpower lately, sparking some big questions such as: 


What if we could leverage the coding and the components that we create for one website, for purposes of building a foundation for vast new efficiencies while making content editing easier and more efficient?

And

How can we simplify content editing, while empowering marketers and content editors to revise and reconfigure their sites as they see fit, without requiring any tech expertise or tinkering with the code?

These are the kinds of questions that have driven the development of Provus

What is Provus?

Provus is Promet’s solution for making the content editing experience better for marketers and site managers.

Promet Source created Provus because we get it -- that within every organization, priorities, perspectives, and products are constantly evolving, and that keeping Drupal sites updated at the same pace is a big challenge for fast-moving marketing teams.

With Provus, marketers and content editors get access to a library of customized, commonly used components -- such as galleries, carousels, maps, lists, blogs, FAQs, quick links, grids, social media assets, and events -- that are designed to be mixed, matched, and rearranged. 

What Sets Provus Apart?

A big differentiator between Provus and other drag-and-drop page-building tools is that marketers and content editors can be assured that they won't "break the site" and any combination of components available within Provus will be ADA accessible, adhere to brand standards, and look great. 

Clients working with Promet benefit from our design team customizing options for their site to ensure that the range of possibilities for reconfiguring the look and layout of a page is within a system of brand and accessibility guidelines. Provus is Open Source and has the inherent benefits of an Open Source product. 

 

Content editors can also count on: 

  • Self-adjusting features that ensure adequate contrast between fonts and background colors for readability and ADA accessibility. 
  • The assurance that brand guidelines stay intact as layouts change. 
  • The ability to easily change patterns within the views, eliminating the need to switch back and forth between edit and publish modes.

Provus bridges the CMS divide that had formerly existed between easy-to-create and manage solutions, such as -- WIX or Squarespace -- and Drupal, which provides a scalable solution for complex, enterprise-level sites.

 

See the difference

This sequence of images demonstrates how a single view can be adjusted without having to delete the existing component, redundantly re-enter content, and start a new layout. Provus enables the content editor to simply select from several alternate views creating a variety of layouts with either manual inline content or pulling in automatic dynamic content from existing Drupal content types such as News or Events.

Screen capture of the Provus Content Editor experienceThe Provus CMS within Drupal allows easy selection from a variety of layouts.Screen Cap of the Provus CMSFeaturing the Card Carousel, the Group Display component provides multiple views of a set of contents.Provus CMS view of a simplified content editing experienceProvus users simply change the layout by selecting a new view within the component without having to reenter content. Multiple view options are available for this commonly used component.Carousel view displayed in the Wysiwyg editor.The newly selected view is then displayed in the Drupal WYSIWYG editor of Layout Builder. The library of components that are part of Provus provides ways to display engaging content that extends beyond basic content pages that are part of Drupal out-of-the-box.

 

What's New & Next

As a thought leader on how humans interact with technology, Promet Source has enthusiastically created Provus and we are excited about the new possibilities that are in store.

Interested in hearing what Provus can do for you, or seeing a demo of Provus in action?

Read more about Provus here and Sign up for a demo!

Dec 15 2020
Dec 15

I'm happy to announce that the personal reader project I've been writing for Drupal is now available for download! You can install it on your website, and as a PWA on your phone or tablet. No more third party applications, just pure HTML, css and the power of Drupal. The layout is heavily influenced by the Mastodon project, but needs more tweaks to fix the responsive behavior.

The project consists of two parts:

  • reader module: API for getting channels, streams etc. The main entry point is at /reader. Configuration is at admin/config/services/reader.
  • reader theme: theme for displaying the content. The theme enables you to install the reader on the home screen of your mobile phone.

Modules that implement the api are ActivityPub and IndieWeb. Support for the core Aggregator module is also imlemented.

I've recorded a short screencast showing the current interface and also how to install on a mobile phone! You can see channels from the IndieWeb microsub module and the local ActivityPub timeline of people I'm following on the Fediverse.

Happy reading!

A personal reader for Drupal, integrating with #activitypub and #indieweb with PWA support on mobile phones! https://realize.be/blog/personal-reader-drupal

Dec 15 2020
Dec 15
Dec 15, 2020 Product

Notebooks are essential for every organization, project or team. They provide a central place for consistent documentation, so we implemented them in the latest update of Lucius

You can think of notebooks as simple text documents. Which facilitate a central, consistent place for all your documentation needed in your organization, department, project or team.

You can also use them for example for:

  • General manuals;
  • Project documentation;
  • Team information;
  • Onboarding information for new people.

Just like stories, current version is a starting point for Notebooks. Further features will be done based on user feedback. But it’s enough to work with in our experience testing them.

Customizable, brandable

Just like the rest of the Lucius features, Notebooks are:

  • Customizable to your organization's needs;
  • ‘Brandable’ to your companies house style;
  • Because: 100% open source :)

Test Notebooks this instant, or install Lucius yourself

If you want to test Notebooks this instant, that of course is possible: try them now for free. Or download and install OpenLucius yourself via the project page on Drupal.org

Dec 15 2020
Dec 15

In early 2020, just before the Covid pandemic struck, Gartner made a groundbreaking move: they abandoned their magic quadrant for web content management, essentially replacing it with the DXP (Digital Experience Platform) quadrant.

In hindsight, this came right at the perfect moment, serving almost as a kind of prophecy of the omnipresence of digital experiences 2020 was to bring about.

With more and more businesses expanding into every digital channel, enterprise digital experiences are also transforming and becoming more clearly defined.

In this article, we’ll take a look at the main characteristics of enterprise digital experiences to see how they differ from traditional digital experiences, and provide some examples of robust platforms and frameworks for powering high-level enterprise digital experiences.

Must-haves of enterprise digital experiences

As opposed to, say, a relatively simple WordPress blog, enterprise digital experiences require more consideration and a much more streamlined, cohesive approach. In this section, we’ll go through the essential characteristics of enterprise digital experiences.

Security 

Of course security is important for any kind of online experience. The larger the business, though, the more devastating an impact a potential security breach can have, even ignoring the multi-layered implications such as audience backlash.

Both internal and customer-facing digital experiences, e.g. respectively staff security protocols and e-commerce check-out processes, need to be optimized for maximum security in order to minimize risks at all touchpoints.

Accessibility

While a personal blogging website may get away with a few accessibility issues, if you’re an enterprise providing essential digital services on a large scale, to a large and varied audience, you must prioritize accessibility - it would be illegal not to. Check out more reasons why accessibility benefits a business.

This is especially important for any company providing a physical service - in this case, every user should get an equal right to accessing your service and receive an equally satisfactory experience. 

Experience - both user/customer and marketer/developer

Another important factor of enterprise digital experiences is, well, the experience itself. The last point on accessibility is related to this, in that the user or customer experiences should always be put first, a kind of human-centered approach.

What’s also crucial here, however, is the experience of those who are creating and managing these user-focused experiences. In other words, all the teams responsible for delivering your digital experiences should be enabled to do so in the best possible way. 

Each department will need the optimal tools and processes for executing their role most effectively. Marketing automation, design systems, DevOps, an excellent content editor experience - these are all essential factors in providing enterprise digital experiences at scale.

Multichannel / omnichannel

Not that long ago, it might have been enough for a business to have a website where they could be reached online - optimized for mobile, if possible. In the post-Covid era, however, it’s become apparent that a website, in most cases, may not be enough anymore. 

With the explosion of digital channels, the abundance of options all vying for users’ attention, businesses must go to great lengths to reach them at all possible touchpoints of their digital journey and stay relevant amid the fierce competition. 

A strong social media presence and mobile optimization are now essential elements for a brand, but options are even more plentiful. Targeted advertising in particular enables companies to stay in touch with their customers as they move throughout the web; and this leads neatly into the next point:

Data-driven

Despite the recent and upcoming privacy regulations, data remains king, likely even more so post- than pre-Covid. For a digitally-first business wanting to deliver exceptional digital experiences, leveraging data in marketing and decision-making is an absolute must.

After all, the best customer experiences, those truly heartfelt personalized ones, depend heavily on data, and with the insane amount of data we have access to, it would be even more insane not to make use of it.

That said, just having data is not enough - you need to know how to make the best use of it, which starts with collecting and analyzing it in the right ways. Moreover, there’s a thin line between great personalization and creepiness, so make sure to keep that in mind as well. 

Integration with multiple systems / APIs

One of the main things enabling effective data usage is integration, the bread and butter of enterprise digital experiences. With platforms often using different services that are tied together, and even those very services depending on different third-party technologies, integrations are literally that which makes everything function properly.

The API connection between your front- and back-end, integrations with e-commerce and CRM - can you even imagine your business continuing operating if all of these things haven’t been taken care of? 

Integrations are becoming the life force of the latest wave of digital experiences, enabling omni- and multichannel experiences through easy data flow and sharing, and resulting in enhanced digital journeys which meet users’ needs and desires. 

Evergreen must-haves

You may have noticed that we haven’t yet mentioned some of the absolutely key elements of digital experiences - don’t worry, we’ll be covering those in this next section, we just wanted to first highlight the ones that are more specific to enterprise digital experiences. 

In contrast with the above list, most of these should be top-of-mind even for more personal digital experiences, e.g. blogging, or small local businesses, as they’ve become a mainstay of experiences on the web and a baseline for users’ expectations. 

Performance 

This is probably the number one thing for any kind of digital experience. We’re sure you’ve heard or read countless times how many seconds it takes for which percent of visitors to abandon your site, so we won’t reiterate on that. 

Just keep the need for speed top of mind, no matter if you sell a global SaaS product or provide local knitting services. 

Content 

Again, this is something that’s common to all sizes of businesses and websites. When it comes down to it, it’s actually all the web is about: content. 

Sure, the nature of content is different with a small personal blog than with a large international business, but in both cases, it’s one of the key elements of a good online experience.

SEO

Speaking of content - what good is good content if no one knows about it? People search for everything on Google, and if your high-quality article is lurking on page 4, that’s essentially the same as it not even existing. 

How deep into SEO you’ll go largely depends on what position in the market you want to achieve, but even if you’re just content with 10 people reading your food blog each month, performing some baseline optimization for search engines definitely won’t hurt.

E-commerce

Being able to purchase things online has become an absolute must for digital experiences - especially post-Covid. No matter what kind of product or service you offer, you’ll want to ensure that your customers can access it digitally.

E-commerce is the one area that really requires a top-notch customer experience in every aspect. And since we’re dealing with financial transactions here, even smaller local businesses will want to ensure a maximum level of security for their checkout processes, for example.

Platforms and frameworks

Warehouse / factory in shade of blue

Next up, we’ll take a look at some digital experience frameworks that are particularly suited towards enterprise digital experiences.

Drupal

Drupal is the leading CMS for enterprise digital experiences, especially with the latest version 9 released in June 2020. It can serve as a robust back-end that integrates with a custom front-end, or a fully-fledged digital experience platform which is optimized for security and accessibility. 

For large businesses, Drupal is definitely the number one choice in terms of a content management, or rather, digital experience management system. It is capable of powering future-proof multisite platforms and introduces streamlined editorial workflows that can be tailored to even the most complex business processes.

It’s no surprise, then, that so many companies and organizations requiring the highest level of digital experience opt for Drupal. This includes a majority of government and educational institutions, but also corporations such as Pfizer, who are both users of as well as heavy contributors to Drupal.

JavaScript

In recent years, JavaScript has transitioned from being seen as a less professional front-end development language to essentially being the language powering digital experiences, with the Node.js runtime enabling back-end JS development and the numerous frameworks allowing for any kind of front-end presentation.

These JavaScript-based frameworks have also made great strides lately, and the competition between them in combination with their open-source nature allows for a high level of innovation.

While Facebook’s React is currently the most popular JavaScript-based technology, Google’s Angular framework is actually the best suited for enterprise use cases. It’s ideal for large-scale business applications, where there is a high priority on security and best practices, as well as often a need for cross-team collaboration.

Laravel 

As far as back-end web frameworks go, you can hardly do better than Laravel. Based on the most widely used back-end language for the web, PHP, it’s by far the most popular framework in that ecosystem, and with good reason. 

Not only does Laravel provide an enhanced developer experience, it’s also optimized for security and very customizable. Similarly to Drupal, it is often seen as part of a decoupled application with React or Vue for the front-end. 

Its biggest benefit for enterprises, however, is the increased speed and consequently reduced cost of development thanks to its streamlining of some of the most frequent tasks in web development, e.g. user authentication and caching.

Spryker

When it comes to enterprise e-commerce, the Spryker Cloud Commerce OS ticks all the boxes, with the latest generation being particularly optimized for enterprise customer experiences.

Not only are digital experiences created with Spryker highly secure, scalable and performant, the framework also enables excellent integration with third-party systems and thus allows your brand to be present and reach your customers on any channel they frequent.

On top of everything, Spryker offers a high level of customization and personalization to cater to the needs of the next-generation digital shopper, thanks to its flexible content management system and API support.

Conclusion

Hand holding up hologram of Planet Earth in front of multiple colorful screens

We hope this article has provided you with a better understanding of enterprise digital experiences, their main requirements and some of the top technologies for crafting them. 

If you’re looking to enhance your enterprise’s digital presence and are looking for a development partner to help you create advanced digital experiences, reach out to us and we’ll help you select the right technology for your business case as well as take care of the implementation.

Dec 15 2020
Dec 15

Every aesthetically pleasing website has a common ground - a good theme. An attractive theme can bring the website’s visuals to life and facilitate you to create a powerful brand identity. But that’s just one part of the story!

The website theme, beyond being beautiful, should cater to great user experiences also. 

And that’s how you prepare a robust yet enticing website - maintaining design & the best usability practices hand-in-hand are the key to increase conversion rates.

The launch of Drupal 9 in June encouraged the community to make it high up on their agenda to revamp its user experience and ensure friendliness for every stakeholder - designers, editors, marketers, and developers, of course. 

With an emphasis on Olivero, a modern front-end theme designed to exhibit the CMS in its best light; front-end developers can expect plenty of benefits from it. 

It will empower them to bring that magical touch to the websites by utilizing their creativity along with modern tools and frameworks to define layout, styles, typography, buttons, color schemes, and many more, to drive the visuals and engagements of the website/ application.

This blog walks you through Drupal's soon-to-be default theme - Olivero and how front-end developers can leverage it for designing a great website.

Olivero and It’s Benefits

Olivero is going to be a new default front-end theme that is expected to be rolled out in Drupal 9.2. It is designed to give Drupal a flamboyant look and feel. Olivero is also going to be compatible with the Drupal 8 website as a contributed theme.

Currently, Bartik, a ten-year-old theme, initially created for D7, is being used. It is certainly mobile-responsive and had some outstanding features to meet D8’s mobile-first requirements. However, the development has outdated the design. 

Thus, the need for a new front-end theme emerged to showcase Drupal’s strength appropriately.

Drupal Trivia

Olivero is named after a female programmer, Rachel Olivero, an outstanding supporter/ programmer of website accessibility. Sadly, she passed away in 2019. To honor her, the Drupal community kept her name alive with this beautiful theme. The idea is to showcase patience, generosity, and inclusiveness - the qualities of Rachel that the theme should also epitomize.

Benefits of Olivero Theme in Drupal 9

The Olivero theme is intended to give Drupal websites an eye-pleasing view apart from ensuring,

  • Simplicity- declutters by eliminating the colors, effects, and visual elements that make the theme look and feel too heavy.
  • Professional look - encompass all the design elements, for instance, negative space and high contrast, to grab users’ attention.
  • Accessibility- designed with WCAG AA conformity in mind, from functionality to layout, to colors, all components will be accessible for everyone. 

Drupal Trivia

The blind federation conducted an accessibility test to evaluate the Olivero theme for visually impaired users. They were happy and satisfied with its design and high responsiveness.

  • Flexibility- facilitates Drupal front-end developers with multiple options to choose from - be it button styles, headers, or logo styles to text titles, and many more.
  • Compatibility - supports modern browsers’ features & various engagement modes. The creators have ensured that the theme supports recent Drupal updates and features for websites such as Layout builder, media embeds, second-level navigation, and many more.

Get the Hang Of Olivero’s Exciting Features

Here are the features of Olivero that you can leverage for designing your next Drupal website-

A. Bright color palette

Websites leveraging Olivero’s color scheme will look beautiful with a base color of bright blue. Besides being attractive, it would boost Drupal’s brand recognition. Several permutations and combinations of darker and lighter colors and shades would provide website improved accessibility.

Screen Shot 2020-12-15 at 11.23.46 AM

A bright color palette in Olivero theme

Source- Drupal.org

B. Simple and elegant forms & buttons

The forms and buttons added in the new theme are user-friendly, distinguishable, and accessible. Forms comprise a left color bar, and their labels are placed above the fields to abide by the website accessibility requirements and guidelines. 

The buttons inform users about clickable action. The theme also has a filled primary button style and a secondary button style which is an outlined version of the button.

The buttons’ different modes are present default in Olivero, unlike other themes where you need to define these modes. 

The four modes are- Default, Hover, Focus, and Active

8 rectangles in white background

                                                                 

                                                                 Button modes in new theme                                                                                                                                         
                                                                   Source- Drupal.org

C. Typography

Typography provides scale to maintain uniform sizing, line height, and spacing throughout the design. The base font used for body copy is 18px. The size can be tweaked for smaller screen sizes.

Consistency, throughout line-height and spacing, has been a key objective when setting the scale for typography.

D. Flexible header and navigation options

Navigation options can cater to any website’s needs. The header can fold into a hamburger button menu when scrolling, allowing the user to access the menu easily on long pages. 

The secondary dropdown menus are also supported by Olivero, thus saving coding efforts of developers unlike Bartik where they need to reinvent the wheel time & again.


E. Vertical Rhythm

Vertical rhythm ensures the correct spacing arrangement of the text. It calculates line-height, font size, and margin or padding to maintain equal space throughout the website. 

F. UI Patterns

The header is designed flexibly so that it can accommodate the text titles and or logos of varied width and height. 

On scroll down, the header will fall into a hamburger-button menu, to let the user access the menu or longer pages.

G. Site branding variations

You can tweak the theme settings to change the background color and width of the site-branding to incorporate different types of logos and long text.

white background with text and boxes

Flexible site-branding options in Olivero

Source- Drupal.org

H. Forms

These simple yet modern forms consist of elements that enhance the design, while still being recognizable, usable, and accessible. 

The left color bar highlights the form element and labels are added above the form field to avoid confusion. Form fields have a consistent look to indicate to users that they are a form element. States such as focus, disabled, and errors have also been accounted for.

3 field boxes

Highlighting error state in the form

Source- Drupal.org

I. Tables

Table divider lines are designed such that it improves readability. Olivero's theme will also support the responsive table features of Drupal. 

J. Sidebar

Only one sidebar is implemented to stop competition for space on the screen. It improves readability and allows content to look more rich and prominent on the screen. Editors can showcase related posts and other types of utility blocks too. 

The sidebar also offers good support and space.

Text written in white background

One sidebar aimed at improving readability

Source- Drupal.org

K. RTL Support

Olivero theme supports right-to-left languages as required by Drupal core. It also supports better display and multilingual functionality. For example, Arabic, Hebrew, Persian, and Urdu support RTL writing and so does Drupal.

text written from right to left in white background

RTL support in Olivero

Source- Drupal.org

L. Messages

Messages intent to inform users for they need to consume important information or provide feedback on an action already taken. 

Messages are visible as they are designed with bright colors to highlight the message and yet don’t mess up with the readability of the message itself. 

Text written in white background

Displaying messages per their type (error, alert, and success message)

Source- Drupal.org

M. Breadcrumbs

Breadcrumbs in Olivero are placed near the top of the page above the page title to help users keep track of documents or websites. 

A visual cue informs users about more breadcrumbs which they can access later by swiping left to right or right to left. This feature is not part of MVP. 

Text written in white background

Breadcrumbs to keep track of pages

Source- Drupal.org

N. Color module

This feature is not part of the initial release. However, this or similar functionality might be included later. 

Challenges That Olivero is Going To solve for front-end developers

Olivero is a modern theme with a magnificent look and feel. It can help front-end developers in simplifying their work. See how-

1. Lighter theme with up-to-date design elements

Unlike Bartik which used outdated graphical elements such as drop shadow and gradient, it uses a layout builder, grid system, hamburger menu, to name a few, to ensure that the site remains lightweight and responsive.

2. Low code

There is little or no coding required in CSS to determine the presentation of a web document and for adding content blocks anywhere. 

There are few other scenarios that simplifies the work of front-end developers -

  • Bartik doesn’t offer a secondary menu while Olivero does. This saves the coding efforts of front-end developers 
  • If any other theme is used, the hamburger menu is not available. Olivero theme is mobile-friendly. It encapsulates the menu automatically via the hamburger menu feature. No coding is required for it.

3. Scalability

Even on enlarging page size, it won’t break. Instead, it would give you a clear view as always. This makes Olivero more responsive.

4. Compatibility with other browsers

Bartik is not compatible with other browsers like Internet Explorer 11 while Olivero is. Front-end developers need not write code separately to ensure the support to all the functionality and features of the browsers. 

5. Code compilation/ testing

Olivero has CSS Grid Layout that can handle both columns and rows. It is a powerful layout system that helps developers write code hassle-free. They can write code in a nested structure to make it compact, easy to understand and increase readability. 

6. Extensibility with PostCSS Standalone technology

PostCSS is an accessible tool that empowers front-end developers to easily contribute to in the form of custom plugins. 

It simplifies the writing of CSS stylesheets by keeping code simple and facilitating understanding of dependent selectors and media queries within the stylesheet. 

During the development of the Olivero theme, there were several PostCSS plugins that were leveraged to make the CSS more readable and reduce the probability of breaking the page.

Conclusion

Olivero is a modern theme that is going to be the new default theme for Drupal from version 9.2. Front-end developers can use this flexible and scalable framework to improve work efficiency and create exquisite websites. 

Figure out how your enterprise can leverage Olivero’s constructive features to empower your front-end developers. Meanwhile, let’s wait for this beautiful theme!

Dec 15 2020
Dec 15

Have you ever wondered how websites are built? Sure, there is an entire army, consisting of developers, designers, project managers and business analysts, involved, but is that all? Do they work independently? Do they work day-in and day-out to build the website from the ground up? Do they have some help in doing that? 

If you are a part of the website development army, you might know what I am trying to get at. It is true that websites are built from scratch, but what is also true is the fact that these websites require some help to get the scratch go on to be a fully-functional site and that help comes from a content management system, a CMS to be short. 

There are a few in the market, with Wordpress leading the way in market share numbers, however, we would be talking about the one that is leading the way in functionality and features. And that is Drupal. 

As of November 8, 2020, there are slightly more than 1 million Drupal sites all over the world. This number is a testament to Drupal’s abilities to give your site whatever it wants. 

To that accord, there has been a new vogue in Drupal and the way it is capitalised by its sites. And that is what we are going to discuss, before that let us delve briefly into Drupal’s traditional abilities.

Traditional Drupal VS Decoupled Drupal 

There are four circles showing how the different aspects of decoupled Drupal architecture are interconnected.Source: DZone

Like I said before, Drupal is a CMS, so it is equipped to build websites from scratch. And that is what the traditional/monolithic/coupled Drupal does. From the user interface to the data access code, Drupal caters for all your website needs. Being responsible for the front and backend, the traditional Drupal helps you in building versatile web experiences.

With Drupal’s themes, templates and behaviours, it is extremely easy to create a dynamic presentation layer for your website. The fact the Drupal allows you to build and customise a live site along with providing solutions for any frontend mishaps is another compelling reason to opt for the traditional Drupal. 

Yet there are many who think that Drupal’s frontend capabilities are not as impressive as that of JavaScript. Although Drupal has a JavaScript library in its corner, it does not have the JS framework to work with, so maybe they are right. So, as a solution, the advent of decoupled Drupal architecture was seen.

The Decoupled Drupal has a slightly different story to tell than its monolithic counterpart. You would still have Drupal and its abilities at your disposal, however, you would have a little more than just Drupal to work with. With decoupling, you would simply be saying goodbye to Drupal’s frontend abilities, either completely or partially, that is up to. Drupal would only be used as a content repository and your entire presentation layer will be made up of other frontend technologies; Angular, Vue and React are some of them. 

The Decoupled Drupal has two variants for you to choose from; 

  • First would be the progressively decoupled approach, in which you would be leveraging other frontend technologies and amalgamating it with Drupal’s frontend capabilities. This could be regarded as the best of both worlds. 
  • Second is the fully decoupled web app, in which your presentation layer is going to be handled by a JavaScript framework and will be completely independent of Drupal, and it would only be used for the backend architecture. Fully decoupled Drupal architecture for static sites is another option. In this approach, Drupal acts as a content source for static sites, aiding static site generators like Gatsby to create your site by taking data from Drupal. 

To know more about the working of decoupled Drupal, how it is different from the traditional architecture and what are the specifics of the technologies involved, read our blog Monolithic and Decoupled Drupal Architectures

The Move from Traditional to Decoupled Drupal 

Now that you have a fair idea as to what decoupled Drupal is, it is time to find out when the right time is to make the move from coupled to decoupled Drupal architecture. Let me ask you a question first, have you ever made a business decision without taking into consideration the pros and cons of that decision? I’m certain, you haven’t. So, for that very reason let me tell you why decoupled Drupal architecture is advantageous. 

The motto “Write once, publish everywhere” could be the tagline of decoupled Drupal. It allows you to leverage social media, emails, the intranet, apps, microsites along with your primary publishing platform, so that you can make your content as universal as you want. This is an advantage that makes decoupling the go to option for many. Then there is the fact that through decoupling you can enhance your user experience, get upgraded faster, which would make your team work at an enhanced efficiency, along with this decoupling also provides you the opportunity to become more innovative. The JavaScript framework, which would be at play in decoupling is the icing on top. 

You might think that with these many advantages, decoupling cannot ever be the wrong choice. It doesn’t have to be, if you know what the limitations are and are equipped to combat them. The most blatant drawback of decoupling is the fact that you would be losing out-of-the-box Drupal features, for some this can be a deal breaker. Obviously, since Drupal would not be at play on the frontend, you would have to part with its capabilities; you can’t bake the cake and eat it too, unless of course you choose progressively decoupled Drupal. Another problem that is often seen in decoupling is that the coding becomes a hassle and so does identifying bugs. 

After discussing the benefits of Decoupled Drupal along with its drawbacks, it is time to ask yourself some tough questions. For it is these questions that would help you in the decision to move. 

  • Is your business reliant on multiple channels and microsites to spread and accumulate content to and from? 
  • Is it your opinion that being reliant on one technology for your entire project is not a wise choice?
  • Are you unhappy with the interactivity your website provides to its users and want to capitalise on JavaScript framework to enhance it?
  • Do you have more developers who are experts in JavaScript than Drupal? Are you planning to take advantage of their expertise in JS?
  • Have you not been using all of Drupal’s frontend assets and think they only bring in more work?
  • Is building an app a future goal of yours?
  • Are your editorial needs basic?
  • Finally, do you have the budget to decouple, because Drupal may be free, other frontend technologies aren’t?

Think of your answer to all of these questions and then read our blog When to move from monolithic to decoupled Drupal architecture to understand all the nitty gritty details behind the move.

The Final Call  

In the end, all I want to say is that there are going to be benefits and limitations for your project, in both the coupled and decoupled Drupal architectures. If you want to make a decision, consider your needs over anything else. If you feel that your current architecture is not cutting it for you, the move could then be considered inevitable and prudent. If not, then maybe waiting for a time when there is an actual need would be the sounder choice to make. There is only one answer to “When to Decouple Drupal?” and that is when you have the need. 

Dec 14 2020
Dec 14

Since we have been working in a remote setup for more than ten years, we always look forward to the yearly DrupalCon so we can finally see each other again as one team. This year, despite everything going on with Covid-19, we wanted to keep up the tradition and bought tickets for the whole team. Unlike in previous years, DrupalCon Europe 2020 took place as a digital-only conference.

For this virtual DrupalCon, we decided to not fall into the work-trap but fully focus on the event and the sessions. We created a Miro board with frames for each team member to document sessions while they happened. We also created a DrupalCon Slack channel within which people would start threads for a session they were in, so we could chat about what we found interesting. Personally, I found reading this very helpful because if I was in another session, I would still immediately know if there is a session I would want to watch later.

DrupalCon Europe 2020

Advantages Of A Virtual DrupalCon

Being able to meet the Drupal community in person is a highlight for us each year. However, in this year's virtual setup, we found quite a few advantages:

  • One of the major advantages for me personally was that sitting at the computer while watching sessions allowed us to take better notes than usual and made it possible to chat within our team in Slack as well as with other attendees in the sessions' discussion chats
  • The coffee was better and there was no line to get it
  • No chance for Drupal Flu
  • Bluetooth headphones allowed us to do stuff while still listening
  • Better networking during sessions: In a single room you can't really talk to someone sitting next to you or on the other side of the room. But in this virtual setting, you can
  • More sleep, less commuting
  • Saved money and CO2 for transportation and accommodation
  • People who are shy to speak in public can ask questions

Disadvantages

Of course there were some challenges with this years setup:

  • No great networking opportunities between sessions. The discussion chat was disabled as soon as the session ended. If you wanted to contact a person via Meeting Hub, you were out of luck if they didn't see your connection request.
  • Not being able to collect giveaways or play fun games at sponsor booths
  • Not being able to do sightseeing in an exciting city
  • With family being around, you are more likely to not attend evening events with your team
  • Documenting in Miro and Slack prevented me from using Twitter for sharing more about the event into the world outside of DrupalCon

Tips For Your Next Virtual Conference

We did block our team for DrupalCon but there was the occasional private appointment that we should have planned for another week.

  • Block the conference days to be able to focus on sessions instead of work
  • No work or private appointments during DrupalCon session hours you wouldn't have made while in another city
  • If you have anything planned for the evening with other attendees, be able to take part as if you were in a room together. Get a babysitter, let your partner know you are not available etc.

Our Team's Favorite Sessions

Almost all sessions were recorded and will be publicly available in about a month after the conference. If you bought a ticket, you may log back in to the EventsAir platform and find the session video there. We will add links to the videos of our favorite sessions as soon as the Drupal Association makes them available for the public on Vimeo.

Tom

Steffen

Dennis

Luca

Stefan

Lucio

Andre

Siavash

Simone

Andreas

Anja

The main topics I took from this DrupalCon were personalization/DXP (Apache Unomi, Mautic, Smart Content Paragraphs), the Gin Admin Theme and Digital Signage.

The following sessions are on my to-watch list after hearing good feedback from others:

We would like to thank all volunteers, the Drupal Association and Kuoni for making this an unforgettable event. 

Dec 11 2020
Dec 11

To say that a website or a web application is deemed worthy primarily because of its content would not be totally wrong. A website’s performance does play in the equation, but it is the content that seals the deal for the user. Web builders across the world are becoming aware of this fact and that is why the web content management (WCM) systems have become pivotal for websites. 

A WCM helps you in attracting and retaining your clients and ultimately give you the revenues that you had desired from the time the idea of the website came to you. Therefore, choosing the right WCM that is suitable to all your business needs is probably one of the most significant decisions you will take for your website. 

There indeed are numerous options to choose from, however, two of these have been stealing the limelight from all the others in the recent times. And these are Drupal and AEM. So, let us compare these two to make your decision a tad bit easier. 

Parameters Drupal  AEM  Performance and scalability  Ease of expansion; impeccable performance  Growth mandates performance and stress tests Content workflow Flexible  Flexible  Marketing and engineering perceptions Community driven innovations for developers and marketers Little room for leveraging marketing capabilities outside of periphery of Adobe Cost  Free Can be expensive  Security  Extremely secure Highly secure, yet there are vulnerabilities Community  Over a million and counting  Supported by community; but pales in comparison to Drupal Responsiveness Excellent responsiveness; mobile-first approach Excellent responsiveness as well Development  Works on PHP Works on JavaScript  Third-party integrations Impressive  Good, but involves issues to be troubleshooted Upgrades and migration  ‘Easiest upgrade of the decade’ Easy to perform  Multisite Excellent multisite tools  Great multisite features as well Headless approach  Gives options for decoupling  Decouples, but only in one sense  Multilingual  Terrific with multiple languages  Competes in parallel to Drupal  SEO  More SEO-friendly modules SEO is optimised, but on a scale lesser than Drupal

Getting to know the contenders

Websites are dependent on content management systems to enhance their digital experiences. The better the WCM, the better the chances of your website’s digital content. But how do we decide which is better? Let us start by knowing what they personify. 

Drupal 

The picture displays the logo of Drupal.


If you are reading this blog, there is a high, well a very high, chance that you would know what Drupal is. Still I would tell you a little about it. 

Drupal is an open source platform that helps in building web applications and making web projects come alive. It is free to use and is being used by millions of people across the globe. Organisations like Redhat, Timex, University of Colorado are some of the elite clients of Drupal. So, to say that Drupal is a small fish in the pond of WCMs would be a dramatic understatement. 

You can create and publish content without being an engineer. And the fact that your content does not have to be confined to a certain type of layout or a specific number of content fields is just a bonus. It uses the best of PHP along with that it also abides by HTML5 and YAML standards. Twig, jQuery, Symfonyand CKEditor are some of the powerful third-party dependencies Drupal implements. All of these are responsible for making Drupal a powerful web development platform, which cannot be deterred by high traffic. 

All in all, Drupal can help you create web experiences that are both wholesome and unique to lure your target audience and never let them go. 

Up until now, Drupal has had 9 versions with multiple sub-versions of each. Although Drupal 9 is the most recent version, less than half a percent of Drupal websites use it. As many as two-thirds of them are still on Drupal 7, while over a quarter of the websites are using Drupal 8, as per a survey by W3Techs

A horizontal bar graph shows the percentage of websites using the different versions of Drupal.Source: W3Techs

Adobe Experience Manager (AEM)

The picture displays the logo of AEM.


AEM could be deemed as the opposite of Drupal, provided the fact that it is a proprietary software rather than an open source. Built by a leading content management suite, it is a WCM that its proprietor refers to as a powerhouse and given its many features, it is not an inaccurate description. 

Adobe Experience Manager is an all inclusive system for content management that is equipped to build websites, forms and mobile apps. AEM effectively manages your content and your applications in an integrated manner, leading to applications being deployed as conveniently as the content. The result is a streamlined management of your online presence and that is what Adobe capitalises on.

This sounds somewhat similar to Drupal, doesn’t it? That is because at a foundational level, both of these are performing the same work. It is the way they do the work, the means and the features they are packed with that make them different, and that is what we are going to find out today.

Before we get into that, let us have a look at some statistics involving both Drupal and AEM to get a clear picture of their market share. 

There is a pie chart denoting the number of websites for Drupal and AEM.The number of websites for Drupal and AEM. Source: SimilartechThere are two horizontal bar graphs describing the market share percentage of Drupal and AEM. The market share of AEM and Drupal. Source: WappalyzerA graph shows the standing of Drupal and AEM with regards to other WCMs.Comparison of Drupal and AEM with respect to other WCMs. Source: W3Tech

What is the degree of performance and scalability offered?

The performance of a website is probably what makes the user stay on it for a longer period of time. If it is taking more than 2 seconds for a page to load, the user may become inclined to hot hit the escape button and move onto a different site. You know you have competitors and they gain from your loss.

So, the first feature to discuss has to be performance and scalability of Drupal and AEM sites. Let us get on with it. 

Drupal 

You must have heard that on occasion many sites tend to crash, especially when there is bulk traffic on them. With Drupal, you do not need to worry about that. The busiest of sites all across the world are using Drupal to handle their traffic spikes and keep them away from the embarrassment of slow performance.

And it is not just traffic that would be managed by Drupal, it also gives you the room to expand your content as much as you want, with multiple content contributors, without having an effect on the performance.

Therefore, managing site performance and scalability is quite easy and efficient in Drupal. The only thing to remember is to optimise your site well, if you don’t do that, there won’t be any guarantees. 

Drupal provides many tools and features to make that happen. 

Read about Drupal’s performance optimization techniques and scalability provisions to know more.

AEM 

With regards to small and medium based applications, AEM’s default configuration settings do their work without much effort on your part, leading to a streamlined performance for publishing and authoring at the same time. However, the growth of your sites would require a performance and stress test, depending upon the result of these tests, you will be able to comprehend the way to optimise the system. 

The advantage of Adobe Experience Manager is that after the installation and configuration is done, the degree of complexity of your project along with your development team will be the deciding factor for the performance optimisation. Even if your system load and performance profiles change over time, AEM’s performance tune-ups will keep your system optimised. Measurements, analysis, optimisation and validation become a constant part of these tune-ups.

Also, AEM uses files from content, JavaScript and CSS to establish performance standards. It also takes necessary performance action by using caching, load balancing and CDN; almost similar to Drupal.

All in all, Experience Manager can easily scale so that your performance needs are satisfied on the basis of the demand for your digital assets.

To sum up, Drupal offers you room to expand as much as you want without hampering your site’s performance, AEM also does something similar. However, the latter comes with a stipulation of tests to ensure that. 

How smooth is the content workflow?

If performance is the spine of a website, then its content would be the blood in its veins; metaphorically speaking of course. So, it was only wise to talk about the content workflow after performance. 

Drupal 

Drupal is a big name in the WCM market and the way it lets its authors use and manipulate the content across multiple pages is the reason for it. Drupal provides an ease in content authoring that is unparalleled by other systems. It is equipped to provide all the necessary tools required by the authors to create and publish content that is customisable. The WYSIWYG editor personifies Drupal’s flexibility. The workflow and content is easily managed through authentications and permissions. 

With regards to the content architecture, Drupal excels here as well. You can create just the right architecture based on your needs with the help of an Admin Interface or programmatically, the choice is yours. With display mode tools and Views, you can display only the content you want to be displayed based on the context, be it images, videos or even pdfs. Modules, like Paragraphs and Layout Builder, help you get the best out of your content by letting you micromanage the minutest of details. Moreover, Drupal workflows support annotations, it can reuse images in various components and it can easily support several individual fields in a single field with multi-fields. All of these provide a great user experience and the fact that it is equally good on multiple devices is another forte of Drupal. 

Apart from the creation of the content, the way it is stored and accessed is also imperative, after all we are talking about a content management system. In Drupal, the content is stored in a database, in a hierarchy, if you want, wrapped in Symfony. The interaction to the data by Drupal is usually done through MySQL, although there are other databases available as well. 

AEM 

The user experience to content authors provided by AEM is tough to compete with as well, although Drupal does manage that feat. Adobe Experience Manager not only integrates the content with other adobe technologies, but it also provides a high degree of flexibility and drag and drop user interface for almost all tasks, thereby making content authoring a breeze. 

Content in Adobe is not one single body, it is divided into multiple smaller components that in turn provide an immense degree of control to the content author because he can manage the smallest of parts of the content body. The feature of content fragments helps in editing the content to the most granular level with each component, be it text, images or videos given a separate fragment. The pre-existing templates in AEM work in a similar fashion to Drupal’s modules, allowing all the more ease in content creation. However, the fact that these individual components can be reused across multiple articles, makes AEM different from Drupal. 

Coming to content storage and access, AEM stores content as files instead of a database, which are wrapped up in Adobe CRX. And these files are accessed through Apache Sling. This web application framework provides an interface that can be accessed programmatically by developers to retrieve content. 

Drupal and AEM are more or less the same in terms of content, flexibility being the forte of both and the drag and drop feature being the focal similarity. The only difference that is blatant to me in terms of content is the way it is stored and retrieved. Although both use frameworks, the way these frameworks work is quite contrasting. 

How do Drupal and AEM align with your Marketing and Engineering goals?

There are two sets of people who are considered to be the building blocks of a website and it is their input that takes a web project to the next level. These are the engineers and the marketers. So let us understand their take on Drupal and AEM to highlight their difference further. 

Drupal 

Drupal, being an open source platform, comes with a great deal of benefits. The number of open source components found can be overwhelming for your engineers for all the right reasons. The primary one being the fact that Drupal is the synonymous of a developer-centric ecosystem. What this means is that you would be benefiting from the knowledge and expertise of other developers. This encourages learning like nothing else.

As for the marketers, Drupal again provides. For one, Drupal equips the marketers to edit or update page layouts without the presence of a developer. Earlier this feature was only found in AEM, but now Drupal is also packed. Then, there is the fact that Drupal allows the marketers to choose the tools they want to outside the jurisdiction of Drupal. Any leading marketing automation tool you might get compelled by would be perfectly used with Drupal for your gains. 

AEM 

Like I have already mentioned, AEM is a proprietary software, meaning that it does not have any of the benefits of an open source. In terms of an engineer, this can be a major drawback. You must be wondering why? The answer is simple, there wouldn’t be a developer pool, whose knowledge could be tapped into. So, the technical costs become high and you might find yourself solving an issue that has been resolved by numerous developers, but you can’t know that since AEM is not an open source and the locked code prohibits you from knowing. 

Adobe has many fancy, for a lack of better word, marketing tools that can effectively urge any marketer to take it up. The integration with these Adobe tools helps in providing a page building experience that is simply impressive. However, there are two things that make it lag behind Drupal; 

  • For one, only Adobe tools can be used, you cannot access other marketing tools available in the market;
  • And secondly, although agile marketing is provided, the fact that other developers in the community cannot contribute to it can be slightly disheartening. 

This is not to say that Abode is inferior or Drupal is superior, they are just different in the eyes of the marketers and engineers. 

It is pretty clear who is the winner here, a developer would always prefer a pool to stimulate innovation. Drupal's vast community provides that and AEM’s doesn’t.

What are the cost implications?

Whether something fits your budget or not is an important consideration when you are  considering to adopt a practise or in this case a WCM. How do Drupal and AEM fare in this regard, let’s see. 

Drupal 

In terms of costs, Drupal is going to be a clear winner and I think you knew that even before reading this blog. Drupal is an open source software, that means it has zero licensing fee. However, this does not mean that it is free, there would still be money required to build it. This is primarily because Drupal sites are built from scratch. You have to hire experts to take that seed Drupal provides and water it to become a full-fledged tree, you get the metaphor, right? 

When your site is built to be fully functional, then the costs for maintenance would start following, which is understandable. Drupal provides you the advantage of scaling the maintenance and support costs to align with your budget, and that is all we can ask for. I wouldn’t call Drupal to be free, but it is pretty economical. 

AEM

Compared to Drupal costs, AEM travels in uncharted territory. The costs start to pile on from the get-go. Since it is a proprietary software, you have to pay a licensing fee. Add to this the cost of building, including the hiring of developers, and the costs would be substantial. And then there is the cost of maintenance, although for support, AEM does provide a dedicated team, thank goodness for that. The average cost of AEM license and implementation can be around $100,000 to $200,000.

In the times of the pandemic, AEM can be way out-of-the-league for many organisations looking for a WCM.

Drupal is free of cost and this is one fact that would always make it outshine AEM, which, on the other hand, cannot be free, being a proprietary software. 

How good are the security measures?

Everybody has vulnerabilities, humans and websites alike. Our vulnerabilities might take us longer to overcome, however, websites are not that tricky. Security measures that are both sound and effective can help even the most faulty of codes become hack-proof. In this regard, let us try and figure out the standing of Drupal and AEM.

Drupal 

Many think that open source software is more prone to security breaches simply because they are open. However, that isn’t the case. Open source security, aka, Software Composition Analysis helps in giving the users the chance to attain a higher visibility level for their open source applications. For this, a lot of elements come into play. The binary fingerprints are examined, research both professional and proprietary is utilised, corroborating the research with scans and providing all of this to developers in the form of tools. So, no open source by no means can be regarded as unsafe and insecure.

The security elements of Drupal are top-notch and help you overcome the most severe security problems. The proof lies in the fact that numerous government agencies have trusted Drupal to build their sites and Drupal has passed all their stringent standards. Drupal’s Security Team is equipped to address all the security issues that are reported, be it in core or contrib modules. The members of the team are experts in security measures from across the globe, validating the reliability of Drupal in terms of security. 

  • The password policies of Drupal are the first sign of it being safe with minimum length, complexity and expiration. 
  • The limitation of login attempts from one IP address can detect brute force entry. Certain IP addresses can also be banned. 
  • The user roles in Drupal help you control what can be seen and modified by uses on any given page. 
  • The database encryption Drupal provides can be configured to become extremely strong for applications that warrant high security, be it to the whole website or certain parts of it. 
  • The Form API oversees the validation of all data entries into the database by scrubbing them so that XSS, CSRF and other malicious data entries are stopped in their tracks. 

All of these account for a safe and secure system for all your website building needs. 

A pie chart depicts the percentage of vulnerabilities in Drupal and two other CMSs.Percentage of security issues in a sample group. Source: AcunetixA bar graph us showing the comparison between different WCMs' security.Source: Sucuri Blog


AEM

Unlike open source, proprietary software is considered to be intrinsically safe and less prone to vulnerabilities. Again, that is not the case. There are instances when AEM sites have suffered major breaches. Something as simple as forgetting to use “nosamplecontent” during publishing can give just the opportunity a hacker was waiting for. This is because sample content is often under production and many know the user passwords. Saying this does not negate the brilliant security measures AEM does provide, my point was simply to enunciate that proprietary software is not immune to vulnerabilities. 

To say that AEM’s security features are similar to that of Drupal would not be entirely wrong. This is because Drupal has covered all the possible vulnerabilities that need to be prevented and worked the security measures around them. Since AEM wanted to do the same, like it should, the similarities come as no surprise. 

  • The security console to manage user access;
  • The theme language of AEM, HTL, has an intrinsic design to prevent XSS hacks; 
  • The AEM checklist helps in ensuring that all the security precautions are done as needed.

However, take a note of the security vulnerabilities of AEM that were reported in the recent past:

There is table showing the security vulnerabilities of AEM. Source: CVE Details

Do AEM’s security features sound similar to Drupal? I am certain they do. AEM is quite secure in itself, however, it has been reported for authentication bypass vulnerability and cross-site scripting vulnerability which should be taken into consideration.

How well are they tied to the community?

The developer community is vast and extremely supportive of each other, so as the next point of difference, let us look at how community plays a role in Drupal and AEM. 

Drupal 

There are plenty of advantages in contributing to open source. It pays dividends to both the contributors and the open source software itself. The support of the community is probably the best feature of being an open source. And Drupal has a pretty large one, with over one million members. This means the intellect of the million developer minds will be found in the core and contrib parts of Drupal, driving innovation further. Developers from across the globe could provide you a peer review for all your projects. 

Another advantage of an open source community is that it helps you thrive even in the most difficult of times. Therefore, the chances of Drupal going out of business are slim to none. The long term success of Drupal is almost a guarantee with its million volunteers. Learn more on how open source has remained recession-proof and how it has stayed relevant in the times like Covid-19 pandemic.

AEM 

With AEM, the story is different. A proprietary software does not have a community as impressive as an open source’s. There are still many AEM  user forums, but it does not match Drupal. 

The lack of community support somehow inhibits the force of innovation and makes AEM seem a little pale against its counterpart, Drupal. 

How responsive is their web design?

The user is the focal point of any web application, it is he who is at the heart of every decision made for the website. Therefore, a responsive web design that would take into account the user’s needs and his environment is of the essence. On this note, let’s compare the two. 

Drupal 

When responsive web design comes into the picture, the first thing to cross your mind is that it has to be mobile friendly and Drupal sites are just apt with that. Drupal is known for its responsive designs that provide the best experiences despite the device. 

It is Drupal’s aim to support a seamless content experience throughout the lifetime of its websites with its mobile-first approach. The out-of-the-box responsive elements have made it the premium choice of developers and content authors alike.

  • The ability to add and edit on the go is a must have and Drupal provides. 
  • The built-in themes with responsiveness embedded in them allows your webpages to fit all screen types. 
  • The ability to change the width and height of images depending on the device is also provided by Drupal through breakpoints. 
  • Even the tables in Drupal 8 are responsive with high, medium and low priorities available to assign to them.

AEM 

AEM is also up there in the responsiveness game, with many features making it a friend of all the mobile devices.

  • Using single or multi-columns for layout;
  • Manipulating the text size based on the screen size;
  • Displaying only priority content on smaller screens;
  • Providing device-specific tools for access;
  • Taking into account the window dimensions to assess the size of images to be displayed.

When web responsiveness is prioritised, you would not have any qualms about the future of your site because it would be secure leading to boundless capabilities. In this aspect, both Drupal and AEM pass, that too with flying colours.

Are there any development constraints?

Next comes the part where development is concerned, do Drupal and AEM have development issues? Do they limit the developers in their building? Or do they give them proverbial wings to fly on? Let us find out.

Drupal 

Drupal is renowned for building digital platforms that are transcending the boundaries of digital media in the present day. Its LAMP technology stack is the reason for it. Linux, Apache, MySQL and PHP, all four provide you agility, pace and flexibility to meet your enterprise’s development needs. 

One drawback of Drupal that is often cited by its counterpart is that it's not highly available. The reason being the fact that it does not provide multiple database instances, meaning one change to one database automatically changes all of them. Even though it is true, does it really account as a development constraint? 

Focusing on PHP, it is often considered to be a less advanced version of Java simply because it does not include state memory constructs. Therefore, tracking data separately becomes exhausting.  

AEM 

AEM developers need to be fluent in HTML, CSS, HTL, JavaScript and Java to develop on top of AEM, no PHP required like Drupal. The best feature of AEM development is the fact that it uses HTL instead of JSP for front-end development. This removes the chances of human error leading to XSS and secures your site a little more.

The drawback I talked about in Drupal is not really an issue in AEM, but does that really make it better? AEM is expensive as we have already established, its exorbitant costs are justified by providing an extravagance that may not really be needed. I mean what would globally distributed data centres do for a local website? They do sound appealing though.

AEM has Java instead of PHP and yes, it can do a lot more per process, but this would increase the complexity levels and make the overhead go on the higher side along with the chances for faults.

I would say that figuring out which is better between PHP and Java is a moot point, both have their own abilities. The fact that many leading organisations use them on their websites speaks quite loudly for their capabilities. Don’t you think so? 

How well do they support third party integrations?

Being able to integrate itself with other applications is often regarded as a great feature of a WCM. Both Drupal and AEM are able to do it, however, one of them stands out as the better option. 

Drupal 

Third party integrations have become a rudimentary need for open source platforms. Since Drupal is an open source, it comes with an intrinsic ability to integrate well with other platforms. Drupal was architecturally designed to be both scalable and modular, this makes it competent to allow third party integrations with ease. With the Services Layer and Library API being equipped to handle all the integration needs, the process goes by smoothly. 

Drupal can integrate with numerous analytics platforms such as Google Analytics, Salesforce and HubSpot.  It can make the ecommerce businesses feel connected with all the varying aspects they mandate. For example, Drupal Commerce can integrate with Magento. There are plenty of options for media integration too such as Colorbox and Slick Carousel. If you need an enterprise search solution for your web application, Drupal has got you covered and gives you Search API Solr.

AEM 

AEM is known to have a vast number of tools in its collection, however, it is also able to integrate itself with other applications.

  • Integrating with Amazon web services is easy with Amazon SNS connection;
  • Email marketing becomes convenient with ExactTarget;
  • Capitalising on social networking is also done through integrating Facebook Connect and Twitter;
  • Sales and CRM software are integrated through Salesforce.

There are other integration tools available as well for your convenience.

Despite all of these, AEM has certain issues with integrations which require troubleshooting. AEM does talk about these and mentions ways to overcome the problems as well.

For instance, some integration issues are known in AEM such as the Report Importer causing high CPU/Memory usage or the non-visibility of targeted content in preview mode when using custom page components. 

Even taking troubleshooting integration issues into account, AEM is still quite good with integrations, especially given the fact that it is a proprietary software.

Concluding this point, I would say that both Drupal and AEM have elaborate tools of integration for every field and need of a business. However, when troubleshooting is concerned, it does put a damper on the impressiveness of AEM. 

Are upgrades and migration easy-to-do?

Technology keeps enhancing and new updates keep on coming, so it is a matter of time before the version you are using becomes a thing of the past and something better is on the market. The question is how do Drupal and AEM fair in the upgrade and migration aspect?

Drupal 

Like I have already mentioned, Drupal 9 is the most recent version, yet not many sites have upgraded themselves to become Drupal 9 sites. However, they would have to because; 

as of November, 2021, Drupal 8 would not be supported; 
and after November, 2022, the same would be true for Drupal 7.

So, how do you update them? Let’s talk about the switch from Drupal 8 to 9, as per the makers, this upgrade is considered the easiest in almost a decade. By following a four-step guide, you can have your current site ready for the functionality and better security standards of Drupal 9 by using the Upgrade Status

As for the upgrade from Drupal 7 to 9, easy is not a term that would be used to describe it. The migration will overwhelm you, but all the advantages of Drupal 9 will make it seem worth it. Developers can make the upgrade themselves with the help of Upgrade Status and Drupal Module Upgrader. These help in letting you know whether your themes and modules are competent for Drupal 8/9 and converting your custom code respectively. Explore the ultimate guide to Drupal 9, all the burning questions that you may have about Drupal 9 and the must-have modules to start your Drupal 9 website to know more. 

AEM 

With AEM, the story revolves around a similar terrain, with more steps though. Upgrades from AEM 6.0 to 6.5 involve a lot more work than Drupal would. Separate migration tools are needed for making the entire upgrade a success. For instance, if going from a version older than AEM 6.2, you would need JMX bean to migrate your assets.

However, if we look at the upgrade from AEM 6.3 to version 6.5, the task of migration is totally eliminated. The new format for the SegmentNodeStore is the reason for it. 

The title ‘easiest upgrade of the decade’ has stolen the show, making Drupal upgrades more attractive and user friendly than AEM. 

How do they answer the multisite request?

Having multiple variants of a single website is not an uncommon trend, it is practised by Drupal sites and AEM sites equally. How do they fair then?

Drupal 

Drupal’s multisite setup helps you in gaining the many advantages of having multisite simply because it allows you to save on time and effort by running all your Drupal sites on a single codebase. 

Running easy updates for security issues, saving on hosting expenses, using Simpletest and functional PHP unit-based tests are few of the many use cases for multisite in Drupal

AEM 

For AEM, the Multi Site Management function does all the heavy lifting for you in capitalising the multisite feature. MSM allows you to monitor and control mobile and web properties into one integrated interface for all so that your global presence is defined by its consistency. Live Copy Overview and Blueprint Configuration Management are the two interfaces responsible for making the use of MSM easy for you. 

MSM is a great tool for creating user-friendly web experiences at the same time providing you localised control with regional teams having the power to edit. It also makes recycling your content a breeze. 

Drupal and AEM are not much different in terms of the multisite versatility, both equip their sites to make the most of one codebase or interface, and aim for consistency. 

How fulfilling is their headless approach?

Going headless has become immensely popular today. I mean who would want to pass on the chance of tapping into the latest technology without parting with their trusted WCM. Here is how Drupal and AEM perform. 

Drupal 

In a headless approach, the WCM is merely a content repository and nothing else and Drupal is a fine one at that. The separation of the front from the backend is pretty streamlined in Drupal with REST, JSON:API and GraphQL, being the APIs holding them together. 

Drupal is known for its flexibility and that can be seen even in its headless approach, with three alternatives to choose from. 

  • The progressively decoupled Drupal has a presentation layer that is built using Drupal and other frontend frameworks, like JavaScript.
  • The fully decoupled Drupal completely segregates the two ends of the site and Drupal is just responsible for the content while a JavaScript framework like React manages frontend
  • The fully decoupled Drupal for static sites allows a static site generator like Gatsby to build a frontend by being its source. 

AEM 

A major reason for opting for a headless approach is to publish the content on as many platforms as possible, the web, mobile apps and other channels. With AEM’s headless approach, you can do that. It allows you to “manage and re-use” page elements or the entire experience, if you want, across numerous channels. This is done through grouping content and layout. 

Like it is for decoupled Drupal, AEM also has customisable APIs as a core component of going headless. On top of this, it gives the developers the choice to choose a default or custom JSON output. The AEM HTTP API provides a smooth transition into headless inclusive of content fragments. 

The headless approach for Drupal and AEM have a set of advantages accompanying them. However, the option of choosing the way and degree of decoupling, gives you something to ponder on, doesn’t it?

How do they help sites be multilingual?

We live in a world where diversity is a constant and diversity means being multilingual. Today, more and more sites are trying to be multilingual, so how do Drupal and AEM help them? 

Drupal 

With Drupal, you can create customized sites in any language, web applications in multiple languages and displays that have multiple admin languages. You get to translate your content completely, so that your business has a wider audience. And you also get the option of choosing a language interface for the administrators, content authors and translators. 

Drupal has been designed in a way that it can promote multilingual sites. The four modules, Language, Locale, Content Translation and Configuration Translation, created to ease the language transition are proof of my earlier statement. 

AEM 

AEM has a similar story to tell. It can also support multiple languages and that too with ease. The fact that it provides both human and machine translation workflows makes it a great choice. 

You might be thinking how it supports human translation. It does so the old fashioned way by sending the content to an actual translator and once it is done, the translated copy is sent back to AEM and it works its charm on it. 

The six-step process of translating content does not leave much room for errors and you get a perfect copy of content in whichever language you may need it in. 

Both Drupal and AEM are close to perfect in their multilingual feature and it is safe to say that this one is a draw. 

Finally, can they help you capitalise on SEO?

Search Engine Optimisation helps your site become more visible and visibility brings in traffic and you must know what happens then. 

Drupal 

Drupal is best friends with SEO, that is why it has all the modules required to make the most of its friend. 

You might know that keywords are an essential part of SEO practices, and Real-time SEO for Drupal helps in ensuring that the keywords are there without seeming spammed. Links are equally important in SEO practices, so there is the Linkit module. For duplicate content, there is the Redirect module to help you. And these are just a few, for an entire checklist, read our blog, The Ultimate Drupal SEO Guide for 2020.

AEM 

AEM lets you get the best of SEO and URL management by helping you optimise them. It makes you focus on the minutest of details, so that you never make an SEO error. 

For instance, when you have translated a content, you might forget to translate the URL and AEM’s SEO guide would never let that happen. From configuring the dispatcher to creating and XML sitemap, AEM takes care of all things. 

Drupal might have a tad more SEO-friendly modules than AEM. Although AEM does cover all the essentials, factors like keywords, headers and footers do not take precedence in it like they do in Drupal.

The Bottom Line 

The purpose of this blog post was not to draw out a clear winner because frankly speaking, there simply can’t be one. I might even give you a winner, but then there is a high chance that you might disagree. Taking all the features into consideration, Drupal does tend to come out with better prospects, even if the margin is not that huge. AEM would be close second to Drupal in terms of functionality and features. 

If I had to give you my perspective, for me, the end line is the cost. Since Drupal is free and AEM is not, it would become difficult for me to adapt to AEM and its exorbitant cost implications, at least initially. So, for me the winner would be Drupal. However, for you, it could be AEM and that is fine too.

Dec 10 2020
Dec 10

Published: Thu 10 Dec 2020

When every tutorial for syntax highlighting in Gatsby talks about highlight.js markdown but you have a Drupal website, you need to write your own for posterity. Here's mine.

This website uses the very helpful CKEditor CodeSnippet module to provide syntax highlighting. That in turn uses highlight.js. However, while investigating using Gatsby for the frontend of this website, I came across the headache of adding code highlighting to the site, when my code is just a string in the body field. Here's my solution ... if you have a better one, let me know in the comments.

Create custom utility function for highlight.js

  • Add highlight.js to your repo npm install highlight.js
  • Create a file at /src/utils/highlightCode.js.
  • Import the library and the CSS style you want to use
  • Set the languages you want to load (we don't need to load all of them for performance reasons)
  • Create a function in this file that finds every instance of your code element and loop through it to let highlight.js work on each instance. That file will look something like this:
import hljs from 'highlight.js'
import 'highlight.js/styles/monokai-sublime.css'

hljs.configure({
  languages: [
    'php',
    'javascript',
    'json',
    'bash',
    'scss',
    'css',
    'yml',
    'twig',
    'html',
  ],
})

export default function highlightCode() {
  const codeBlocks = document.querySelectorAll('pre > code')
  codeBlocks.forEach(codeBlock => {
    if (typeof codeBlock === 'object') {
      hljs.highlightBlock(codeBlock)
    }
  })
}

Use the useEffect() hook to apply this to our template

In my case, I wanted to apply this to the article template, which means attaching it to the

but by the time Gatsby has grabbed and rendered that, it's too late. Instead, we add our useEffect() before we render our article - this is basically the hook_preprocess_node() of React! That's looks like this:

// import React, etc, etc

import highlightCode from '../../utils/highlightCode'

export default function SingleArticlePageTemplate({ data }) {
  useEffect(() => {
    highlightCode()
  })
  return (
    <>
      

        // Stuff before body field (title, image, etc)

            

// Stuff after body field (tags, etc) </Layout> </> ) }

It's pretty simple, hopefully it will help you/save you some time Googling.

Dec 10 2020
Dec 10

Office worker at computer.As we look forward to the vaccine-influenced future beyond COVID-19, one of the very few things we have lived over the past 9 months that may actually have a positive lasting impact on society is that often there are advantages to accomplishing things virtually. Working remotely, meeting via Zoom, online appointments, grocery delivery, even doctor visits have screamed past proof-of-concept for situations most of the world had previously not considered. 

So many more applications that rely on the web are more ingrained in daily life since COVID forced them on us. With this incremental leap in mass adoption of web technologies, web development (and for the purpose of this article, Drupal) will continue to play a major role as the world leverages online tools more, and for more applications. This suggests that Drupal positions (which total more than 1,600 listed on Indeed the first week of December this year), may open up even more in the future.

So, for those who conceive, create, and maintain current and future tools, or people considering these careers, the future looks pretty bright. Those of us in the community know that even beyond the new growth potential, Drupal and web development has a lot to offer; so, we humbly share these 5 great reasons you may want to consider 2021 as a good time to get serious about your Drupal dexterity if you want to expand your skills, get up to speed or even pivot your career to seize the day and opportunity: 

  1. Web Development Careers have a lot of opportunity! 

 It’s hard to find an article about promising careers without web developer positions seated in the upper tiers. According to recent article by CNBC, Web Developer careers are in the Top 15 High Demand jobs over the next 5 years. Indeed puts it at #10 for careers most in demand right now; and the US Department of Labor Occupational Outlook Handbook estimates that 2019’s total 174,300 web developer positions will grow by about 14,000 over the next 10 years, a higher rate than most vocations. 

  1. The Path to becoming a Drupal Web Developer is accessible. 

If you have the desire and commitment to become a Drupal professional, you can! Drupal training is available through go your own pace options like Drupalize.me, with focused training sessions live and online (Evolving Web, Mediacurrent) and of course, might we suggest the longest running, long-form career technical education program through DrupalEasy Academy; Drupal Career Online. There is also plenty of advice out there like DrupalEasy Career Resources and How to start a Web development career.

  1. Flexible schedules and virtual work are prevalent in the Web Developer World

Life in 2020 changed work for a lot of people, but remote working is nothing new in the world of web developers. Drupalists, both those employed by organizations and those who choose to freelance, have a long and successful history of working from home, or wherever they find great wifi and interesting surroundings, there are state of the art tools that support teams who are spread out specifically catering to this efficient, low-overhead way of doing business. Add “virtual” to your job search on Indeed or Career builder, and you can see hundreds of positions. 

  1. Salary Data for Web Developers compares pretty well

According to the U.S. Department of Labor Bureau of Labor Statistics, The median annual wage in May, 2019 for web developers was $73,760. It gets better if you choose Drupal, as Indeed reports that, based on 188 salaries reported as of November, 2020, the average salary for a drupal developer is $95,642 per year in the United States.  You will have to get some experience and hone your skills, but with commitment and patience, the high-wage jobs are yours to strive for. 

  1. Drupal Web Developers have a global community for support

Come for the code, stay for the community.  It’s not just a mantra.  The Drupal community has groups connected by topic, interests, service to the community and even outside interests.  There is nothing like it.  Even here at DrupalEasy, we have a micro community of past and current students that meet up every week to help each other work through projects, issues and provide support.  It’s our DrupalEasy Learning Community, and we like to think it’s a microcosm of the Greater, Global Drupal Community that makes our content management system, and the people who support it so outstanding. 

The next session of Drupal Career Online starts March 1, 2021, with the application deadline the last week in February. If you are interested in learning Drupal, honing your Drupal skills specifically in our longform Drupal Career Online, let us know, or sign up for one of our no-cost Taste of Drupal mini webinars coming up in the beginning of 2021.  


 

Dec 09 2020
Dec 09

How often does one quick fix to a problem stay as only one? More often than not, a domino effect takes place and the flood gates open. Suddenly, you’re stuck in a never-ending cycle of applying band-aids to a problem that has no quit. Enter strategy. Where instead of being in a constant state of panic, you’re in the most powerful position to navigate a pandemic you didn’t see coming.

Presently, companies don’t want to fall behind the rapidly-changing pace of the current landscape. They’re reactive versus proactive approach of cutting corners seems to be the option as of late — or always — but now it’s more noticeable to consumers. A stalled credit card transaction or a broken tab can lose a potential customer’s attention span to your competitor in seconds. The world is online and remote, and competition is fierce, so wanting to go from A to C while bypassing B could be the kiss of death. We can use Band-Aids and pay for quick-fix remedies all day long, but doing the due diligence now to avoid those additional fixes later will establish your site as credible. It can put you in the powerful position of increased traffic and conversions.

Ever heard the term, “ You have to spend money to make money?” This is the 2021 path mindset needed to secure your company’s reputation and legacy going forward. It’s not going to get any easier from here, it’s time to embrace the necessary steps.

If the world has gone remote, so has whatever field your business is in. Retail is one industry where companies must maintain a powerful website that functions flawlessly, but so do institutions, museums, events, conferences, grocery stores, restaurants, etc.

“Online shopping has been a boon for some retailers during the Covid-19 crisis. It has been a lifeline for others. But for nearly all companies, it’s brought a slew of new challenges.” - CNBC.

So what’s the answer to secure your spot among the greats while avoiding the Band-Aid technique?

Allot time to figure out what your site needs.
Pen and paper it out from the customer’s perspective. What is it that your site needs to provide them with a flawless experience? Is it a seamless shopping cart structure? Better navigational flow? A transformational experience? Better speed? Or is it all of the above? Write them down.

If you’re not an expert in the field, seek out those who are.
A good CEO knows their strengths and weaknesses. Hence, building a supportive team with specific and valuable skill sets makes all the difference. If you’re that CEO who thinks he/she can manage the totality of their business, then something significant is falling through the cracks, and your company may not reach its full potential.

Change up your budget.
In the past, marketing budgets were primarily driven by traditional mediums. Even then, some chose to only stick by word of mouth, and occasionally, that’s all that it took to survive. Some companies and some individuals can still skate by using the word of mouth method, but the percentage is tiny, and even then, a website for information or contact is necessary 9.5 times out of 10. So if the local dog walker needs a one-page parallax, what does that mean for your e-commerce site or your institution or your mom-and-pop grocery store that just started a delivery service? The budget has been divided and not only between marketing and digital. It’s now three buckets; marketing, digital, and site. It’s 2020 COVID, soon to be 2021 COVID. It’s survival of the fittest site.

Even e-commerce sites that are already well-oiled machines are continually looking to better their infrastructure to accommodate increased traffic flow. If you want to compete, you have to structure like you are. King Arthur Flour had no idea a pandemic would hit, but their timing was impeccable. The company went through a massive site revamp a year before, and now it’s easier to manage and can withstand an influx in online traffic. King Arthur has now solidified itself as the top baking site and has become the baking sensation of 2020—their products are flying off the shelves!

If you’re waiting for the perfect time to handle a revamp, you’ll never get it done. Dive into the process now, because 2021 is not going to make it any easier.

Your company keeping a competitive edge is a non-negotiable.

Dec 07 2020
Dec 07

Check out our recap of our favorite Drupal-related posts from November and stay up to date with what’s going on in the Drupalverse.

Who sponsors Drupal development? (2019-2020 edition)

We’re starting with the latest edition of Dries Buytaert’s “who sponsors Drupal development” blog post. Some of his most important findings are the overall increase in contribution, with an increase in sponsored contributions and a decrease in individual ones, which is very likely a consequence of the Covid pandemic.

The article provides a comprehensive breakdown of Drupal development and contribution throughout last year, complete with a look into the diversity of community contributions, both in terms of company and demographic diversity.

Dries finishes by addressing some of the main limitations of Drupal’s contribution credit system, but also reassures us of how important the recently formed Contribution Recognition Committee will be in overcoming them.

Read more about who sponsors Drupal development 2019-2020

Open Source Sustainability Depends on Recognizing Both Individual and Corporate Contributions

We continue with a kind of follow-up to Dries’s post, this one written by Gábor Hojtsy of Acquia. His post addresses some of the main findings from Dries’s report by going through the observations from a recent Acquia study on the sustainability of open source.

One of the most interesting of these is that community recognition serves as the main motivation for contribution, even greater than monetary gain. Another important observation, also made by Dries himself, are the shortcomings of the contribution credit system.

Probably the most important finding, however, as the title of Gábor’s article already points out, is that the sustainability of open-source projects depends both on individual and sponsored contributions.

Read more about open source sustainability findings

Your essential update on Drupal’s roadmap

The third post we’re including on this month’s list is Cyber-Duck’s overview of important milestones on the Drupal project’s roadmap for 2021 and beyond.

In the first section, they cover the end-of-life dates for Drupal 7 and 8 as well as the reasons for them, then continue with the release schedule for minor versions of Drupal 9 and Drupal 10 in the second section.

They follow that up with some of the features of the latest versions of Drupal that would make migrating from 7 a very wise choice, then finish with a short overview of the top priorities for the next stages of Drupal’s development.

Read more about Drupal’s roadmap

What is a headless CMS and when should you consider using one?

This next post about headless CMS is not specifically about Drupal, but we decided to include it nonetheless due to Drupal’s high-level headless capabilities and the fact that it’s just a great post.

The author of the post, Nomensa’s Kurtis Rogers, begins with a short explanation of what a headless CMS is and then a breakdown of its benefits, the top one being significant performance improvements thanks to fewer requests being made to the server.

In the last part of Kurtis’s post, he takes a look at which use cases benefit the most from using a headless approach, then closes with the flexibility it provides to your content.

Read more about headless CMS

SEO Wins: Embedded Drupal and Angular

Moving on, we have another interesting post, written by Dylan Rieder of Digital Echidna. Dylan discusses an interesting client challenge of their middleware suffering from both poor SEO and a poor user experience.

They managed to solve all of the resulting issues by transitioning from WordPress to Drupal in combination with an Angular front end with search functionality embedded right in the content. This enabled the content to both be searchable on the website itself and crawled by Google algorithms.

Dylan also includes a link to a video recording of their DrupalCon presentation of the implementation, for anyone who prefers watching and getting more in-depth information.

Read more about improving SEO with Drupal and Angular

Drupal 8 to Drupal 9: The Easiest Major Upgrade in a Decade

Another Drupal article we enjoyed reading last month was Acro Media’s Josh Miller’s writeup on the upgrade from Drupal 8 to 9. You first need to know what version of Drupal your site is running on in order to determine how difficult the update will be and when you should tackle it. 

In the second part of his post, Josh presents some reasons for moving to Drupal 9, with the number one being the very straightforward upgrade path. He finishes with three tips for a smooth upgrade: making sure your current version of Drupal is up to date, using Upgrade Status to check if you’re ready, and using Drupal Rector for custom code.

Read more about the Drupal 8 to 9 upgrade

How to Secure Your Website: An Intro to Drupal Security

Next up, this article by Mediacurrent’s Tara Arnold provides a great introduction to security in Drupal. In Drupal’s care, the community is responsible for a large portion of security support. Not only does a high number of active contributors ensure less errors, Drupal even has a dedicated security team that’s focused on resolving security issues.

What’s more, since Drupal is the top choice for important organizations and global enterprises, security must always be kept a top priority. Tara finishes her article with some security best practices for Drupal developers: selecting the right modules, using Drupal APIs and keeping up with Drupal’s weekly security advisories.

Read more about security in Drupal

Don’t Let a Bare-Bones Backend Design Leave Your Site Editors Stranded

Last but not least, we’re including an article by Jim Vomero of Four Kitchens in which he discusses the importance of a good back-end design and hence a good editorial experience for a CMS such as Drupal. 

One of the first points Jim makes is that UX best practices should also be followed when designing the back end of the website, just as much as the front end. In Drupal, you’re able to leverage its flexibility to customize the back-end experience for different user roles.

Still, the most important factor in designing a good experience for site builders and content editors is just working alongside them, acknowledging their feedback and making optimizations according to their needs and pain points.

Read more about good back-end design in Drupal

Mountaineer climbing mountain at sunrise

We hope you enjoyed revisiting the top Drupal articles from November. We’re wishing everyone a pleasant holiday season and we’ll see you all next year!

Dec 05 2020
Dec 05

All of us in the Open Source CMS world are asked, from time to time, variations on the question of: “Which is better, Drupal or WordPress?” 

Of course, there’s not a simple answer to the WordPress vs. Drupal question. Many have a strong bias towards one content management system or the other, but often, staunch opinions on the subject are based on a few cursory facts or outdated information.

Both WordPress and Drupal have evolved a lot since their introductions in the early 2000s. In some ways, this evolution has brought them into closer alignment with each other, evidenced by developments such as the porting of WordPress’s Gutenberg content editor over to Drupal in 2018. In other ways, WordPress and Drupal evolutions have clarified distinctions. 

Generally speaking though, in the current environment, the majority of sites can be supported equally well by either option. 

Fierce Loyalists in Both Camps

That’s not to say that the WordPress vs. Drupal debate doesn’t still spark strong opinions. Both have their devotees. As for me, I go way back with WordPress, and dove into the Drupal world about seven years ago. Promet Source has deep ties to Drupal, and over the past two years, we have broadened our perspectives and talent base to include WordPress advocates and experts. As such, I believe I’m well positioned to objectively cover both. (Feedback is welcome in the comment section below, and my apologies in advance if I step on any toes despite what I view as objectivity!)

Let's start with a few key stats and facts about Drupal and WordPress.

Drupal Advantages: The Internet's Heavy Lifter

A modular CMS written in PHP, Drupal enables developers to leverage a flexible taxonomy system that’s designed to organize complex content types, set highly customizable user permission levels, and ensure web accessibility compliance with enhanced testing and tracking capabilities.

Launched in 2000, Drupal now stands as the third most popular CMS in terms of market share.

Drupal’s enterprise-level trajectory was launched in November of 2015 with the release of Drupal 8, which resulted in a complete architectural overhaul and the creation of an enterprise-level CMS. Subsequent versions, such as the June 2020 release of Drupal 9, are now intended to be incremental, more of a point release than anything resembling the total CMS rewrite that occurred with the upgrade from Drupal 7 to Drupal 8. 

As of February 2020, there were an estimated 1.3 billion websites on the Internet and Drupal accounted for: 

  • Roughly 2 percent of total websites and
  • An estimated 3 percent of the CMS market, with 
  • 560,000 live, active Drupal sites.

                              Drupal Share of CMS Market

Drupal stats for 2020         Source:  Website Builder: 67 Amazing Drupal Statistics,  Jan 2020

For reasons that include core support for multilingual sites, Drupal is often the CMS of choice for government, higher ed, large enterprises, and health care institutions. The NASA site is on Drupal site, as is Portland State University, the U.S. District Court of the Southern District of New York, and Martin County Florida. The White House website was on Drupal during the Obama administration.

Drupal has a diverse and dedicated community of contributors, as evidenced by 42,650 free modules that are available for download. 

WordPress Advantages: A Pervasive Internet Presence

While websites with complex content models and data requirements gravitate towards Drupal, WordPress sites cover a wide spectrum of needs. WordPress accounts for roughly 60 percent of the total CMS market, primarily among small to mid-range sites, but a number of enterprise sites are on WordPress, as well. 

Originally developed as a blogging platform, WordPress has maintained its appeal for non-tech types with a low barrier to entry. While it’s possible to set up a WordPress site without development or coding expertise, experienced developers frequently work within WordPress and leverage their knowledge of HTML, CSS, and PHP to build sizable sites with a greater range of capabilities for business clients. 

Making steady inroads into the enterprise CMS space, WordPress is now the CMS for Time the New Yorker, and BBC America

Beyond the basics, WordPress offers thousands of plug-ins to expand functionality, outranking Drupal for ready-to-go themes that serve to fast-track development without the need for custom development work.

As of February 2020, of the 1.3 billion websites on the Internet. WordPress accounted for: 

  • More than 35 percent of total websites and
  • 61.7 percent of the CMS market, with 
  • 455 million websites currently on WordPress.

                              WordPress Share of CMS Market

WordPress stats 2020          Source:   Who is Hosting This?: 2020’s Most Surprising WordPress Statistics,  Feb, 2020

One conclusion to be drawn from WordPress’s impressive internet saturation: it’s a CMS that has proven to be the right fit for a wide range of different needs and has gotten many things right, from a wide ranging selection of plugins to an easy-to-use CMS. 
 

Convergence of Features

As more and more Drupal developers realize the advantages within Wordpress, and other user-friendly CMS platforms such as consumer-focused SquareSpace and WIX that offer an easier to use back end, we are seeing new frameworks and features being added to the default editor within Drupal. A multitude of no-code/low-code solutions, such as drag-and-drop functionality or component-based design, are finding their way into Drupal, due to the flexibility of the platform and providing marketers and content editors with greater flexibility and possibilities for making revisions to their sites. 

Core Distinctions

Both Drupal and WordPress offer a depth and breadth of add-ons that extend functionality. These are called “modules” in Drupal, and ”plugins” in WordPress. “Themes” that refer to a site’s aesthetics and user experience, such as design, layout, colors and navigation, is a term that applies to both Drupal and WordPress.

Unlike Drupal’s 2015 architectural realignment with the launch of the enterprise-ready Drupal 8, WordPress has never undergone that same kind of overhaul. The resulting difference is that expanded functionality for WordPress occurs at the theme/plugin layer. Much of Drupal’s functionality, on the other hand, is centralized within the ever-increasing core level, as the most frequently used and widely accepted Drupal modules are continuously incorporated into core. 

WordPress functionality relies heavily upon themes and plugins, and many contend that this represents a strength. WordPress modules tend to be more complete applications, and the vast WordPress collection of themes and plugins provides a high degree of flexibility. 

The flipside of this argument, and key factor that tends to fuel the appeal of Drupal for complex enterprise, higher ed, and government sites, is that there is an inherently a higher level of security and stability associated with working in core. Continued support for themes, plugins, or modules is not always guaranteed in either Drupal or WordPress, and their track record is not necessarily established.

Scalability vs. Complexity

WordPress has proven itself to be extremely scalable and the right fit for some notable sites such as time.com, which I mentioned earlier. The essential distinction which is often missed is not so much size or scalability, but complexity. Even though there are hundreds and hundreds of pages, on time.com, for example, the site consists primarily of articles. When a greater range of content types and complex data models are required, WordPress falls short and Drupal shines.

Acknowledging that both Drupal and WordPress are solid content management systems, and that there’s considerable overlap in the types of sites for which either would provide an excellent solution, Promet recently developed the following matrix in an effort to highlight the relative strengths of both options and open a dialog among our teams.

Here’s what we came up with relative to 10 key criteria.

                    Open Source CMS Comparison

Drupal vs WordPress  Open Source CMS Comparison

  1. Open Source. Yes. Both Drupal and WordPress are solid Open Source solutions with great track records. 
  2. Lamp Stack (PHP). Yes. Both use Lamp Stack PHP equally. Five stars for both.
  3. Enterprise Ready. Drupal: Yes. That’s where this CMS shines. WordPress: Yes and No. It’s applicable for some, not all, enterprise applications. 
  4. Dedicated Hosting Partners. Yes. Both Drupal and WordPress have dedicated hosting partners, allowing for proactive maintenance, as well as heightened security, speed, and reliability. 
  5. Available/Accessible to Novices. No for Drupal. Developing a Drupal site and understanding how to work within the Drupal interface requires distinct expertise and training. Yes for WordPress. A non-technical hobbyist or small business owner with a touch of know-how can find a theme that fits their needs and figure out how to build and manage a WordPress site, often within a few hours.
  6. Appropriate for a Brochure Site. No for Drupal. While it’s possible to create a straightforward brochure site on Drupal, there’s not much point in doing so when other, simpler options are available. Yes for WordPress. WordPress is ideal for a brochure and blog site. That’s what it was originally developed for. 
  7. Has a Complex Content Model. Yes for Drupal. Complex taxonomy content models are where Drupal thrives. Not so much for WordPress, which best serves sites that don’t require the organization of high levels of complexity. 
  8. Works for a Tight Budget. (under $10,000). No for Drupal. The flipside of Drupal’s ability to navigate complexity tends to be the requirement of considerable developer legwork and ramping up. Yes for WordPress. WordPress offers a greater range of out-of-the box solutions and, depending on requirements, it’s quite possible to build a respectable Drupal site for under $10,000. 
  9. Design Theme Availability. Drupal: Somewhat. Drupal has a limited number of design themes that are ready out of the box. Promet has created a Drupal theme as part its upcoming launch of a component-based, drag-and-drop capability for Drupal. WordPress: Yes. WordPress has an extensive and robust design theme capability
  10. Community. Drupal: Absolutely. Drupal has a great professional community of dedicated developers, who regularly gather for training and information exchange (now virtually) at events, camps, and meetups all over the world. This is less the case for WordPress. While there are many professional WordPress developers, the WordPress community is more diverse and less cohesive. 

 

Tracking the Evolution

Among those of us whose history in the CMS trenches dates back many years, it’s been very interesting to witness the evolutions of both Drupal and WordPress. At one time, Drupal and WordPress accounted for the vast majority of the open source CMS world. Together, they still account for a whopping 65 percent of the CMS market, but newcomers such as Wix and Squarespace are gaining ground among their respective niches, and GoDaddy has also just introduced a drag-and-drop CMS. At the same time, multiple closed-source website creations options have emerged that weren’t around as recently as a few years ago. 

To an increasing degree, Drupal and WordPress are viewed less as competitors, and more so as members of the same family.

One big indicator of this trend: in May of 2020, Drupaldelphia, the annual camp held in Philadelphia for Drupal developers, site-builders, content administrators, and designers, was renamed CMS Philly. The event was largely dominated largely by Drupal and WordPress. 

High Stakes Solutions  

When the stakes are high (and when are they not), selecting the right CMS calls for careful consideration and expert analysis. The Drupal vs. WordPress conversation does not lend itself toward across-the-board rules or easy answers.

That said, the judgment and expertise of anyone who suggests that Drupal is always the answer or that WordPress is always the answer should be considered highly suspect. As the saying goes: “When all you have is a hammer, everything looks like a nail.”

WordPress and Drupal each have a definite place at their respective ends of the spectrum, with hobbyist or small business sites on one end and complex, enterprise-level digital experiences at the other. The vast middle ground between these two ends can be highly nuanced with no easy answers, but there’s a likelihood that either Drupal or WordPress would work equally well.

The main thing is the assurance that true experts with a depth of perspective and commitment to client success are doing the work. 
Interested in an expert analysis of the CMS that stands to represent the right fit for your organization’s distinct objectives? At Promet Source, we have all the right people to help with that. Contact us today. 

Source for Drupal Stats:

https://websitebuilder.org/drupal-statistics

Source for WordPress Stats:

https://www.whoishostingthis.com/compare/wordpress/stats/

Dec 03 2020
Dec 03

Amazee Labs has been contributing to Drupal since the very early days of the project. Our contributions range from writing patches and maintaining modules, through to contributing to new releases and that’s why we’re proud to be one of the most experienced Drupal development agencies in the world. With our ongoing mission to build out a future proof Web Development stack, we have in recent years moulded our technology stack from several key components, some of which go beyond Drupal.


What is the Amazee Labs Open Source Tech Stack?


The majority of the technology in our stack is open source. 

As information and content have become some of the most valuable resources for many of our customers, we believe that the technology supporting your business’ digital presence is not just providing a virtual brochure, as was the case in the early WordPress vs. Drupal days. Your CMS is now a content vault and distribution system for your communications team.

Drupal is at the foundation of most of our enterprise projects. Drupal is further integrated with an open-source search engine to support dynamic and fast content search systems. Additionally, by using Gatsby (a Progressive Web App generator which is lighting fast) as a front-end layer, we dissolve the traditional dependencies between content management and content presentation, giving you the freedom to have interfaces that speak to your specific audience. The same CMS that drives your website, can also drive content for your mobile app, your voice interface (EG: IVR), or your e-commerce site.

The Amazee Labs Open Source Tech Stack. The traditional approach and our approach.

The hosting layer in our stack is run by our sister company amazee.io. Their open-source, cloud-native application delivery platform – Lagoon, which is entirely open source – powers thousands of websites in the UK, Europe, the USA, Australia, New Zealand, and Japan. The list of locations is growing all the time. 

What is WordPress?
 

It is estimated that 35% to 45% of the websites in the world use WordPress as a CMS, so chances are low that you don’t have some idea about WordPress. As above, WordPress and Drupal have a similar historical story. Both CMSs started off on the LAMP (Linux, Apache, MySQL, PHP) stack, and to this day both still rely on PHP as the coding language under the hood. 

WordPress started off as a blogging platform for the non-technically inclined. It was designed to be easy to install, easy to use, and easy to extend. Importantly, it was designed to be easy to personalize the presentation layer through the use of themes.

Points of comparison


Enterprise CMS focus

Whereas WordPress was initially a blogging platform, Drupal started out with the different ambitions of being a messaging board. These simple but important differences in the early targets of the platforms set them on different courses. 

Messaging platforms don’t just communicate information in a single direction as blogging platforms are designed to do, but rather they are designed to store information in a structured way, as well as to make it searchable.

While both platforms used PHP, and both platforms continue to grow and are extended, Drupal has always had a more “engineered” approach to its development. This is not to suggest that WordPress is somehow badly designed - both platforms have had their architectural and security problems - but rather to suggest that Drupal started out with a focus on being a web application, whereas WordPress has always spoken to bloggers and consequently smaller businesses. 

Perhaps this can be best seen in the present, where WordPress runs at least a third of the world’s websites including personal blogs, small and micro company websites, whereas Drupal continues to gain market share of the enterprise CMS market. 

Price

Both Drupal and WordPress are free and open-source tools. Additionally, for both tools, there are significant numbers of agencies and developers skilled in adopting, designing, developing and maintaining Drupal and WordPress. Vendor lock-in is of minimal concern for these platforms.

For most enterprise decisions, WordPress will attract a lower upfront investment, and might on the face of it look cheaper than Drupal. However, securing and maintaining an enterprise-scale WordPress CMS can be way more costly in the long run. This is even more prevalent if you factor in the cost of security breaches, which are a deeper concern for WordPress installations.

Security & Maintenance

WordPress has traditionally had a bad wrap when it comes to security. In truth, both Drupal and WordPress have fairly similar approaches to security. Both projects have a community and corporate-funded independent security team. Both teams work tirelessly to keep the core of the projects secure and up to date, but a few things do stack up against WordPress when it comes to security.

As we’ve already discussed, WordPress powers a huge number of the world’s websites. This increases the WordPress attack surface significantly. Many WordPress installers are focused on getting websites running, and neglect three very important considerations. 1) The security of the installation, 2) the security of the plugins used to extend the WordPress core, and 3) the maintainability of the infrastructure and the software. In short, there are many opportunities for bad actors to take advantage of misconfigured or insecure sites, as well as the many corners that webshops cut in order to compete solely on price. While this doesn’t speak to Drupal’s strength, it doesn’t play well for WordPress’s reputation in the enterprise space specifically. 

At Amazee Labs, our architecture, ecosystem, and involvement in the open-source community is geared to approaching both the underlying infrastructure – as well as extending the Drupal core – from an engineering perspective. Our stacks strength lies not only in the core software but also in the way that we select and develop modules to extend the core Open Source components within the stack.

Editorial experience

There are at least two user types of any CMS, there are your users that consume your content, and there are the all-important administrators and editors. Both Drupal and WordPress have worked hard to increase the usability of their editorial experiences because a significant amount of time and money goes into writing and managing content in CMS platforms.

WordPress historically held the title for the “easy to use” CMS. However, in recent years the editorial experience in Drupal has grown from strength to strength. Amazee Labs prides itself on our ability to create not only beautiful web experiences but also beautiful web experiences that make content management easy. 

For simpler use cases, using Drupal’s Gutenberg module, content editing in Drupal can now be configured to be much closer to WordPress, essentially closing the gap between the two platforms.

For more complex use cases, Amazee Labs has created a completely new WYSIWYG editor interface and open-sourced it to the community. This editor makes it easier for editors to create flexible page structures while being bound to modular templates and strict corporate design policies. As this content is stored in a highly structured way, this implementation is perfect for a headless-Drupal setup, where a decoupled front-end site reads content via an API.

Development, customisation, and extensions

The primary way most developers approach WordPress customisation and extension is to add plugins to WordPress or to customise the theme. 

At Amazee Labs, we take an enterprise approach where we separate the modelling of content (which happens within Drupal) from the presentation of the content to the user. The majority of content models can be captured by using Drupal and a selected set of modules, and we shift all of the user experience customisations to the Gatsby front-end layer. While both Drupal and Wordpress can expose their content models to Gatsby for presentation to an end-user, we believe that Drupal is much better suited for this purpose, and is, therefore, the better choice for the majority of enterprise customers looking for an open-source CMS.

Why are enterprises choosing our Open Source Stack?
 

We hope by now, the answer is obvious! While WordPress is a great platform for blogs, microsites, and smaller company sites, Drupal is a better choice for large enterprises who wish to use an open-source CMS and to retain their data. Additionally, our open source stack Gatsby component provides a highly customisable and enterprise-ready front-end framework to go along with an enterprise-grade CMS.

Our Open Source Stack lets Enterprises have not only the digital platform they need but the digital platform they want, all at a price that their procurement teams love!

But don’t take our word for it
 

Would you like to see our Open Source Stack in action? 

Reach out to us today to arrange a demo and take our stack for a spin!
 

Dec 03 2020
Dec 03
Lebkuchenherz undpaul

We really already reached a two digit anniversary. undpaul had its 10th birthday yesterday - and that was celebrated! With hot wine, delicious food, party hats, and memories of one or the other highlight with the undpaul team - of course all compliant with the current Corona situation using a remote meeting.

Ten years it is already... It feels a little bit as if it was only a few moments ago that undpaul was founded on a bitterly cold December day 2010 in Hannover. We have experienced and learned a lot during this time, worked on exciting projects and got together with wonderful colleagues.

"The most wonderful Drupal agency in Germany" - says Stefan about undpaul.

That is true so far, we agree. But not only that is what makes undpaul. Of course there are keywords like Drupal, experience, quality and remote work / new work. But above all, our team, collegiality, flexibility, fun, commitment and integration make us who we are.

Karte 10 Jahre undpaul

We are happy that we have come so far together and wish for another 10 wonderful years with you!

Thanks to all of you who have accompanied us so far - to you our business partners with the new challenging projects, to you undpaul friends, to the Drupal community with whom we spent so many hours and of course to the whole undpaul team for the daily fun.

Danke mit Signaturen

P.S. If you want to know something about our beginnings, you can find more information in our blog post for our 3rd birthday. There you will also find answers to the often asked question "Where does the name undpaul come from and who is Paul?".

Dec 02 2020
Dec 02

Outsourcing certain aspects of your business, such as design or development, through staff augmentation or another method is becoming more and more popular. And with good reason - there are many benefits of outsourcing which make it a viable and cost-effective choice for businesses.

Just like with any type of work arrangement, however, there are going to be certain challenges or concerns that come with outsourcing. In this article, we’ll take a more detailed look at one of them: keeping control of your project, specifically when you’re outsourcing software development.

What it means and why is it important

You can be the owner of the product that needs to be built, or a consulting business that provides implementation services to clients. In either case, you’ll of course want to make sure that the development aligns with the goals and mission of your company. At the same time, you’ll also definitely want to keep control of the resulting intellectual property.

By keeping control of the project’s management throughout its development, you’ll guarantee that all its requirements and goals are met. Trust is a key element here, especially with larger teams or when outsourcing larger parts or entire projects. 

Trust enables you to relinquish some of the control because you know your outsourced developers are aligned on your needs and objectives. You’ll be able to keep control without having to micromanage, which will be a win-win for both you and the development partner as you’ll be left to do what you do best.

As for keeping control of your IP - this is just a no-brainer. With fewer people augmenting your in-house team, you won’t need to worry about this. When outsourcing an entire project, however, look for a partner that provides white-label development so you can rest assured that you will remain in charge of the resulting IP. 

Different outsourcing strategies mean different degrees of control

How much control of your project you keep is directly tied to the type of outsourcing strategy you go with - this means that it’s wise to choose the type of outsourcing based on what degree of control you want to keep.

Infographic of differently structured outsourced teams

Managed services

If you don’t have in-house development and you’re happy leaving the project’s development up to the partner, then managed services is probably your best bet. With managed services, the partner will take care of the entire development, both the management and the execution, and you won’t need to get involved during the process.

These types of projects are very often fixed in scope, also called turnkey projects. Make sure that the partner offers white-label services, so that you’re guaranteed to remain the owner of the intellectual property once it’s delivered.

Dedicated teams

This type of outsourcing strategy is a kind of middle-ground - you aren’t just augmenting your team with one or a few people, but rather outsource a whole section of the development, or even the entire development. In contrast with managed services, though, with dedicated teams it is your project management that is in charge rather than that of the partner agency.

This way, you retain control of the overall progress of the project while leaving the technical nitty-gritty to the experts whom you’ve hired for this specific expertise. 

It is ideal both for companies with no in-house development as well as those that do have in-house developers, but lack certain skill-sets, aren’t familiar with a new technology that’s required or would like to form a new team rather than augmenting an existing one.

Staff augmentation / team augmentation

The option where you keep the highest level of control is staff or team augmentation. In this case you only need a few people to boost your in-house development capacity, either to fill a skill gap or because a project needs a large amount of a specific expertise. 

If you only need a single developer, hiring a freelancer is a viable option. As soon as you need two people or more, however, it makes more sense to contact an agency specializing in staff augmentation, so you don’t spend extra resources on several hiring and vetting processes. 

The partner agency will guarantee the quality of their staff and will be able to provide adequate replacements if something unexpected happens with the original hires. 

By augmenting your team this way, you’ll keep control of both the organizational and the technical aspects of the project, and will consequently automatically be the sole owner of the resulting product or service.

What to look for with outsourced development

Here are some of the qualities you should look for in an outsourced development partner that will help you to be satisfied with the level of control you have over your project, no matter what kind of outsourcing strategy you ultimately decide on.

  • Technical expertise: this is another no-brainer. By selecting a partner with verifiable expertise in whatever you’re looking for, you’ll be able to leave even more complex tasks and processes to them without worrying about a low-quality outcome. 
  • Good communication: transparent communication is the number one thing for ensuring trust right from the get-go. If your development partner proves to be a good communicator, you can feel safer leaving certain aspects of your project in their hands.
  • Company culture: if the agency you work with has a company culture that’s similar to yours, it’s easier to determine if they share the same values and will see things the way you do and thus execute them the way you want them to. Again, similar values will result in better alignment and no need for you to manage everything. 
  • Compliance with standards and best practices: by working with an agency or freelancer that has demonstrated their commitment to following standards, you’ll feel safer about their respect of your intellectual property and any potential NDAs involved. Furthermore, it will be another indicator of the final result’s quality.

Looking for a development agency?

We hope this article will help you in selecting the best outsourcing strategy for your needs as well as the right partner to entrust your development with. If you’re currently looking for a development agency to partner with and Agiledrop seems like the perfect choice, reach out to us or learn more about how we can ensure the success of your project:

Nov 30 2020
Nov 30

We are currently planning for Drupal core to drop support for Internet Explorer 11 in Drupal 10 (scheduled to be released in June 2022). Drupal 9 will be supported until late 2023, which means that sites that want to support Internet Explorer 11 can continue using Drupal 9 until then.

Feedback needed from assistive technology stakeholders

WebAIM's survey of screen reader users shows Internet Explorer 11 usage dropping from 23.3% in October 2017 to 10.9% in September 2019. The next edition of their survey is likely to be released at the end of 2021, but we need to finalize our browser support within the next month in order to develop and release Drupal 10 on schedule.

We need feedback from assistive technology users and accessibility stakeholders. Do you or your users still use Internet Explorer 11 with screen readers? Do their screen readers support browsers other than Internet Explorer 11? How feasible is it to upgrade to a different browser for use with your screen reader? We are requesting feedback until December 18th, 2020 January 31st, 2021.

Why would we drop support for Internet Explorer 11?

  • Microsoft stopped developing Internet Explorer 11 in 2015. For that reason it is significantly behind modern browsers that have continued development. Because more and more libraries are adopting the use of those features, there is a significant cost associated with maintaining Internet Explorer 11. For example, the latest major release of CKEditor has dropped support for Internet Explorer 11, which means that Drupal 10 cannot securely support both CKEditor5 and Internet Explorer 11.

  • Microsoft itself has dropped support for Internet Explorer 11 in many of its services, and the rest will drop support in mid-2021.

  • Usage of Internet Explorer 11 has decreased significantly. Drupal doesn’t collect analytics on browser usage from its end users, so we rely on data provided by other projects such as Wikimedia, WebAIM, and Statcounter. For example, in October 2019, Wikimedia had 4.4% of its traffic using Internet Explorer 11. At the same time this year the number had dropped to 1.4%. We assume that the number of Internet Explorer 11 users will continue decreasing before the release of Drupal 10.

  • Supporting Internet Explorer 11 degrades the experience for everyone. We currently supply all users extra code to make Internet Explorer 11 work. This increases the request size and makes page load time slower for everyone.

  • The additional requirements of Internet Explorer 11 demand additional development time that far exceeds the browser's market share. These efforts come at the expense of new features and bug fixes.

What if I need to support Internet Explorer 11?

Even if Drupal 10 drops support for Internet Explorer 11, you can continue using Drupal 9 until late 2023. We recommend advising your users to move to another browser before that. If you believe your users have specific requirements as to why they cannot move from Internet Explorer 11, post them on the Internet Explorer 11 policy discussion.

Would this affect Drupal 7?

No. Drupal 7 remains compatible with Internet Explorer 11. A separate announcement will be issued if that changes.

Edit December 17th, 2020: feedback window extended until the end of January 2021.

Nov 30 2020
Nov 30

We are currently planning for Drupal core to drop support for Internet Explorer 11 in Drupal 10 (scheduled to be released in June 2022). Drupal 9 will be supported until late 2023, which means that sites that want to support Internet Explorer 11 can continue using Drupal 9 until then.

Feedback needed from assistive technology stakeholders

WebAIM's survey of screen reader users shows Internet Explorer 11 usage dropping from 23.3% in October 2017 to 10.9% in September 2019. The next edition of their survey is likely to be released at the end of 2021, but we need to finalize our browser support within the next month in order to develop and release Drupal 10 on schedule.

We need feedback from assistive technology users and accessibility stakeholders. Do you or your users still use Internet Explorer 11 with screen readers? Do their screen readers support browsers other than Internet Explorer 11? How feasible is it to upgrade to a different browser for use with your screen reader? We are requesting feedback until December 18th, 2020 January 31st, 2021. 

Why would we drop support for Internet Explorer 11?

  • Microsoft stopped developing Internet Explorer 11 in 2015. For that reason it is significantly behind modern browsers that have continued development. Because more and more libraries are adopting the use of those features, there is a significant cost associated with maintaining Internet Explorer 11. For example, the latest major release of CKEditor has dropped support for Internet Explorer 11, which means that Drupal 10 cannot securely support both CKEditor5 and Internet Explorer 11.

  • Microsoft itself has dropped support for Internet Explorer 11 in many of its services, and the rest will drop support in mid-2021.

  • Usage of Internet Explorer 11 has decreased significantly. Drupal doesn’t collect analytics on browser usage from its end users, so we rely on data provided by other projects such as Wikimedia, WebAIM, and Statcounter. For example, in October 2019, Wikimedia had 4.4% of its traffic using Internet Explorer 11. At the same time this year the number had dropped to 1.4%. We assume that the number of Internet Explorer 11 users will continue decreasing before the release of Drupal 10.

  • Supporting Internet Explorer 11 degrades the experience for everyone. We currently supply all users extra code to make Internet Explorer 11 work. This increases the request size and makes page load time slower for everyone.

  • The additional requirements of Internet Explorer 11 demand additional development time that far exceeds the browser's market share. These efforts come at the expense of new features and bug fixes.

What if I need to support Internet Explorer 11?

Even if Drupal 10 drops support for Internet Explorer 11, you can continue using Drupal 9 until late 2023. We recommend advising your users to move to another browser before that. If you believe your users have specific requirements as to why they cannot move from Internet Explorer 11, post them on the Internet Explorer 11 policy discussion.

Would this affect Drupal 7?

No. Drupal 7 remains compatible with Internet Explorer 11. A separate announcement will be issued if that changes.

Edit December 17th, 2020: feedback window extended until the end of January 2021.

Nov 30 2020
Nov 30

Building websites that are completely mistake proof is often considered to be a massive undertaking, which many-many times is not properly executed. Since there are so many parameters to fulfil and so many corners to oversee, mistakes tend to happen. You may not even realise that you have done something wrong in the development process, it could be much much later when you actually undergo a website audit that you come across the mistake that has been made.

Drupal websites are equally prone to mistakes. Despite the CMS being one of the best, there are still occurrences when things go wrong and the impact is felt on the engagement, conversions and consequently, the sales.

To not let that happen, I have compiled a list of mistakes that you need to steer clear of when building or working on a Drupal website. These are errors and oversights that many developers and content authors have experienced first-hand and you can certainly try to learn from their mistakes.

So here are the most common mistakes witnessed on Drupal websites.

A pencil is shown after having erased an error on the extreme left and the mistakes to avoid in Drupal are written in bullets in the rest of the space on a white background.


Where can you go wrong with the content? 

A good website is often considered to be the one with outstanding content, since that is what keeps the audience engaged and leads to conversion. Therefore, content is crucial for a website, both for the front-end and the back-end, so content should be one of the priorities in the website designing process. Due to this fact, there are a number of areas where the developers can go wrong with the content. 

The first common mistake witnesses with the architecture of content is using too many content types that you actually do not use. The unused content types are just going to burden your database and I am certain, you would not want an additional table in your database for three content types that you do not even use. Having content types with no nodes will have the same effect. Performing an inventory will help you get the mistake resolved.

Moving on from the unused to the used, content structures are extremely valuable for your editors who are going to fill them up and if they end up confused, what will be the point of it all? Standardising your content types is going to help you a great deal. 

  • Strike off the content types that are similar to each other, like news and articles;
  • Do not add new fields for every content type;
  • And most importantly, plan a structure prior to it, winging it may not work with your website content.

Content types have an effect on the performance of your website as well. So, if you do not want to drain the performance of your site by adding unnecessary complexity, you would be wise to avoid these mistakes.

What about your display mismanagement?

After content comes its display and Drupal is best in that game. With many different features available for use, Drupal can make your display game strong as well, you capitalise it wisely.

Creating a view for every list is both impractical and a waste of time. Focus on reusing Views as much as possible along with parameter based rendering.

Do you use PHP code in your database? If so, avoid doing that, instead you must write all the codes in the modules or themes itself.

Planning, optimisation and segregation are essentially the building blocks of a great website display. 

  • Planning to render the content types you need;
  • Optimising the Views you already have;
  • And segregating logic from presentation.

These three would have a visible effect on the display architecture.

What aspects of functionality can make your site lag behind?

The functionality of a Drupal site depends on the number of modules used and the way they interact with each other. Your code and how much of it you use is a major contributor in that. 

The most common mistake in this sense is the ignorance of code standards. This becomes more of a problem when there are more than one developers and everyone is using a different type of code. In such a situation, not only would the standard be lost,  but it would also become difficult for a developer to understand the other’s code. Therefore, the adherence to Drupal’s Coding Standards becomes a great help to uniformalise the code and make the functionality a breeze. 

Another obstacle in functionality are unorganised patches. Code modifications and bug fixes mandates the implementation of patches, however, they become a problem whenever there is an update. You can forget all about re-apply the patch or forget to change it in accordance with the new version. This can very well affect the functionality of your website, so organising them is essential. 

Having too many modules, too many roles and too much custom code, despite there being contrib modules for the same is bound to affect the functionality as well. Evaluate and re-evaluate your site for its needs to overcome these functionality hindrances.

Is your performance and scalability not up to the bar?

User Experience is directly proportional to the performance of your website; the more streamlined the performance is, the richer would the UX be. 

Here are three scenarios that can impact your performance in all the wrong ways.

  • The foremost is improper JS/CSS aggregation settings. This is supposed to combine and compress JS and CSS files from the modules in the HTML, leading to lesser load times and higher performance. And you will be saying goodbye to that with the improper aggregation.
  • The next mistake is that of inundating your site with too many modules. Drupal may have numerous modules to offer, but you can’t be using too many of them. Doing so would only slow you down and hamper your security as well. Only keep the modules that you would be using, messing up your code, performance, overheads and security is simply not worth it.
  • A sound cache strategy also goes a long way in performance enhancement. Caching too soon, caching at lower levels and not knowing what and when to cache all contribute in a lowered performance.

Drupal websites can be scaled by millions of users within seconds and that is what makes these sites great. Drupal offers many modules to enhance the performance and scalability, Blazy, Content Delivery Network and Server Scaling, being just a few of them. Not installing these could be deemed as a mistake. Access the Drupal performance optimization and scalability provisions checklists to get more insights.

Are you facing possible security breaches?

Security has become one of the major concerns amongst website builders. Therefore, protecting your business from the menace of hackers and all the havoc they can cause is paramount. 

You must have your security measures in place, however, there still may be certain areas where you may have become complacent and that just gives the break the hackers need. 

  • Primarily, you need to keep your website updated, all the core and contrib modules, despite you using or not using them. Updating a module would mean that Drupal’s security protocols are being updated with them and you make yourself secure with that. You cannot have your projects falling behind on various levels of Drupal’s security advisories.
  • Now, you can install the “ Update Manager” module to keep yourself updated. The “Available Updates” will give you a friendly reminder of applying the available security updates.
  • Next on the list of security blunders is not giving the Input Filters in Drupal their due importance. You might have configured the full HTML Input Format to every user or you might have completely disabled the HTML filtering. Both of these instances can give malicious code to enter your website and you know what happens then.
  • Continuing on similar lines, many sites also configure their servers improperly leading to unwanted access to them. On some occasions, servers are seen displaying their version numbers, which is like giving an open invitation to hackers. Server configuration and permissions should be a priority for every site builder.
  • It is also important to ensure that all the users accessing your site by logging into it are the ones you want. By implementing a password policy, removing old users and updating staff roles, you will be taking a step towards better security.
  • User roles are quite important in running a website, however, they can become overused quite quickly too, which not only slows down your website, but if they are misconfigured, it can lead to major security breaches.

Drupal has proven to be one of the best CMSs in terms of its security measures, it has you covered from every corner, but only if you let it. From granting secure access to providing granular user access control along with database encryption and preventing malicious data entry, Drupal will keep your site protected, provided you let it.

Have you made any infrastructural oversights?

The infrastructure of your website is decided by the stacks you have, which includes the server, database and the software layers like Varnish. Going into development with a firm plan for your infrastructure is the only way to go, an oversight in this area can be quite damaging. 

The common mistakes in this area are;

  • The size of the website’s stack is extremely large or extremely small.
  • Not preparing for growth by consistently checking the logs for error and the identification of the weaklings.
  • Having an ideal sized server, but not configuring it properly, which can make the traffic forego Varnish.
  • Allowing remote connections to the server can make the website more vulnerable.

Misconfiguration can be avoided by simply using the right tools for it. MySQLTuner is one amongst many, its performance suggestions help in improving the infrastructure as well.

Are you following your maintenance goals?

Maintenance of a website starts after the development is done and continues for the entirety of the life of the website. Considering this fact, you have to be very diligent with the maintenance process as making the wrong moves can be brutal.

Here are some of these wrong moves.

  • Not following Drupal updates is a more common mistake than you would think. By doing this, you are going to be hampering security and making your site vulnerable to Drupalgeddon attacks.
  • On the contrary, there are also times when we update the modules, but we forget to remove the older versions. This too happens a lot of the time and can cause many problems.
  • It is not just the modules that need to be updated, the development environment should also be up-to-date and friendly for testing.
  • Then there is the code, which is not using the Version Control System like Git, even the deployment of files should come directly from there. Also, using it, but not leaving messages for other developers related to the changes made can lead to chaos. It is, thereby important to always keep the VCS repository clean.

The crucial aspects of maintenance is time and consistency. When you do it timely, only then would it become a worthy practice. The review and assessment of your architecture in timely intervals along with all the logs, be it Apache or Drupal is a great headstart for the maintenance process.

Are you universally accessible?

Websites today need to transcend the parameters that used to confine them and their audience in the past. The sites and applications need to be built on a foundation that would make them fit for each and every user. Drupal has worked for the same, it aims to make websites accessible to all, including people with disabilities, by making itself an all-accessible tool. 

Web accessibility has become of the essence today, and persons with disabilities are at the core of it. Websites need to be designed keeping in mind their needs, be it a broken hand or a temporary sight loss. It isn't just me who believes this, World Wide Web Consortium’s guidelines agree with me as well. W3C two sets of guidelines are ardently followed by Drupal and your website should do the same, thus, support and foster inclusion. 

Despite its importance, many developers tend to overlook the accessibility features and that is where they go so very wrong. 

  • Not focusing on balanced contrast levels that can work under sunlight;
  • Not incorporating a form validation error verbiage to aid the visually impaired; 
  • Not using buttons over CTAs.

These may seem like minor errors to you, but they can go a long way in making your Drupal site accessible to everyone. Read this comprehensive guide to plan for web accessibility to know more.

Is your site SEO friendly?

Being SEO friendly is almost as important as building a website. Search engines bring in big numbers of traffic, so optimising them is crucial; yet we tend to forget to fine-tune the SEO details and focus on all the other aspects. At the end of the day, a website is an online business and business cannot survive without its clients and being SEO friendly is the way to go. Going wrong in this area can be extremely detrimental.

Look at the following aspects of a website and see how many you are and aren’t doing. 

Are your URLs user friendly?
Are your images small in size, with filled out alt texts?
Are you making your paragraphs short to make the text easy to scan through?
Are you using robots.txt for pages that you do not want crawled?
Are you creating an XML roadmap to help Google easily understand the structure of your website?
Are you researching your keywords?
Are you adding internal links to make your less popular pages gain attention through the more popular ones?

A positive answer to all of these means that your SEO game is strong and a contrary answer would let you know your mistakes.

To avoid the contrary from happening, Drupal provides a number of modules to help you capitalise on the SEO front. The SEO checklist module is a proof of that as it helps you by ensuring that you are following through on the latest SEO practices. Then there are the modules that aid your URL precision, like Redirect, Pathauo and Easy Breadcrumbs.From easing the process tags to helping in communication with search engines to providing the essentials for editing, Drupal has all the right SEO modules in its corner and not using these would be a colossal mistake on your part. Read our blog, The Ultimate Drupal SEO Guide 2020, to know more about these. 

Can being multilingual pose a problem for you? 

Today, languages that are regionally spoken have started getting more prominence than ever before, especially in the international community. A french website would not be successful in India, if it is in French, not many people speak that language, so it would have to be in a locally accepted language. Being multilingual also opens the doors for many mistakes to occur. 

  • Using the same URL for all of your multilingual websites; 
  • Not giving the user a chance to avoid a redirect to the international website;
  • Using an automated translator, instead of actually hiring content authors fluent in the language;
  • Foregoing to translate the imbedded parts of the site like meta tags and descriptions;
  • Not focusing on the foreign market trends and the keywords appropriate to it;
  • And lastly, not writing the content in accordance with the local language and dialects. You can’t be calling ice lollies popsicles sticks in India.

You have to be totally attuned with the language of the region that you have followed for the multilingual project to work. Learn more on Drupal’s multilingual capabilities here.

Is having a multisite presence worth it?

Depending on your business and its needs, having multiple sites can be a good solution for you. However, managing then can become a bit of a hassle and often lead to big blunders. 

Some examples of such blunders are;

  • Traffic is one of the major concerns here. Running multiple sites means you have one codebase and many sites on it, so if one is inundated with traffic, all of them could slow down as a result.
  • A mistake in the syntax of one site could mean a mistake in the syntax of all.
  • Updates become a headache as well. For Drupal sites, you have to run an update.php in order to update the site and doing that on multiple sites is going to bring on the headache.
  • And finally, if you do not use Aegir, you are going to regret going multisite.

Is your Decoupled Drupal approach the right one?

Drupal offers an impressive front-end technology to make your presentation layer as good as you want, yet it does not include all the front end technologies there are on the market. Taking advantage of JavaScript and Static Site Generator would mean to decouple Drupal and separating the front-end from it. Even if you want to take on decoupling, it may not want to take on. The decoupled Drupal can bring more drawbacks then. 

  • If you wish to capitalise Drupal’s in-built features, Decoupling would be a mistake, since you would end up parting with them.
  • If your front-end requirements and Drupal’s front-end capabilities are aligned, taking on Decoupling would only be an unnecessary effort on your part.
  • If you do not have either the budget or resources to tap into the hottest technologies, then even if you want them it is not going to be fruitful.
  • If you are only publishing content at one place, you would have no need for decoupling.

For a detailed explanation, read our blog, When to Move From Monolithic to Decoupled Drupal Architecture.

Finally, what about web hosting, are you doing it the right way?

Web hosting services that provide your website its own space on the internet are pretty common. There are far too many web hosts to count, yet the decision to choose one is not easy at all, since there are too many considerations to keep in mind. 

Some of the common mistakes to avoid which signing on a web host are;

  • Testing web hosts is not uncommon, it is the right way to know whether they are valuable. However, testing on your website that is primarily bringing in the traffic could be unwise, especially if you are using a free service. Therefore, not registering with a different party can be colossal.
  • Another mistake is trusting too easily without knowing the host for too long. Therefore, not partnering with one that has a long trial could be a mistake. The longer the trial period on offer is, the more reliable the host is going to be.
  • Taking on a web host is a huge commitment, so you have to be sure that you are in the good. Not doing your due diligence before the commitment is not the right way, comparing the pricing and features along with checking if they have blacklisted IPs.
  • Not tracking your hosting uptime and speed can also be a problem. Also not checking what guarantees for uptime are provided by the hosts for the same would not be wise. If there is a lapse between the guaranteed and actual uptime, keeping a track would give you the opportunity to ask for compensation.
  • Lastly, you cannot afford to not have a backup of your site and that too regularly. You will only have the recent version of your files and assets, if you back them up.

The Bottom Line 

Every aspect of your website is important, consequently, you have to be mindful of them all. If you are not, mistakes will happen and they will cost you your site’s performance, its security and your potential customers and sales. In order to keep that from happening, you have to avoid all of the aforementioned mistakes and ensure that your website is impeccably built and maintained on all platforms. 

Nov 27 2020
Nov 27

Drupal is being chosen as a platform for building websites, among other things, due to its flexibility. If you want a system ideally suited to your business model and better than the competition's systems, Drupal will prove to be perfect. One of the areas you can customise in Drupal is the user permissions system. Take a few minutes to learn about the permission management abilities of Drupal.

General information

Drupal allows you to manage access from the admin panel and from the code level. In this post, I will present these two possibilities and the most common examples of their use.

Roles and permissions in the Drupal core

If this is your first time dealing with Drupal and its permission system, you should know that there are three elements used for granting permissions:

  1. User
  2. Role
  3. Permission

When installing Drupal, you create a root administrator account in the system (identifier 1 in the database). It can be compared to the root user in Unix systems. This user has access to all subpages and settings in the system.

You can add more users to the system. These could be, e.g. the editors responsible for creating the content, or the moderators deciding whether to post the added comments.

If you want to assign a permission to a given user, you do it indirectly by assigning a role to them. There is no association between a user and permissions in Drupal. There is a user-role association and a role-permission association.

schema

How to add an editor role and assign the appropriate permissions to it

This is probably the most common issue encountered in Drupal. You need to let users into your system, but you want to limit their rights to the content management only. You do not want to give the rights to change the system configuration or to add new users.

In order to achieve this, follow these steps:

  1. Add a new role on the page "/admin/people/roles/add/".
  2. Assign the selected permissions to the role on the page "/admin/people/permissions/". For the content-related ones, check out the "Node" section. Below you can find more information on the permission list.
  3. Assign the selected user to the new role on the page "/admin/people/".

Then log-in into the account of the selected user and check out whether they have the appropriate permissions. Maybe you need to extend them or take them away. If you are unfamiliar with the Drupal's permission system, such a test with logging-in into the user account is always worth carrying out.

You do not need to know the password to the user account you want to log-in into. You just need to install the module Masquerade. Thanks to it, you can log-in into the account of any user.

Drupal core permissions overview

When entering the page "/admin/people/permissions/" for the first time, one can get a little scared. This is probably the longest configuration page in Drupal.

Let us start with the table header. You will always see the word "PERMISSION" in the first column. In the next cells of the first row, there will be the names of the roles. The more roles you add (you can add them on the page /admin/people/roles/add/), the more of them you will see in this table.

Then, looking at the first column in its entirety, you will see a long list of permissions. The permissions are divided into sections. The sections are the names of modules. The "Node" section mentioned earlier is named so because the permissions in this section are defined in the "node" module (you will find it on your disk in the core/modules/node directory).

Some sections have only one permission, e.g. the "Block" section has the "Administer blocks" permission only. Others have many more of them.

If this is your first time dealing with Drupal permission settings, I suggest that you read the names of all permissions. The names themselves explain what a given permission is for.

Anonymous & Authenticated

There are two system roles in Drupal that cannot be removed:

  1. Anonymous User
  2. Authenticated User

The first of these roles is responsible for all non-logged-in users. For example: if you want to add the ability to view user profiles for all non-logged-in for the "View user information" permission, tick the checkbox in the "Anonymous User" column.

"Authenticated User" is the role assigned to all logged-in users. It is important here to understand the permission inheritance. If you assign a permission to "Authenticated User", then all other roles (except anonymous) will be given this permission immediately.

Example: You have the "Editor" role in the system. You assign the "View user information" permission to the "Authenticated User" role. Everyone with the "Editor" role will also be given the permission because they are also considered to be logged-in users.

Moreover, keep in mind that if you select any permission for the Anonymous role (e.g. "View user information" again), but do not select it for the "Authenticated User", the logged-in users will not be able to access the selected section ("View user information" – they will not have access to user profiles).

Worth remembering

  • In Drupal, you can add an unlimited number of roles.
  • The list of permissions is defined by modules in modulename.permissions.yml files (more on this can be found further in the text). 
  • The "Authenticated" and "Anonymous" roles are separate – if you select something for "Anonymous" only, the logged-in users will not be given this permission.
  • To test permissions, it is good to use the Masquerade module.

Own permissions in the code

Sometimes there is a need to define your own permissions, e.g. to administration pages defined by new modules or to modify access to the pages defined by the Drupal core.

How to define a permission

You just need to add the modulename.permissions.yml file in the new module (or in the existing one, if you already have your own modules created). If you do not know how to create your own modules, I encourage you to visit the website.

The permission file is a file in the YML format. A simple example can be found in the Popup Message module, right here.

skrin

Being defined in the file is a unique name for the permission (e.g. "popup message administration"), and then – the names being displayed on the page "/admin/people/permissions/". You can provide a title in the "title" parameter and additionally – a more detailed description in the "description" parameter.

This is enough to define new permissions. After creating the file and clearing the cache, you will see the new permissions on the "/admin/people/permissions/" page.

How to use a permission

Most often, permissions are being used when defining routing. Take a look at the file.

In the "requirements" section, you can add the "permission" parameter. In this way, you can define the users (or rather roles) with what permission can display the page defined in routing.

The second method is to check out the permissions in your code. User object in Drupal has the "hasPermission" method. In this way, you can check out whether a given user has the selected permission.

// Get the current user
$user = \Drupal::currentUser();
// Check for permission
if ($user->hasPermission('display popup message')) {
// Do something.
}

It is worth to take a look at the hasPermission method here. As you can see, the user ID is being checked there. If the id equals 1, the user gets access without further checking if they have selected roles.

How to check whether the user has a role

Drupal also offers a ready-made method to check whether a given user has a role with a specific name. Provided below is an example of how you can do it in the code.

// Get the current user
$user = \Drupal::currentUser();
// Check for permission
if ($user->hasRole('editor')) {
// Do something.
}

Additionally, there are also methods related to the Authenticated and Anonymous roles:

  • $user-> isAuthenticated();
  • $user-> isAnonymous();

How to check permissions for operations on an entity

In the application code, you can also check the permissions to operate on selected entities (e.g. Node or User). You can perform certain operations, e.g. depending on whether the user has the right to edit a given entity or to display an entity.

Entities in Drupal have the method access($operation = 'view', AccountInterface $account = NULL, $return_as_object = FALSE). A simple example of use is provided below:

$nid = 545;
$node = \Drupal\node\Entity\Node::load($nid);
$user = \Drupal::currentUser();
if ($node->access('edit', $user)) {
// Do something
}

Defining content permissions

Drupal allows you to manage access to display and edit at the level of a single entry (node). This topic was thoroughly described in our other blog post. Grzegorz Pietrzak described it in the article Drupal Node grants.

Ready-made modules for Drupal related to permissions

There are already many ready-made modules extending the capabilities of the Drupal core. You should check them out before you start writing your own permission-related modules.

Below is a list of a few selected modules that are worth checking out and testing:

Also, check the page and take a look at other modules. Maybe some of them you will find useful.

Summary

Drupal is a very flexible system. Just looking at the possibilities regarding permissions, you can see the multitude of configuration possibilities. If you are building a large website with many editor levels or an internal application (e.g. an intranet system) where the users must have limited permissions, Drupal will do the job very well.

If you need support from Drupal specialists on permissions or other issues, use the services of our Drupal developers.

Nov 23 2020
Nov 23

Do you own an existing drupal.org project that does not yet have a Drupal 9 compatible release? This week would be a good time to take that step and make a Drupal 9 compatible release! I am paying for two tickets to DrupalCon Europe for new Drupal 9 compatible releases. Read on for exact rules!

DrupalCon Europe is in two weeks already! December 8-11, 2020. It offers 4 keynotes, including the Driesnote and the Drupal Core Initiative Leads Keynote (that I help coordinate), 119 sessions in five different content tracks, 4 workshops, interest group discussions, and networking. These are all included in the 250 EUR (no VAT) ticket. I would love to see you there!

Looking at Drupal 9 compatibility data, while 83% of the top 1000 projects by usage already have a release, the others do not. If we look at all the projects, 43% of them have a Drupal 9 compatible release. This is way better than with Drupal 8 was at the same time, but we can still do better! 22.5% of all projects (2177 projects in total) need an info.yml file change and a release, no other changes required. There is a good chance one of those are yours!

The rules of this giveaway are the following:

  1. The participating project must have existed before this week.
  2. The project must have its first Drupal 9 compatible release this week, before end of Friday.
  3. Selection from eligible projects is random.
  4. The lead maintainer on the winning two projects will pick who gets the ticket.
  5. In case of a pass, I draw another project.
  6. I will be using my existing script from the #DrupalCares campaign to track the newly Drupal 9 compatible projects.
  7. The script uses the official drupal.org releases dump and takes dates of releases from there.

I'll keep this list up to date throughout the week with who is in the running:

November 23

November 24

November 25

November 26

November 27

Update: Congratulations to winners: Marcelo Vani for the first Drupal 9 compatible release of CSV to Config and Daniele Piaggesi for the first Drupal 9 compatible release of Prevnext.

Nov 23 2020
Nov 23

4. Track team

This year's DrupalCon will feature well-over 100 sessions, across five tracks, and also four deep dive workshops that are not to be missed (for the first time, these workshops are included in the price of your ticket).

For a number of years, Annertech has provided volunteers to chair tracks. This involves many meetings about the conference to decide what the tracks will be, answering questions from those who wish to speak before sessions are submitted, reviewing and rating sessions after they are submitted (hundreds get submitted, so this is no small task), awarding speaking slots, and ensuring speakers are taken care of during the conference.

Our Director of Projects, Mike King, has been a track chair for many years, including chairing the Agency & Business track this year. In previous years, Mark Conroy, our Director of Development, has chaired the Frontend and Site Building tracks, while Stella has chaired numerous tracks from Agency & Business to Higher Education.

Nov 19 2020
Nov 19

Our normally scheduled call to chat about all things Drupal and nonprofits will happen TODAY, Thursday, November 19, at 1pm ET / 10am PT. (Convert to your local time zone.)

No set agenda this month, so we'll have plenty of time to discuss whatever Drupal-related thoughts are on your mind. 

All nonprofit Drupal devs and users, regardless of experience level, are always welcome on this call.

Feel free to share your thoughts and discussion points ahead of time in our collaborative Google doc: https://nten.org/drupal/notes

This free call is sponsored by NTEN.org and open to everyone.

View notes of previous months' calls.

Nov 12 2020
Nov 12

Like every month, we’ve compiled some of the top Drupal blog posts written the previous month. Take a look at our list for October.

Drupal Association Board Election 2020 – winner announced

The first post we’re covering this month is Pedro Cambra’s announcement of winning the 2020 election for the Community At-Large director position on the Drupal Association board.

Pedro starts off by thanking all participants who voted and inviting those who didn’t to share with him their reasons for not doing so. He then lists his goals for the two-year term which began on November 1st.

These include getting more information on the recent changes in the community and informing the community about them, revisiting the initiatives aimed at engaging with the community, providing a voice for the community, and helping non-native English speakers better engage with the DA.

Read more about the 2020 DA board election

Migrating Paragraphs to Layout Builder in Drupal

Next up, this post by Phase2’s Daniel Sasser shows how you can migrate Drupal Paragraphs to the block-based Layout Builder. He begins with the setup (a Drupal 7 to 8 migration in this case), then covers the different types of Layout Builder’s Section storage as well as the construction of the Section storage. 

In the second half of the post, Daniel gets to the meat of the matter - the actual migration. The first and key step is migrating paragraphs to blocks, starting with building the block structure for the destination site. Once that’s done, you can proceed with migrating the nodes.

Read more about Paragraphs to Layout Builder migration

Web Development Strategy in a Drupal 9 World

June’s release of Drupal 9 represented a truly major change for the platform, paving a new future for Drupal. In this next post, Lullabot’s Matt Robison discusses how development strategies will evolve in this new future for companies relying on Drupal.

The first point Matt covers is establishing a new cadence for your development work. The most important things here are planning out releases, new initiatives and features, addressing technical debt and allocating resources. 

Next is a section on revisiting architecture and content, then finally one about leveraging outside help within this new model. With the latter, it can be either for maintenance and support, to fill in-house skill gaps or increase your development velocity. 

Read more about development strategy with Drupal 9

Drupal 8/9 Migration Performance Tips and Tricks

The fourth post we’re including this month again has to do with migration. In it, Tandem’s John Ouellet provides some handy tips and tricks for optimizing the performance of your Drupal migrations. 

John’s first trick is to use the Migrate Booster module, which nets a decent performance gain by allowing you to disable modules that rely on hooks. The other two more important considerations are database tweaks and batching the migration.

John finishes his post with some other more general tips, such as keeping your site up to date with the latest minor versions of Drupal and running your migration in Drush rather than the UI. 

Read more about migration performance tips

An Absolute Beginner’s Guide: Using a Drupal Core Method in Your Own Code

Moving on, we have Mike Madison’s beginner guide to using a Drupal core method in your code. In the post, he works on the example of the Random::word() method.

He starts by giving a brief description of object-oriented programming and its benefits, then how it fits into the context of the example of patching the Honeypot module to randomly assign a title to a field. 

In order to follow the OOP approach and avoid code duplication, Mike uses the core Word method, but with first instantiating the Random class before using the method. He also recommends using an IDE for this, as they are very useful for catching errors.

Read more about using Drupal core methods

Local Behat Testing with Lando and Pantheon

We continue with a blog post by Zakiya Khabir of Chapter Three on doing local Behat tests with Lando and Pantheon. While very useful, as Zakiya points out the default Behat tests provided by Pantheon may not work properly on a custom site which has made changes to the default Drupal installation.

Zakiya’s post shows how you can remedy that and have your Behat tests run locally by making minor file changes to your Lando-based project: adding a drush alias file, adding Behat-specific config and Behat tooling, and finally running the tests with lando behat. She concludes with some other general tips, such as not foregoing other types of tests because of Behat.

Read more about Behat testing with Lando and Pantheon

Adding a WYSIWYG to text fields in Drupal 8 and 9

In the next post from October, Advomatic’s Heather Wozniak describes how you can add WYSIWYG to a text field in Drupal 8 and 9, which is a very common need for site builders.

Heather proposes two ways to go about it. The first solution is writing an update hook to create a new field, migrating data to it, then deleting the old field as well as reconfiguring. As she states, though, this solution takes much longer and is much more error-prone.

The more efficient way is to add a form alter, then enable the fields to render as formatted text, which can be done with just a few lines of code.

Read more about adding WYSIWYG to Drupal 8 and 9

Debunking 4 CMS Migration Myths

We round off this month’s list with another migration-related article, this one by Mobomo. It's not Drupal-specific, but discusses and debunks 4 common myths of migrating to a new CMS. 

The first one is the fear of losing all data when migrating, which is justified but can be easily resolved by taking the proper steps. The second myth is having to invest in a redesign while performing a migration, which should be approached more thoroughly and holistically.

Third is another well-known fear - that of losing SEO ranking. While you’re likely to have a SEO dip right after migrating, a better optimized site will actually benefit SEO in the longer term. The last myth pointed out by Mobomo is that migration is simply a “lift-and-shift”, which is in reality very rarely the case. 

Read more about CMS migration myths

Statues from Easter Island

We hope you enjoyed this month’s recap and found some useful information for something you’re working on. Stay tuned for more for a new recap next month!

Nov 11 2020
Nov 11

Tugboat.qa offers automated and on-demand deployment previews to accelerate development. In 2019, Tugboat was successfully integrated as the backbone of the community testbed Simplytest.me. Following that success, a community-lead initiative emerged to provide these previews for all of Drupal Core development, by integrating into the Drupal.org issue queue. Drupal Association CTO Tim Lehnen (hestenet on Drupal.org) opened an issue to explore this option in early August.

Why automated environments for Core issues?

Reviewing and testing Drupal.org issues has historically been the purview of experienced Drupal developers. Designers, end-users, and other stakeholders have been relegated to the role of watching over the shoulder of developers who drive demos from local development environments. This has been detrimental to fully involving those stakeholders in a development process that could improve Drupal for all users. With Drupal's ease-of-use, accessibility, and front-end features being central to the current strategic initiatives, it was time to ensure that these stakeholders are fully empowered. 

Automated deploy environments help bridge the technical divide and bring the ability to review changes to more users. Longtime Drupal contributor YesCT says:

The Tugboat integration with drupal.org issues makes reviewing and testing possible for people who have never been able to do it before. This project uses technology to lower the barriers of contributing to Drupal, and makes contributing more accessible to more people. It’s going to be a huge game-changer.
YesCT

In practice, visitors to the Drupal.org issue queue can click a link to tour a live, working version of a Drupal website wherever Tugboat deploy previews are enabled. As of November 10, 2020, this includes all Drupal Core issues.

Current UI:

Current UI for live previews in Drupal core issues

Upcoming UI revision:

Upcoming ui revision for live previews on Drupal Core merge requests

Drupal.org deploy previews - under the hood

The Drupal.org/Tugboat integration relied on a handful of contributors across a project that spanned months, but the core of this collaboration was a partnership between core contributor Juampy NR and Drupal.org architect Neil Drumm

As a senior developer at Lullabot, Juampy's continuous integration expertise, as well as his familiarity with Tugboat, made him an invaluable contributor to implementing the Tugboat side of the integration. Neil's expertise as architect, meanwhile, gave Juampy and Tugboat the guidance to find the right places in Drupal.org's custom logic to add code for this new integration. Simultaneous to the Tugboat integration, Juampy and Neil also worked to implement the Drupal Association GitLab integration, bringing issue forks and merge requests to the issue queue

Some of the challenges that this team faced included:

  • Drupal.org’s large database. Because of the size of the database, the team had to work remotely using a provisioned development environment. Remote debugging helped to catch and traverse the different events involved in the workflow.

  • Understanding where to write code. Drupal.org has a ton of custom logic, so finding the right place to add new code was not easy. The Drupal Association's guidance was key.

  • Integrating multiple systems. The team had to write interactions between Drupal.org, Tugboat, and GitLab, taking into account error responses, timeouts, and firewall restrictions.

Deployment preview workflow

Reducing friction by making changes visible and more accessible to all contributors

Before this integration, contributors had to take and upload screenshots of their changes, and reviewers had to replicate changes locally in order to see them in action. Tugboat reduces friction by making changes visible - and more accessible - to anyone who clicks the preview URL. This shortens review time considerably and invites participation from non-developers, working toward Drupal's value of respecting and valuing inclusivity.

Check out our documentation on Drupal.org to learn more!

The Drupal Association gives our thanks to TugboatQA/Lullabot, for contributing this feature to the Drupal project.

Nov 09 2020
Nov 09

For the past few years, I've examined Drupal.org's contribution data to understand how the Drupal project works. Who develops Drupal? How diverse is the Drupal community? How much of Drupal's maintenance and innovation is sponsored? Where do sponsorships come from?

The report might be of interest even if you don't use Drupal. It provides insights into the inner workings of one of the largest Open Source projects in the world.

This year's report shows that:

  • The recorded number of contributions increased year over year.
  • More and more contributions are sponsored, but volunteer contributions remain important to Drupal's success.
  • Drupal's maintenance and innovation depends mostly on smaller Drupal agencies and Acquia. We don't see many contributions from hosting companies, multi-platform digital agencies, system integrators or end users.
  • Drupal's contributors have become more diverse, but are still not diverse enough.

You can also look at the 2016 report, the 2017 report, the 2018 report, and the 2019 report.

Methodology

What data did we analyze?

We looked at all Drupal.org issues marked "closed" or "fixed" in the 12-month period from July 1, 2019 to June 30, 2020. This for Drupal core and all contributed projects, across all major versions of Drupal.

What are Drupal.org issues?

Each "Drupal.org issue" tracks an idea, feature request, bug report, task, or more. It's similar to "issues" in GitHub or "tickets" in Jira. See https://www.drupal.org/project/issues for the list of all issues.

What are Drupal.org credits?

In the spring of 2015, I proposed some ideas for how to give credit to Drupal contributors. A year later, Drupal.org added the ability for contributors to attribute their work to an organization or customer sponsor, or mark it the result of volunteer efforts.

Example issue credit on drupal orgA screenshot of an issue comment on Drupal.org. You can see that jamadar worked on this patch as a volunteer, but also as part of his day job working for TATA Consultancy Services on behalf of their customer, Pfizer.

Drupal.org's credit system is unique and groundbreaking within the Open Source community. It provides unprecedented insights into the inner workings of a large Open Source project. There are a few limitations with this approach, which we'll address at the end of this report.

What is the Drupal community working on?

In the 12-month period between July 1, 2019 and June 30, 2020, 31,153 issues were marked "closed" or "fixed", a 13% increase from the 27,522 issues in the 2018-2019 period. This averages out to 85 issues marked "closed" or "fixed" each day. This is compared to 75 issues in 2018-2019.

In total, the Drupal community worked on 4,195 different Drupal.org projects this year compared to 3,474 projects in the 2017-2018 period — a large 20% year-over-year increase. I attribute the larger than normal growth to the Drupal 9 release.

Time period Number of issues "fixed" or "closed" by day Number of projects worked on 2017 - 2018 67 3,229 2018 - 2019 75 3,474 2019 - 2020 85 4,195

The majority of the credits are the result of work on contributed modules:

A pie chart showing contributions by project type: most contributions are to contributed modules.

Compared to the previous period, contribution credits increased across all project types:

A graph showing the year over year growth of contributions per project type: contributions to modules grew the most.

It is nice to see the "non-product credits" grow. More and more members in the community track credits for non-product contributions. These include organizing Drupal events, presenting at Drupal events, promoting Drupal, mentoring, and more. While some of these increases reflect new contributions, others are existing contributions that are newly reported. The fact that the credit system is becoming more accurate in recognizing more types of Open Source contributions is both important and positive.

Who is working on Drupal?

For this report's time period, Drupal.org's credit system received contributions from 8,303 different individuals and 1,216 different organizations. We saw a 2.5% decline in individual contributors, but a 7% increase in organizational contributors.

A graph showing the number of individual and organizational contributors year over year.

Consistent with previous years, approximately 50% of individual contributors received one credit. Meanwhile, the top 30 contributors (the top 0.4%) account for 20% of the total credits. In other words, a small number of individuals do the majority of the work.

Starting last year, I weighted each credit based on the adoption of the project the credit is attributed to. For example, each contribution credit to Drupal core is given a weight of 10 because Drupal core has about 1 million active installations. Credits to the Webform module, which has over 470,000 installations, get a weight of 4.7. And credits to Drupal's Commerce project get 0.6 points, as it is installed on around 60,000 sites.

The idea is that these weights capture the end user impact of each contribution, but also act as a proxy for the effort required to get a change committed. Getting a change accepted in Drupal core is both more difficult and more impactful than getting a change accepted to a much smaller, contributed project.

This weighting is far from perfect, but so is the unweighted view. For code contributions, the weighted chart may be more accurate than a purely unweighted approach. I included both charts:

A graph showing the top 30 individual contributors ranked by the volume of their contributions.A graph showing the top 30 individual contributors ranked by the impact of their contributions.

No matter how you look at the data, all these individuals put an incredible amount of time and effort into Drupal.

It's important to recognize that most of the top contributors are sponsored by an organization. We value the organizations that sponsor these remarkable individuals. Without their support, it could be more challenging to contribute.

How much of the work is sponsored?

When people contribute to Drupal, they can tag their contribution as a "volunteer contribution" or a "sponsored contribution". Contributions can be marked both volunteer and sponsored at the same time (shown in jamadar's screenshot near the top of this post). This could be the case when a contributor does paid work for a customer, in addition to using unpaid time to add extra functionality or polish.

For those credits with attribution details, 15% were "purely volunteer" (8,429 credits). This is in stark contrast to the 69% that were "purely sponsored" (37,399 credits). Put simply, roughly two-thirds of all contributions are "purely sponsored".

A graph showing how many contributions are voluntary vs sponsored: two-thirds of the contributions are sponsored.

This is the first time in Drupal's history that "purely volunteer" contributions stayed flat year over year. This might be related to COVID-19; coding sprints are harder to organize, people may have lost income, parents are busy home-schooling their children, people have Zoom-fatigue, and times are generally stressful. In contrast, we did see a very large increase in "purely sponsored" contributions.

Volunteer contribution remains very important to Drupal. Volunteers contribute across all areas of the project. A lot of volunteer time and energy goes towards non-product related contributions such as event organization, mentoring, and more.

A graph showing how many of the contributions are volunteered vs sponsored.

Who is sponsoring the work?

Now that we've established that the majority of contributions are sponsored, let's study which organizations contribute to Drupal. While 1,216 organizations contributed to Drupal, 50% of them received four credits or less. The top 30 organizations (roughly the top 2.5%) account for approximately 30% of the total credits. This means that the top 30 companies play a crucial role in the health of the Drupal project.

Similar to the individual contributors, I've ranked organizations by both "unweighted contributions" and "weighted contributions". Unweighted scores are based solely on volume of contributions, while weighted scores also try to take into account both the effort and impact of each contribution.

A graph showing the top 30 organizational contributors ranked by the volume of their contributions.A graph showing the top 30 organizational contributors ranked by the impact of their contributions.

If you are an end user looking for a company to work with, these are some of the companies I'd work with first. Not only do they know Drupal well, they also help improve your investment in Drupal. If you are a Drupal developer looking for work, these are some of the companies I'd apply to first.

A variety of different types of companies are active in Drupal's ecosystem:

Category Description Traditional Drupal businesses Small-to-medium-sized professional services companies that primarily make money using Drupal. They typically employ fewer than 100 employees. Because they specialize in Drupal, many of these companies contribute frequently and are a huge part of our community. Examples are Third & Grove, Srijan, PreviousNext, MD Systems, etc. Digital marketing agencies Larger full-service agencies that have marketing-led practices using a variety of tools, typically including Drupal, Adobe Experience Manager, Sitecore, WordPress, etc. Many of these larger agencies employ thousands of people. Examples are Wunderman, Possible, and Mirum. System integrators Larger companies that specialize in bringing together different technologies into one solution. Example system integrators are Accenture, TATA Consultancy Services, EPAM Systems, and CI&T. Hosting companies Examples are Acquia, Pantheon, and Platform.sh, but also Rackspace or Bluehost. End users Examples are Pfizer or bio.logis Genetic Information Management GmbH.

A few observations:

  • Most of the sponsors in the top 30 are traditional Drupal businesses with fewer than 50 employees. With the exception of Acquia, Drupal's maintenance and innovation largely depends on these small Drupal businesses.
  • The larger, multi-platform digital marketing agencies are barely contributing to Drupal. Only one digital marketing agency shows up in the top 30: Intracto. Hardly any appear in the entire list of contributing organizations. I'm frustrated that we have not yet found the right way to communicate the value of contribution to these companies. We need to incentivize these firms to contribute with the same commitment that we see from traditional Drupal businesses.
  • The only system integrator in the top 30 is CI&T. CI&T is a smaller system integrator with approximately 2,500 employees. We see various system integrators outside of the top 30, including EPAM Systems, Globant, Capgemini, Publicis Sapient, Accenture, and TATA Consultancy Services. Accenture and Wipro, despite doing quite a bit of Drupal work, did not receive any credits.
  • Various hosting companies make a lot of money with Drupal, yet only Acquia appears in the top 30 with 1,823 credits. The contribution gap between Acquia and other hosting companies remains very large. It was great to see that Pantheon tripled its contributions from 43 to 122 this period. Platform.sh earned 23 credits compared to 22 in the last period. In general, there is a persistent problem with hosting companies not contributing back.
  • We only saw two end users in the top 30 this year: Thunder (815 credits) and Pfizer (201 credits). Many end users contribute though: European Commission (290 credits), bio.logis (219 credits), Google (144), University of Waterloo (111 credits), Johnson & Johnson (93 credits), University of British Columbia (91 credits), University of Texas at Austin (74 credits), NBCUniversal (48 credits), Workday (38 credits), PayPal (17 credits), and many more.
A graph showing that Acquia is by far the number one contributing hosting company.A graph showing that CI&T is by far the number one contributing system integrator.

I often recommend end users to mandate contributions from their partners. Pfizer, for example, only works with agencies that contribute back to Drupal. The State of Georgia started doing the same; they made Open Source contribution a vendor selection criteria. If more end users took this stance, it could have a big impact on Drupal. We'd see many more digital agencies, hosting companies, and system integrators contribute to Drupal.

While we should encourage more organizations to sponsor Drupal contributions, we should also understand and respect that some organizations can give more than others — and that some might not be able to give back at all. Our goal is not to foster an environment that demands what and how others should give back. Instead, we need to help foster an environment worthy of contribution. This is clearly laid out in Drupal's Values and Principles.

How diverse is Drupal?

Supporting diversity and inclusion is essential to the health and success of Drupal. The people who work on Drupal should reflect the diversity of people who use the web.

I looked at both the gender and geographic diversity of Drupal.org contributors.

Gender diversity

Only 10-11% of the recorded contributions were made by contributors who do not identify as men. This is a very small improvement compared to last year. The gender imbalance in Drupal is profound. We need to continue fostering diversity and inclusion in our community.

A graph showing contributions by gender: 72% of the contributions come from people who identify as male.

Two years ago I wrote a post about the privilege of free time in Open Source. It made the case that Open Source is not a meritocracy. Not everyone has equal amounts of free time to contribute. For example, research shows that women still spend more than double the time as men doing unpaid domestic work, such as housework or childcare. This makes it more difficult for women to contribute to Open Source on an unpaid, volunteer basis. Organizations capable of giving back should consider financially sponsoring individuals from underrepresented groups to contribute to Open Source.

A graph that shows that compared to males, female contributors do more sponsored work, and less volunteer work.Compared to men, women do more sponsored work, and less volunteer work. We believe this is because men have the privilege of more free time.

Free time being a privilege is just one of the reasons why Open Source projects suffer from a lack of diversity. Other reasons include hostile environments and unconscious biases. We should consider collecting data on other systemic issues beyond gender. The Drupal Association is currently working to update demographic data collected at DrupalCon, and beyond, with the goal of better understanding our community. Knowing more about these trends could help us close existing gaps.

Geographic diversity

We saw individual contributors from six continents and 117 countries. The top countries:

A graph showing the top 20 contributing countries in 2020.The top 20 countries from which contributions originate. The data is compiled by aggregating the countries of all individual contributors behind each issue. Note that the geographical location of contributors doesn't always correspond with the origin of their sponsorship. Wim Leers, for example, works from Belgium, but his funding comes from Acquia, which has the majority of its customers in North America. Wim's contributions count towards Belgium as that is his country of residence.

Europe contributes more than North America in both absolute and relative terms.

A graph that shows most contributions in 2020 come from Europe and North America.A graph showing which continent contributes the most by looking at the number of inhabitants.Contribution credits per capita calculated as the amount of contributions per continent divided by the population of each continent. 0.001% means that one in 100,000 people contribute to Drupal. In North America, almost 4 in 100,000 people contributed to Drupal the last year.

Asia, South America, and Africa remain big opportunities for Drupal; their combined population accounts for 6.3 billion out of 7.5 billion people in the world.

Limitations of the credit system

It is important to note a few of the current limitations of Drupal.org's credit system:

  • The credit system doesn't capture all code contributions. Parts of Drupal are developed on GitHub rather than Drupal.org. Contributions on GitHub usually aren't credited on Drupal.org. For example, Drush is maintained on GitHub instead of Drupal.org, and companies like Pantheon don't get credit for that work.
  • The credit system is not used by everyone. There are many ways to contribute to Drupal that are still not captured in the credit system. Technically, that work can be captured. But because using the credit system is optional, many contributors don't. For example, not all event organizers and speakers capture their work in the credit system. As a result, contributions often have incomplete or no contribution credits. Where possible, we should automatically capture credits. For example, translation efforts on https://localize.drupal.org are not currently captured in the credit system, but could be automatically.
  • The credit system doesn't accurately value complexity and quality. One person might have worked several weeks for just one credit, while another person might receive a credit for 10 minutes of work. Each year we see a few individuals and organizations trying to game the credit system. In this post, I used a basic weighting system based on project adoption. In future, we should consider refining that by looking at issue priority, patch size, number of reviews, etc. This could help incentivize people to work on larger and more important problems and save smaller issues such as coding standards improvements for new contributor sprints.

Because of these limitations, the actual number of contributions and contributors could be much higher than what we report.

Like Drupal itself, the Drupal.org credit system needs to continue to evolve. Starting this year, the Drupal Association, with the direction of the newly formed Contribution Recognition Committee, will start to evolve and leverage the credit system in new ways.

Conclusions

Our data confirms that Drupal is a vibrant community full of contributors who are constantly evolving and improving the software. It's amazing to see that just in the last year, Drupal welcomed more than 8,000 individual contributors and over 1,200 corporate contributors. It's especially nice to see the growing number of contributions year over year.

To grow and sustain Drupal, we should support those that contribute to Drupal and find ways to get those that are not contributing involved in our community. Improving diversity within Drupal is critical, and we should welcome any suggestions that encourage participation from a broader range of individuals and organizations.

Nov 04 2020
Nov 04

Read our roadmap to understand how this work falls into priorities set by the Drupal Association with direction and collaboration from the Board and community. You can also review the Drupal project roadmap.

We're trying something new for our September update - a video! Let us know if you like this format in the comments.

Embedded below is a video we sent out to our Supporting Partners about the engineering initiatives that their support funded in September.

Here's what you'll learn about:

  • The issue fork and merge request beta - which makes Drupal contribution faster and easier, especially for new contributors.
  • The lazy-load initiative - which will make all Drupal sites on 9.1 and beyond faster.
  • Composer 2 support - Drupal now fully supports being built with Composer 2, which is much faster and less memory-hungry than Composer 1.
  • The Auto-Updates contribution week, which the DA held with community contributors from inside and outside of Drupal.
  • New efforts to match make organizations who want to contribute with initiatives that need help.

———

As always, we’d like to say thanks to all the volunteers who work with us, and to the Drupal Association Supporters, who make it possible for us to work on these projects. In particular, we want to thank:

If you would like to support our work as an individual or an organization, consider becoming a member of the Drupal Association.

Follow us on Twitter for regular updates: @drupal_org, @drupal_infra

Nov 03 2020
Nov 03

As a developer, you will come across several situations when you need to import data from external sources. Sometimes you will need to import data from more than one source into your Drupal 9 website. The Feeds module in Drupal is a simple, no-fuss module that enables even non-technical users to import content from different data sources. What makes it simpler than other Drupal modules like the Migrate module, is that the entire import process is done through Drupal’s UI. It delivers content to you the way you want it as soon as it is available.

Many websites import RSS / XML feeds from third party sites. In this blog, we are going to get a news feed imported through this 3rd party API that provides data in json format with the help of the Feeds module in Drupal 9

drupal-9-feeds-module

Installing the Drupal Feeds Module

The Feeds module for Drupal 9 lets you import data from different formats like CSV, XML, JSON, RSS, etc. into nodes, users, and taxonomy terms via the UI.
 
1.  Install the Drupal Feeds module (Here we will be using composer)

       
composer require 'drupal/feeds:^[email protected]'

2.  Here, we are using JSON feeds for importing data. So, we require a JSON parser which will need us to install one more module which is the Feeds extensible parser. The best way to install this module is by using composer because it downloads all required libraries. (You can also skip the first step if you're downloading using composer as the Drupal feeds module will be a dependency for the feed_ex module).

       
composer require 'drupal/feeds_ex:^[email protected]'

Note: If you're not using composer to install then the libraries required by this module can also be installed with the Ludwig module. Install the Ludwig module and then go to /admin/reports/packages for further instructions.

3.  Enable the feeds and feeds_ex (Feeds Extensible Parsers) module either by using drush or through UI.

Feeds Module

Configuring and Implementing the Feeds Module

Here, we are going to import the data from https://newsapi.org/ website articles (Topics related to “Top headlines from TechCrunch right now”) which is exposed in JSON format shown in the below screenshot. 

To get this news data we need to login to the website and get an API key. Next, select the topics for which you wish to import the data to your website.

feed module configuration

Looking at the API, let's create a content type where our data needs to be imported.

Creating a Content Type 

Here, I have created a new content type called “News”. Choose the field type according to your JSON for which data needs to be migrated. 

content type-feed module

In the above screenshot, we have chosen simple fields for importing the data like Author which is Text(plain) field for the importing data from JSON key author. 

JSON Key Author

As you see in the above screenshot, we have added the Feeds item field of type Feed and chosen the feed type accordingly. We will be learning how to create a Feed type in the next section below.

Creating a Feed Type 

Follow the below steps to create a feed type.

  1. Navigate to Feeds overview page (/admin/structure/feeds). You can see all the Drupal feeds listed on this page.feed type - feed moduleI have already created 2 feeds. Here I am going to be using News feeds. You can create your own feed type by clicking on Add feed type. 
  2.  When editing the feed type or adding a new feed type, we will see the below options.
feed modules
  • The Fetcher settings option shows where you’re importing the content or fetching the content from.
     It provides 3 options to choose from,
  1. Directory :- Import the content from a file or a series of files already on your website.
  2. Download from URL :- Import the content from url (Which we will be choosing in our case).
  3. Upload file :- Import content from a file.

Based on the Fetcher selected, we will have to configure the Fetcher settings. For the secondary option of fetcher settings, we have the below list of settings.

  • Auto-detects feeds
  • Use PubSubHubbub 
  • Always download
  • Request time out

Configure secondary settings accordingly.

Configure - feed modules

•    Parser lets you configure the format of the feed. Here we have many options to choose from like CSV, HTML, OPML, JsonPath (which is our setting), etc. Choose the one from the dropdown menu according to your feed format.
 
Based on the parser selected, we will have to configure the parser settings. In our case, we don’t have any parser settings for parsers of type JsonPath.
 
•    Processor settings show configurations of the type of content the feed will create.

Similarly, we have a secondary settings option for the processor as shown in the image below.

feed modules

Configure your secondary settings according to the requirement.
The below screenshot shows the primary settings of fetcher, parser, and processor.

feed modules


3. Mapping sources to target

The help text says base query to run, which shows the root or base of the data to be targeted for the Drupal feeds import as content. In our example, we have configured it as “$.articles.*” because our data resides inside the article key. Look at this path documentation to configure yours.

  • Field Mappings

Now, we can configure the Feeds module to decide which value pulled in from the JSON should map to which field on the Drupal news content type.
 
These targets are the Drupal data fields and are pulled in based on the processor you select when creating the feed type. You can also configure other settings for the particular mappings of the fields like Language, filter format (applicable for text formatted fields), unique (unique identifier used to track if the content is new or existing one), etc.
 
For example, if we want to import the JSON feed news article content title as Drupal news content title field then the target will be the Drupal Title field and the source will be JSON news article title key as shown in the below screenshot.

JSON Feeds

Here we are using the mapping configuration as shown in the below screenshot.

feed modules

You can also clone the feed type using the Entity clone Drupal module that is also supported in Drupal 9.

Creating a Feed

To create a feed, navigate to content -> Feeds tab -> add feed -> select the feed type

feed modules

I have already created one for News. To create a new feed, click on the + Add feed button and configure the feed as required. For our blog, we have configured as shown in the below screenshot.

feed modules

After the configuration, click on Save and Import. This will import the Drupal feeds as content. When the data is getting imported, you will see the processing status as shown in the below screenshot.

feed modules

Once the JSON data gets migrated to content, we can see the content added to the news content type as shown in the screenshot below.

feed modules

Now, let’s compare the imported content with feeds.

feed modules    Source Content from the techcrunch articlefeed modules      Drupal feeds import - Feeds module

For more detailed information you can refer to this guide.

Additional modules to extend the Feeds module 

•    Feeds Tamper module helps you modify and update the source data before it gets imported to your website.
•    Feeds extensible parsers contains a set of parsers like XPath XML & HTML, JSONPath JSON & JSON lines parser, etc.
•    Feeds Import Preview module lets you see the content in your source before importing it.
•    Commerce Feeds module helps you in importing products to your Drupal Commerce site.

Nov 01 2020
Nov 01

There are many CMS options out there in the market making choosing one over another a difficult and lengthy process. But, building your website using the wrong CMS can prove to be a very expensive mistake.

So, which content management system should you choose for your business? The answer depends entirely on 2 important aspects:

1. The current status of your digital experience maturity and marketing: Do you heavily depend on content marketing? Are you using account-based marketing based on data collection? Do you have persona-defined user journeys mapped out?

and

2. Your plans for the future: Do you have plans to scale and grow your digital experience? Will there be more technologies and tools integrated with your website? If you have a clear idea of where you are going... you will be able to easily identify and align your technical requirements with the objectives of your digital strategy.

CMS Buyers Guide

Need help choosing the ideal CMS?

Download our free CMS Buyers Guide!

Regardless of how complex your CMS should be, we have curated the must-have features that users (internal and customers) expect to see in a digital experience.

Here Are 10 CMS Features That You Will Need:

1. Easier Content Creation

By definition, a content management system is a tool that is supposed to enable you to create, edit, and publish content on your website.

That content can range from a marketing asset such as downloadable resources (i.e. ebook, tools, reports, and etc.), a blog article, or an entirely new landing page.

Whether your content creation team is restricted to one person or comprised of tens of team members, your CMS of choice should have a user-friendly backend and tools to enable your non-technical content creators to publish content easier and faster.

Tip: A CMS with built-in SEO tools and features will enable your content creators to publish search engine optimized content faster.

2. Seamless Content Creation Workflows

Typically, enterprise-level organizations have a large team from across various departments involved in content creation and publishing.

An enterprise-grade CMS like Varbase features a content publishing and management workflow that supports the requirements of enterprise-level content marketing strategies. The CMS will enable your team to track and monitor the content creation process,  from authoring, editing, and approval to publication, promotion, and reporting, in a seamless manner.

Moderating the content creation process will be a critical asset for larger enterprises that rely upon content-heavy marketing communications.

Out of the box, Varbase Workflow offers two workflows for content moderation:

  1. Simple workflow: Draft, Published, and Archived / Unpublished Useful for any website, and offers the ability make a draft of a live version of the content without unpublishing the whole content.

  2. Editorial workflow: Draft, In review, Published, and Archived / Unpublished Useful for website with editorial or moderation staff. You can create as many additional states as you like and define transitions between them to suit your organization's needs.

If you often make urgent updates to your content, look for a CMS with strong organizational functionality, like link management, so that your content is automatically accessible even as it moves around or changes on your site.

3. User Permissions and Role-Based Administration

Having control over who can access content and features will help you prevent mistakes. This is especially helpful if you have multiple teams using the CMS - which is typically the case for large enterprises or websites that rely heavily on content marketing.

If that is your case, you should choose a CMS the provides you with the flexibility to create a smooth process based on customizable user management.

For example, Varbase (Drupal 9 CMS) comes with preconfigured default roles tailored for sites with hierarchical content management permissions.

The default roles that come preinstalled with Varbase are:

  • Editor User: Can edit all content on the website but can't publish any content.
  • Content Admin: Can edit all content and publish it but can't edit anything not related to the content roles.
  • SEO Admin: Can edit items that are related to SEO, Meta tags, and Google Analytics.
  • Site Admin: Can edit, delete, publish all content in the site.
  • Super Admin: Can edit everything in content and configurations for the site.

Designed to support enterprise-level teams and enabling scalability, Varbase CMS allows you to create new users, define their roles, and edit their permissions.

Tip: To learn more about user permissions in Varbase, click here.

4. Superior Security

Cyber attacks and high-profile data breaches are all too common these days and now will continue to being an evolving threat in an increasingly digital world.

Maximizing security will shield your business reputation by helping you to avoid the devastating consequences of any exploitation that your website users may suffer due to a security breach.

If you lack the expertise or resources required to build an enterprise-level digital experience, we strongly recommend choosing a CMS that bundles all the latest and best security modules.

When evaluating your CMS options, here are a few security-related questions that you should ask:

  • Does it come with a content delivery network (CDN) to help prevent DDoS attacks?
  • Is SSL included or do you have to purchase an SSL certificate separately?
  • Does it have a Web Application Firewall to prevent hackers from accessing your site?
  • Does it have a security team? If it does, is this team made up of community members or employees?
  • How often are static code analysis and vulnerability scans run?
  • How difficult is it to update the software when a security patch has been released?

TL;DR - Maximizing the security on your site doesn’t just protect your data – it protects your customers and your brand reputation. Choose a CMS that provides live and ongoing support.

5. Multilingual Capabilities

Staying on the topic of personalization - speak your audience's language.

If you currently serve an international audience or expect to in the near future, make sure you choose a CMS that supports multilingual editing tools and intuitive translation workflows, as your marketing team will be needing to publish content and reach out with marketing messages personalized to each audience segment's language.

Hence, the need to build a multilingual website.

Using the ideal technology to build your digital experiences can enable your marketing team to create multilingual websites from the same Drupal CMS. Each language can be quickly translated and optimized for SEO at the same time.

Note: Laws surrounding digital information and privacy vary from country to country, so you’ll want to look for a CMS with information governance controls that comply with local regulations where your customers live.

Learn Why Varbase CMS Is the Best Multilingual Enterprise-Grade Drupal Website Builder

 

6. Flexible Page Layout Building

Personalizing user experiences based on meaningful user journey mapping is often the key differentiator between a corporate website and an impactful digital experience.

This means that you need a CMS with features that allow for easier and quick creation of personalized landing pages. Drupal 9's Layout Builder is such a feature.

Keep in mind though, enterprises often communicate with their diverse and global audiences in a localized manner; which means that your landing pages must also consider language differences -  Layout Builder in Varbase allows content editors and site builders to easily and quickly create visual layouts to display content in all languages (LTR and RTL).

Users can customize how content is arranged on a single page, or across types of content, or even create custom landing pages with an easy to use drag-and-drop interface.

7. Ongoing Support and Seamless Integrations

The CMS you invest in should provide your team with the flexibility required to integrate with any tool or technology that will be critical to your business and marketing needs.

Make sure your CMS is scalable enough to grow with your business. Some CMSs offer more flexibility than others, supporting an extensible range of APIs and integrations.

This flexibility is a result of constant updates and continuous delivery provided by the support team behind the CMS you choose.

Is the CMS you are considering enjoying constant and uninterrupted support? Does it have a reliable dedicated community of developers and software engineers upgrading it with the best and the latest modules you will need?

If that is not the case, that particular CMS is no longer a viable option because it doesn't align with your business priorities. The last thing you need is to rebuild your entire website or IT infrastructure because a disruptive technology or solution that can impact your business cannot be integrated with your CMS. 

Your CMS is a long-term investment, so don't make the mistake of thinking that the need for ongoing support and maintenance is an optional luxury.

 

8. Built-in SEO Tools

It can be difficult to keep up with Google's constant algorithm changes and updates that can directly impact your ranking on search engine result pages.

That is why we strongly recommend that you choose a CMS with built-in SEO tools that will give your content the best chance possible to rank higher.

Drupal-powered websites have consistently demonstrated superior on-site SEO performance due to the fact that Drupal is a technology that prioritizes user experience first and foremost.

For example, Drupal 9 CMS Varbase features SEO tools such as real-time SEO analysis, content search engine optimization, automatic generation of search engine and user friendly URLs.

Content creators will never forget to add page titles, alt tags, avoid duplicate content, and will have seamless integration with popular SEO related tools such as Bing Webmaster Tools, Google Search Console, Google Tag Manager, and Google Analytics.

Download SEO Guide

On-Site SEO Guide 2020

Identify all the best practices you need to implement in order to ensure that your website is optimized for search engines!

 

9. Advanced Analytics

Tracking your website traffic using tools such as Google Analytics has become standard practice for any business with an in-house digital marketing team. However, many businesses still don't act upon insights into their user's behaviors.

The key to successfully engaging your customers and website visitors is your ability to create content that is relevant and meaningful enough to make your brand and website relatable.

Your CMS should offer built-in analytics or integrate with popular analytics tools, such as Google Analytics. You want the ability to track these performance indicators directly from your dashboard.

Tip: Google Analytics dashboards are integrated into Varbase CMS - which means that your site admins and marketing team can access and view your Google Analytics data from within the CMS itself.

Convenient access to such real-time user behavior enables your organization to engage in account-based marketing where your content creators can create messages and campaigns based on the actions and behavior of your website visitors.

10. Multisite Scalability

Major enterprises have numerous domains or microsites dedicated to a particular audience or product.

Drupal allows you to support and manage multiple websites at the most basic form - which is websites that look similar with simple variations in the content - to websites that are so different from each other that you wouldn’t know they are based on and the same CMS, just by looking at them.

With Drupal, you no longer need to spend extra to scale and grow your digital presence as the need arises. All those sites can be an interconnected web with seamless integrations from the same centralized CMS - sharing all best practices, security and UX features.

This is but the tip of the iceberg when it comes to building an engaging and open digital experience for an enterprise-grade business in today's digital world.

Identify the Right Multisite Solution Architecture for Your Enterprise

 

Pages

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web