Ny Media: Strex is now integrated in Drupal!

Planet Drupal - Wed, 2022/06/01 - 11:21pm
Strex is now integrated in Drupal! thomas June 1, 2022

You can now use Strex to send SMS messages from Drupal. Ny Media and Strex have cooperated on a integration module that makes sure Strex can now be installed and used together with Drupal's SMS functionality.

Who is Strex and why do I need their SMS functionality in Drupal?

Strex is one of Norway's largest players in mobile payment and SMS communication, and is owned by the mobile operators Telenor, Telia and Ice. More than 4.6 million Norwegians have already used one or more of Strex's services. Strex has two main products:

  • Strex Connect which is a complete SMS platform for incoming and outgoing SMS
  • Payment solutions that are integrated into a large number of services in Norway.

The first version of the module concentrates on the SMS functionality. The module makes it possible to implement SMS sending in Drupal via the Strex Connect platform.

Examples of areas where the Drupal module have already been used:

  • Two-step verification with SMS code at login.
  • Mass communication in member solutions for sports management systems.
  • Mass communication with personalized content via our marketing and personalization solution for shopping malls.
  • Distribution of tracking and order status in our e-commerce solutions.

Questions about Drupal and the Strex module?


The main reasons why we want to use Strex for SMS handling is:

  • Powerful and easy to use management service on strexconnect.no.
  • Flexibility in relation to using several customer accounts and tagging of messages that make invoicing, re-invoicing and statistics easy to handle.
  • Good availability of support and the product team at Strex.
  • Competitive pricing.


Some facts about the integration

The module is an extension of Drupal's SMS Framework. The framework is designed to be able to be expanded with third-party providers of SMS services such as Strex. The framework itself takes care of, among other things:

  • Sending SMS via integrated gateways (Strex SMS gateway is now an option here). SMS Framework supports having multiple gateways in the same installation.
  • Collect, verify and store mobile number information on Drupal users.
  • Mass sending of SMS to Drupal users based on batch operations.
  • Send content or portions of content to mobile phones.

Technical information on how the SMS Framework and Strex integration specifically works and is set up can be found here.

How do I get started using Strex in Drupal?

If you are a customer of Ny Media already, just get in touch with your contact person, and we will help you get started.

If you have your own Drupal installation or are a company that offers Drupal services, then it is still very easy. All you need to do is:

  1. Create an agreement with Strex by filling out the following form.
  2. Download and install the module according to the instructions on drupal.org.
  3. Configure the module and start sending SMS from Drupal's SMS Framework functionality. More info can be found here.
  4. After you have used the module, you have a full overview of statistics etc. at strexconnect.no.



Lullabot: Component Libraries in Drupal

Planet Drupal - Wed, 2022/06/01 - 4:26pm

Component libraries have become one of the first things organizations require for new engagements. There are many reasons for organizations to want a component library, but the reality is that Drupal, and PHP in general, have not been in a good place to deliver great solutions in this area. This is why we have created the Component Libraries suite of modules.


Finalist Blog: Dummy content with Migrate

Planet Drupal - Wed, 2022/06/01 - 1:42pm
Credit: photo by enjoiskate8 Dummy content is very useful for testing and other purposes. In this blog post I'll present some of the many tools that Drupal has to create dummy content. I'll explain why I think Migrate is the tool that is most suitable for this task. I have presented about this topic at the at the Drupal Dev Days 2022. and at Drupaljam 2022. What is Dummy content? Dummy content is everything you would like to have available when you start a new website: so that could be pages, users, taxonomy terms. So it is not just nodes, it could also be menu's, paragraphs…

mark.ie: Creating a Colour-picker field for Drupal

Planet Drupal - Wed, 2022/06/01 - 11:00am

Demo/tutorial on how to create a color-picker field for a Drupal website.


OpenSense Labs: How to implement component based design systems

Planet Drupal - Wed, 2022/06/01 - 6:59am
How to implement component based design systems Gurpreet Kaur Wed, 06/01/2022 - 10:29

When you think about building a robust website or application, you think of two important sets of people who make it possible, that is designers and developers. Both of them are responsible for creating user-friendly experiences, but they do it differently. 

The job description of designers and that of developers are not the same, not by any means. In simple terms, one of them designs and the other one executes it through code.

They are not synonymous with each other. 

Can their work become synonymous?
Can it be interchangeable? 
Can one perform the job of the other?

Yes, that is possible. And the answer is through component-based design systems, where designers don’t have to be dependent on developers to create new landing pages as they already have components to work with.

How does the component based design approach work?

Design systems are the new way of creating web designs and products through a shared medium between designers and developers. Using ready-made components that act as building blocks for the entire site, websites and applications can be envisioned to be more modular with reusable elements. 

Component-based design systems have brought with them a transition in the creation of digital products that are composed, arranged and assembled in any way you want or as many ways you want them to be.

These components will also include what your page wants to portray. It could be a text block, a contact form, a CTA button, an entire banner of photographs. Content or graphics, the choice is yours.

Now coming to the initial question I asked and answering it.

As the components are already programmed segments of a page, it becomes extremely easy for the designers to get an understanding of delivering a smooth user experience all by themselves. They get the things that’ll work and build the final product with clear rationale that the design requires.

Component based design systems have the ability to create consistent designs that align with the brand. They not just empower designers, but also pave the way for more scalable products. More on component based design systems here.

The Beneficial Saga of Component based Design

Like I said, component based design is bringing more to the world of digital designs. Let’s get a better understanding of what more entails.

Brings Consistency

Redundancy in designs;
Hard to track changes; 
Outdated styles;
Forgotten functionalities; 

All of these are problems faced by designers, developers and content editors when they are to maintain consistency in the brand voice across the website. 

What if brand identity and style guides are ingrained into each component of each page? Wouldn’t it drastically improve consistency everywhere? In each style, each function, each design and the entire brand?

It certainly would. 

Component based design systems do just that. They make room for intentional and pre-designed structures and processes that ensure the correct components are used. They act as references for styles and functions that go across the site. Thus, bringing consistency, irrespective of how many designers or developers are involved in the build.

Simplifies Management 

A component based website will be solely composed of components, meaning each segment on that site is a component and the possibility of it having been reused is high. 

So, when you maintain your website, you are essentially maintaining those individual components. 

You can manage changes by making miniscule edits or drastic upgrades to the designs. And you can do all of that using a single source file of the same components. The fact that each component has multiple use cases on multiple pages, a single change, irrespective of how big or small it is, would be made to the entire application. 

Enables Efficiency and Scalability

When building a design system, you have to know that you would be working with existing components in the future. Every component, when built, has a long shelf life because it along with its variations are going to be reused.

This fact about component based designs makes them efficient. Why?

Because developers would not need to reimplement a change in the future. The design system is always going to be broader than its current implementation. Its evaluation and build is what makes it concise to the application. 

Considering this, component based design systems also promote scalability. 

You can very easily extend existing components or simply assemble new segments. Working with a system that is extremely well defined makes scaling convenient as you can build on top of it. 

Another way to understand this is that you will have a component library that would keep growing with your site. These clearly comprehensible, reusable and flexible components will make your platform’s expansion convenient.

Elevates Modularity 

Each component in a design system is always going to be built from scratch. 

This eases the development process because every component can have variations built-in. They are not going to simply be adorned on a single page and become obsolete for anywhere else.

Components, by their nature, are more adaptable and less rigid, if at all. They can be used for any content area, be it a specific campaign or permanent display. With these, you can test iterations of your layout on the fly, all the while maintaining consistency of the brand voice.

Promotes Cross-functional Collaboration 

Component based design systems have become the epitome of collaboration. Based on what I have written so far, it’s pretty obvious.

Your organisation wouldn’t have operational silos, if you have design systems in place. Content, design and development can work together and that too cohesively. The approach of design systems towards design and execution makes it possible as it becomes unified. 

Breaking Apart the Design System 

The next phase of design systems is to understand what is encompassed by them. Of course, there are going to be the design principles. That's a given because consistency does need a set of rules. 

These principles are exactly, rules and values that help design teams take their designs forward. They could be something as simple as;

Making the user experience easy; 
Focusing on telling stories; 
Building a multi-device layout.

There are no standard sets of design principles that go with these systems. It’s your brand that would decipher them based on its needs.

Now, let’s come down to the more specific part.

Style Guide 

Tone of voice;
And specific front-end styles;

All of these sum up a style guide. They also differentiate a brand, give it an identity and set it apart from its counterparts. 

Style guides achieve the same through setting guidelines for branding, content and interactive elements on the site. The design deliverables become consistent because of style guides and the specific implementation methodology they set.

They can also come as part of a component library so that each element therein has relevant guidance and context to take forth.

Component Library 

You can call it a component library or you can call it a design library, whatever you do it’ll always be a designer and developer’s shop.

Component libraries enable the development and design team to comprehend and implement UI elements easily. They are thorough because every component that has been developed for the system would be in them with predetermined and reusable functionality. 

It’s obvious that a component library would include the visual illustrations of every single component. What is not obvious is that it is much more organised and comprehensive than that. 

  • Component name with uniqueness for each component; 
  • Description with a concise explanation of the components and their usage; 
  • Attributes for future customisations with the range of variable and adjustments that can be made;
  • Component state to recommend default changes;
  • Code excerpts of each component;
  • And finally, the frontend and backend frameworks for library implementation. 

A component library is quite diverse and versatile to that that it can also help developers avoid painful and redundant debugging.

Pattern Library 

Content structures; 
Design templates; 

These are the gist of a pattern library, which is different from a component library as we discussed in the previous sub-heading. So, the common misconception that both of them are the same needs to be forgotten.

Instead of individual UI components of a component library, a pattern library boasts collections of element groups and layouts. Apart from that they are similar, in the sense that both of them are robust and can be adapted and reused for their components and patterns. More on the implementation of pattern libraries here.

Assembly of a Design System 

Based on the previous section, you must have gotten a basic understanding of how a component based design system is assembled. 

You would need to build;

A style guide; 
A component library;
And a pattern library for your system.

So, when we talk about the assembly, we’ll not be discussing these, but the bigger picture that transcends the individual builds.

Here it is.

Assess the current visual state 

As in any development process, you ought to begin with an assessment of the current state of affairs. In this case, it is the visual design and you need to audit it thoroughly. 

What you need to do is;

  • Analyse your product to have a review on all its front-end design components;
  • Create a catalogue of the components that you would be keeping;
  • Identify the inconsistencies in design and remember to overcome them later;
  • And be mindful of the CSS used along with the visual qualities of the components.

Once you have done that, you are ready for the next step.

Evaluate the build time 

Knowing what you are going to build doesn’t necessarily mean that you start building it. There are a lot of other parameters that you have to think ahead of the build. 

So, ask yourself;

What are the places a component is going to be used?
Will there be a difference between the same component used in two different places?
What are the kinds of functionalities a component will have?
Would two more components be interlinked or dependent for functionality?

Once you have an answer to these questions, you will have a better understanding of the build time per-component. This also helps in avoiding rewrites and wastage of time and resources because you are simply not focusing on the visuals. 

What’s more is you would have an overview of the kind of complexity and features all the components will offer, both combined and individually. Understand that design systems are not a repository, they are much more than that. So use them in a way that you get the best from them.

Define priority elements 

What are the components that are the most important?
What are the components that are needed first?
What are the components that will give a foundation for other components?

These questions help you define priorities of each component build and let you apply them throughout the development process.

There are a couple of ways you can go about building your design systems.

  • The first one is to develop the fundamental components first. By fundamental, I mean the most basic components. These could be buttons, colours, icons or even headings. Once that is out of the way, you can start working on more complex components.
  • The alternative approach could be building global elements first. These could be navigation and page layouts. This is advised because once a page layout is set, you have done the groundwork and the only thing left is to build up then.

After deciding on the first elements to build, the rest can be worked out using the Eisenhower Box principle. This tells us to prioritise on the basis of importance and the kind of urgency a component has. Evaluating it would somewhat depend on the features the said component is bringing to the table.

Adhere to documentation 

The development process of a design system involves a lot of steps and a lot of people to accomplish those steps. Thinking merely designers can build an entire design system is completely irrational.

Content Editors 

Each person has a significant role to play. Considering developers, there are frontend and backend developers, who have entirely separate responsibilities. 

So, when you are planning the development of a design system, you need to think about the relationship between all the players involved in the build and how to make it effective, think about how the handoffs would happen and think about how you would divide responsibilities. 

The answer to all of these would be clear and concise documentation. Documenting and standardising have helped design systems remain as efficient as they boast to be. 

Special Mention for Brad Frost’s Atomic Design 

When component based design is mentioned, our mind definitely wanders off to Atomic Design, a concept of design system proposed by Brad Frost.

Brad conceptualised his methodology based on the principles of chemistry. It may sound strange, but it is very effective.

Let’s figure it out. 

As we know that everything that is matter is composed of atoms, which bond together to form molecules that combine to become organisms. And organisms are what make the universe. 

Taking the same concept to web design, the complete UI is broken down into fundamental pieces and they are then built back up. 

Creating design systems with atomic design has five levels.

Source: Brad Frost 
  • Atoms that encompass HTML tags, like form labels and buttons;
  • Molecules that are bonded atoms, like a form label and button together;
  • Organisms that are grouped molecules to form a complex and distinct section on a layout like a product grid;
  • Templates that are formed by organisms and make a page layout possible. 
  • Pages that are the culmination of the previous for and test the effectiveness of the work done thus far.

Atomic designs are clear in their methodology and enable teams to see their envisioned goal in better detail. They boast consistency and scalability and are the paradigm of component based design systems today. Read this guide on atomic design methodology to know more.

Easing Component-based Designs 

You know almost everything about design systems now, what you need to know now is what design systems you can leverage to ease the build of component based designs on your own. 

Yes, there is always the option of creating your own design systems, and many brands, Atlassian being one name, have conceptualised their own systems. However, for smaller brands and organisations, who do not have the resources to go on their own, there are plenty of options in the market. 

Here are the top five picks for you.


Storybook, an open source tool meant to design and develop UI components, personifies ease in the creation of a component based design. 

  • You can preview components as you build them;
  • You can inspect individual components once you have built them;
  • You can look and analyse the different states the built components would function in;
  • And you can also import components into Storybook.

With support from a dozen JavaScript libraries and plain HTML, Storybook is easy to use and amplifies the build process.

Source: Storybook
Pattern Lab 

Build, view, test and demonstrate your UI components rapidly with Pattern Lab. It allows you to prototype at massive speed with interactivity, instead of simply providing flat designs. 

With cross-browser and multi-device testing, Pattern Lab helps to efficiently implement modification with minimal to no involvement in the code base. 

A node-powered static site generator, it can deliver everything you would need for setting up your component based UI;

  • Nested patterns 
  • Designs empowered with dynamic data 
  • Atomic design language 
  • Starter Kits (refer image below) and more 

Pattern Lab is faster, achieves a greater degree of consistency and gives you the real value for your money.

Source: Pattern Lab
Material Design 

Or the web; 

Material Design by Google is the design system that always creates high-quality digital experiences everywhere.

It tries to keep things simple, clear and concise for everyone to follow. With three main parts at its core, Principles, Components and Theming, it helps design teams get a better grip on understanding building and customising designs. 

Source: Material Design
Atlassian Design System 

Referred to as the end-to-end design language, the Atlassian Design System helps in creating simple, intuitive and functional digital experiences

Its USP is being a holistic design system that provides the design team everything they need, from components to pattern libraries and comprehensive insights on the brand itself, its stylistic foundations and even content. 

Source: Atlassian Design 

Another open-source design tool, Bit drives component based development that are founded on composable software to create consistent and reusable platforms. 

  • It promotes autonomy and standards with distributed code and teams;
  • It facilitates cross team collaboration to scale;
  • It also enables a composable that scales with the platforms and never repeats itself.

In simple terms, Bit makes component based development easy, distributed, consistent, reusable and efficiently manageable. 

Source: Bit.dev
OpenSense Labs Connection with Component-based Designs 

OpenSense Labs has a long history with component based designs. We love working with components and they have served us well so far, enabling us to create some of our best work.

Here is a component based design tale for you.

Edredo: Our very own edtech platform

Last year, Edredo was rebranded from Techtud. The rebranding meant an overhaul of the design on the entire site and application. It would have been a massive undertaking had it not been for component based design. 

Edredo, previously Techtud, was partly built on the concept of component based design. This helped our design team, led by Sahil Sharma, to drive changes and make them more consistent. 

Making changes to global elements was a walk in the park. A modification in universal headers just meant changing the parent component and designs became consistent as a result. 

We could simply design a header and present that component’s design for approval before coding. Once the component’s design is approved, it was coded and design work on the next component began. 

This process was repeated until all the pieces were finished and “pages” could be assembled. It was especially useful when a different designer took over designing, followed by a different developer doing the coding of the component, as they can work in tandem for high efficiency. 

“As a designer, I personally feel that component based designing has improved consistency in design tremendously. Smallest changes like colour or font can be updated on the entire product across devices within seconds. It has made design more flexible for all future updates.” - Sahil Sharma, UI/UX Designer, OpenSense Labs 
The Final Word   “Component based development increases code reusability, reduces time duration and budget for the project and it is much easier to implement globally.” - Pritish Kumar, Technical Lead, OpenSense Labs 

Reusability of design matters today, component based design systems make that possible. Breaking down components into smaller chunks, building from there is far more efficient than traditional design methodology. So, component based designs are for the win, for developers, for designers and for content editors too.

Articles Off

The Drop Times: Why is Drupal 7 Still Popular?

Planet Drupal - Wed, 2022/06/01 - 1:58am
Drupal 8 has already reached end-of-life and Drupal 10 will soon release, yet the number of Drupal 7 websites seem to be pretty high. Lets find out why.

Specbee: Build marketing landing pages quickly and easily with Drupal 9

Planet Drupal - Tue, 2022/05/31 - 2:45pm
Build marketing landing pages quickly and easily with Drupal 9 Shefali Shetty 31 May, 2022

If you’re a marketing professional reading this article, you know creating and running marketing campaigns is not as easy as it may seem. Developing a successful marketing campaign requires strategic planning, target audience & behavior analysis, determining the right channel, message design and competitive positioning.

In my experience so far as a marketing professional, I’ve learned that focusing more on the target customer and their needs helps us build and execute more effective, result-oriented marketing campaigns. Moreover, I have learned that today, customers' needs, pain points, decisions, and attention spans change extremely rapidly. And that's without mentioning other factors such as competition, technology updates, and innovation. As quickly shifting environments force marketers to roll out new and creative marketing campaigns, they need to do so on a more frequent basis than ever.

My most fun (and easiest) part of developing a marketing campaign is building ad landing pages. I’m sure as you read on, you’ll know why. You most likely already know that marketing ad campaigns (paid or free) need to be directed to their own, specific landing pages for better results. We are a Drupal development company and we use Drupal as our website’s CMS (very obviously). Currently we are running on Drupal 9 (and here are some reasons why you should be on Drupal 9 too) and creating new pages as and when we need is really easy. Take a look at how I create a new ad campaign page for a test campaign on “Drupal 9 Migration”.

But first, a little something about Content Types

Without getting too technical, let me go ahead and say that content types in Drupal are basically types of content :) Now if that confused you, here’s an example. If your website has various kinds of information like News, Articles, Video Gallery, Photo Gallery, etc., each of them can be classified as a content type. Each content type has its own sets of fields. For example, for Articles content type you will have fields like Title, Image, Body, URL alias, Meta description and so on. 

When you install Drupal 9, you get two content types by default - basic page and article. The basic page content type is usually used to create static pages where you would not update content very often. An article content type can be used for frequently updated pages like blogs, news, events, etc. You can further extend the flexibility of these default content types by installing other contributed modules but let’s not get too technical now. For deeper customization, find a Drupal partner who can customize and build content types that suits your business requirements. In this example today, I will explain how I create an Ad landing page content type for my marketing campaign.

A Few Must-Haves in your Landing Page

The basic goal of a landing page is to convert. It is not very likely that you see immediate conversions even if you have a great landing page design. But it is important to build your landing page in a way that users return to your page and convert sooner or later. Here are some key elements your landing page must have:

  • Clear and concise copy
  • An interactive element (an image or a video or 
  • A simple and short lead form
  • An attractive CTA (it could be your form too)
  • A trust element (certificates / verified / accreditations)
  • Make them an offer they cannot refuse :)
  • SEO optimization

And here are some things you should NOT have:

  • Too many navigation elements or outbound links that distracts the user
  • Unnecessary information and clutter
Let’s Design the Campaign

Now our website has been built by our Drupal developers using a component-based design approach. Each content type can use and reuse the various components when required. The ad campaign page that I’m going to create is a content type that has been customized to meet our marketing goals. We have used the Paragraphs module as the framework to build various paragraph types (or components). By default, Paragraphs do not have any paragraph types but the developer has complete flexibility to create custom paragraph types with a combination of fields.

So here’s how I create a new Ad Campaign page.

Step 1: Create a new Ad Page

Admin-> Content -> Add content -> Ad Page

  Step 2: Add content to the paragraph types

As you can see in the screenshot below, Title, Main Title, Description are the paragraph types.


Title - Not only do they provide your users with context on your page but the Title tag is a great place to start optimizing for SEO. The text that I enter here is going to be the Title tag text of my new campaign page. Drupal is great when it comes to SEO optimization. Now this text will also show up on the search results page as the title. So make sure your Title tag contains relevant keywords (starting with primary and then secondary) followed by your branding. 
Here, the title I’m using is: Drupal 9 Migration and Upgrade Services by Experts | Specbee

Main Title - Here’s where I add the main header (H1) of my page. I usually want this title to have keywords without making it too keyword-y (IYKYK) but this also needs to be attractive. Show your users what they can get with your product or service. Throwing in a question helps touch some pain points. Here, I have used keywords like “Easy”, “Fast”, “Seamless”, that resonate with the customer when they are looking for a Drupal migration service expert. 
I’m using this as the main title for my campaign : Looking for Easy, Fast and Seamless Drupal 9 migration services?

Step 3: Write a Description

The Description part is another paragraph type of CKEditor (we’re using version 4 here). I love using the CKEditor because it gives the editor so much control on styling elements and adding images of my choice. 

In this description, I want our prospective customers to know the process of our Drupal migration services. So along with adding an image of the steps, I will also add some text relevant to the message I want to convey.

Once I’m done typing out my text and styling it to an H2, I hit the Insert image icon, browse for the image and upload it.


Don’t forget to add an apt Alternative text to make sure your image is accessible to all. Drupal 9 makes it really easy for you to build an accessible website.


Once you hit Save, you will now see the image right there in your editor. You can align it as per your choice. I have chosen it to align with my text to the left.

  Step 4: Add credentials to build trust

It gets easier for prospective customers to trust you when they recognize familiar and impactful credentials on your landing page. It is important to have these trust factors in the first viewport. For our website, we have customized a Certificates component that has fields like title, image, and description. When I’m designing the page, I just have to pull out the certificates that I need to display (see image below).

  Step 5: Adding the form

Now that you have added enough charm and engaging elements in your landing page, here’s where the real deal happens - the form. Some important points to note about a landing page form :

  • Always make sure it is in the first viewport. That is, the user should be able to access it without having to scroll down.
  • Add other CTAs as you scroll down the page so that a click on that CTA again leads back to the form.
  • The form or the CTA button (Submit) should have a contrasting color when compared to the rest of the first viewport. This helps bring the user’s attention to it.
  • Try limiting the form elements to 5 fields or less. Not many users enjoy filling up long forms. 

In this campaign, both the CTA and the offer are in my form. We have used the very versatile Webform module that gives us the flexibility to create simple to complex forms very easily.


  • Webform Title - The title of my webform which will show up right above the form. I need to make sure it is clear and also has my offer. I have titled it as: Fill out this form to get your FREE Migration Audit Report 
  • Webform - This is a dropdown list of the webforms that we have created and used throughout the site. I have to select the one that suits my requirements at this point. I have chosen the ContactUs-Ads webform that we had created for our previous ad campaigns.
Step 6: URL alias

Having a user-friendly and impressionable URL comes with many benefits including that of search engine optimization. Once I’m done with designing the campaign, the next step is to give a friendly URL alias to my ad landing page. Drupal 9 has the URL alias module in core which helps in easily adding and editing aliases when needed.

On the right side of the page, click on the URL alias button and specify the URL you would like to use. I have used “/drupal-migration-testing” as mine.

  Step 7: Save it!

And I guess we’re done! Of course, I haven’t created a very elaborate page. I have only designed the first viewport of my campaign here in this example as I wanted to keep this short (1500+ words already!). Typically, I would also add other components like a bigger text block and a client list. 

If you don’t want to publish it yet, uncheck the Published checkbox and hit save. You can also Preview what your page will look like before you save it.

And now for the results!

Drupal Migration Testing

Final thoughts

I hope you’ve enjoyed reading this article as much as I did writing about my experience with landing pages. If you found this useful, please feel free to bookmark or share this article with your friends! Are you looking for a Drupal partner to help you build you a compelling, customized and interactive website where you as the editor have total control over your content? Get in touch with us and our Drupal experts would be happy to help!

Author: Shefali Shetty

​​Meet Shefali Shetty, Director of Marketing at Specbee. An enthusiast for Drupal, she enjoys exploring and writing about the powerhouse. While not working or actively contributing back to the Drupal project, you can find her watching YouTube videos trying to learn to play the Ukulele :)

Drupal Drupal Development Drupal Planet Subscribe to our Newsletter Now Subscribe Leave this field blank

Leave us a Comment

  Recent Blogs Image Build marketing landing pages quickly and easily with Drupal 9 Image What to expect in Drupal 10 Image Auditing your Drupal Website - A Checklist Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

Upgrading and consolidating multiple web properties to offer a coherent digital experience for Physicians Insurance

Upgrading the web presence of IEEE Information Theory Society, the most trusted voice for advanced technology

Great Southern Homes, one of the fastest growing home builders in the United States, sees greater results with Drupal 9

View all Case Studies

Talking Drupal: Talking Drupal #349 - Storage Entities

Planet Drupal - Mon, 2022/05/30 - 8:00pm

Today we are talking about Storage Entities with Martin Anderson-clutz.


  • Miller
  • TD site update
  • Storage Entities
  • Inspiration
  • Benefit of new entity type
  • Comparison to custom entity
  • Lightweight by design
  • Roadmap
  • Use cases
  • Revisions
  • Inline entity form
  • Core candidacy
  • Naming modules
  • Getting Started
Resources Guests

Martin Anderson-Clutz - @mandclu


Nic Laflin - www.nLighteneddevelopment.com @nicxvan John Picozzi - www.epam.com @johnpicozzi Mike Herchel - herchel.com - @mikeherchel


Preview Link Provides a preview link that is tokenised, and therefore bypasses access control to allow any user to view the latest revision of an entity.


Théodore 'nod_' Biadala: Can Drupal scale down?

Planet Drupal - Mon, 2022/05/30 - 1:00pm

Over the years we’ve heard of massive Drupal websites, site factories, traffic spikes, etc. Which is impressive that it’s possible to do with Drupal, although with enough time, money, and hardware that’s to be expected to some extend.

On the other side of the scale (pun intended), when you have little time, money, and hardware I would have a hard time recommending Drupal, even if it was the best fit with it’s content modeling capabilities, extensibility, etc. It’s still kinda expensive to host and maintain a Drupal website. That brings me to what I think would be a good thing to work towards.

I liked the latest Driesnote a lot, from the re-focus on sitebuilders to the composable core strategy it all builds towards a future where I can see people enjoy playing with Drupal again. In that spirit I’d like to talk a bit about a few things I had in mind for a while.

Static by default: We have the chance of having a great static generation module in Drupal called Tome. It makes it possible to use a regular Drupal site and publish the resulting site as static HTML. I worked on an implementation of Tome for a fairly big website a few years ago and Drupal as a static generator works very well. We have unique capabilities that makes this way of working very efficient and very relevant. See #3230448 for discussion. It’d be nice to have Drupal on the back for site editors that push changes to a simple HTML hosting to publish their website. Cheap and secure.

Default to SQLite: Setting up and administering a SQL server is not very fun, and SQLite is very performant. I would love know how big a site can get using SQLite before starting to run into performance issues. I’m betting as long as you’re not saving the file over a network share it should hold pretty well. I don’t have an issue number for that one, maybe it only takes a few good case studies to start pointing people towards this as a solution for hosting a real Drupal website?

Server included: In JS-land nodejs can be the whole application server, no apache/nginx proxy of some kind. If you have nodejs installed, your application can be served. There have been a bunch of attempts at an embeddable PHP server, wouldn’t it be nice to “composer require” the server, run it and you’re done? It will take some work to make Drupal ready to be used this way but nothing impossible, see #2218651. I got roadrunner to serve a few pages from the Umami profile a year ago, cookies didn’t work but overall it went better than expected.

Drupal.exe: Could we possibly package Drupal (or parts of it) in a single file that makes it easier to update? would be harder to apply patches to that but maybe it wouldn’t be impossible? Makes it easy to update core when it’s just a file to change. It’s a nice idea to think about, even if a bit impractical today. In any case discussion can be picked up at #2910136.

If we put all this together, assuming you don’t have authenticated traffic, the experience of a Drupal at small scale could be:

  1. Download the Drupal executable from drupal.org
  2. Run the Drupal executable, it creates the sqlite DB, config files, upload folder, static export folder
  3. Point your server to the static export folder, or FTP that to your static file server
  4. Run the Drupal executable as a service (or run it only when you need to work on your site really) to serve the admin interface and the HTML generation tool
  5. Update your site and whenever changes are made, the HTML export is updated.

If you have a few authenticated users, or a few dynamic things like a contact form or some API callback, it’s the same thing except instead of pointing to the static generation folder, you’re pointing to whatever port you’re running the service at. Since the server is included, it can be used to serve the static pages from the static export folder when possible.

All of this to say, I’d love to be able to use Drupal for myself but it’s too heavy for the things I would want to use it for, even if it’s features are perfectly suited for the job.


Evolving Web: The Best Drupal Modules for SEO

Planet Drupal - Fri, 2022/05/27 - 7:13pm

We recently published our list of favourite Drupal modules for 2022, and now we rounded up a new list for you—the top Drupal modules to help your SEO. They are specifically designed to boost your search rankings by guiding you to an SEO-optimized technical structure that helps search engines have a better understanding of your content.

A quick tip before we get to the list: if you want to dig deeper into the topic, check our SEO Best Practices training. It might be just what you need to upskill your SEO knowledge and drive actual results in your organization.

Download Our Free SEO Checklist to Help Boost Your Rankings

1. Pathauto

This module automatically generates URL and path aliases for various content entities (such as nodes, taxonomy terms, and users) without requiring users to manually add them. This way, you have human-readable, SEO-friendly URL aliases, such as “/category-name/page-title”, instead of an ID-based URL like “/node/123”. Pathauto generates those aliases through a token-based pattern system, which can be easily customized.

2. Global Redirect

Even if you enable clean aliases using Pathauto, Drupal does not remove the old path. This is a problem for your SEO because if search engines identify the two URLs as duplicates, you can get “sandboxed”. This means you’ll be put on probation and your page ranking will be restricted. To avoid this, the Global Redirect module checks the current URL for an alias and creates a 301 redirect if needed.

3. Path Redirect

With this module, you are able to specify and maintain a canonical redirect path for any content you want. You can redirect requests from one path to another, or to an external URL, using any HTTP redirect status. This way, you prevent visitors from receiving a 404 error if a path changes or is removed, improving your SEO in the process.

4. XML Sitemap

Sitemaps are an easy way for you to inform search engines about which web pages are available for crawling. The XML Sitemap module creates a sitemap that follows the specifications from sitemaps.org, helping search engines crawl your website more efficiently and keep updated results. The module submits your sitemap automatically to search engines on a regular basis and also comes with several submodules that can add sitemap links for content, menu items, taxonomy terms, and user profiles.

5. Schema.org Metatags

Schema.org provides a set of standardized properties that improve your content structure, making your content more readily shareable and visible on search engines and boosting your SEO. The Schema.org Metatag module, automatically generates a JSON-LD code for your page headers, extracting associated data from your content and applying the correct Schema.org properties. These associations are configurable, so you can decide how your content is tagged, depending on what you think is most useful to users.

6. SEO Checklist

The SEO Checklist module uses best practices to create a functional to-do list of modules and remaining tasks, greatly reducing the guesswork in your SEO. It breaks tasks down into functional needs like Title Tags, Paths, Content and more.

A screenshot from a Drupal 8 website using the SEO Checklist module

7. Real-time SEO for Drupal

The Real-time SEO for Drupal module performs a real-time SEO analysis on your webpages, helping you optimize content around your main keywords in a fast, natural way, making it a very handy tool for quick SEO fixes. This module checks elements anyone’s bound to forget, like if your posts are long enough to rank, if you've written a meta description at all, if your metadata contains your main keyword, if you're using headings and subheadings, and so on.

8. Advanced CSS/JS Aggregation

Page speed is a direct ranking factor for search engines such as Google, which makes the Advanced CSS/JS Aggregation module a very useful module for your SEO, especially if you’re not using a minifier. AdvAgg improves your website’s front-end performance, helping with your loading times and stability. The performance benefits are achieved by using some of the features found in AdvAgg and its submodules. Also, be sure to do a before-and-after test by using Google's PageSpeed Insights and WebPagetest.org.

9. Scheduler

Auditing and removing outdated content is critical for SEO, which makes the Scheduler module very useful to improve your rankings. As its name suggests, this module schedules node publishing and unpublishing. This allows editors to automate updates in advance instead of having to be on-call to make updates at specific times. Scheduler integrates with the core Content Moderation module via the Scheduler Content Moderation Integration to allow you to schedule changes to the moderation state of content.

👩‍💻 Check Our List of the Best Drupal Modules for 2022

👩‍🏫 Want to learn more about SEO? Sign up for our SEO Best Practices training

+ more awesome articles by Evolving Web

PreviousNext: Overriding base field labels and descriptions of Drupal Entities without custom code

Planet Drupal - Fri, 2022/05/27 - 6:15am

Have you ever had a project where you've used a core or contributed module but been asked to make slight changes to base fields? e.g. Changing the field title, default value, required state or description?

Read on to find out how to use a little-known feature of core to make these changes with only configuration.

by lee.rowlands / 27 May 2022

You may not be aware, but Drupal core has a mechanism for changing base field definitions without code, but other than for nodes, there's no real UI to make use of this API.

If you've ever changed the label of the Title field for a node-type and then exported your configuration, you've probably seen a core.base_field_override file pop up in the exported files.

These config entities can be used to modify base fields on a per-bundle basis.

Drupal core uses them to change the label of the Title field for a given node-type or the default state of the 'Promoted to front page' field.

But the same mechanism can be used for any entity-type.

So how do you go about using this feature.

Well, you've got two options - one is to use the Base Field Override UI module. This lets you change the title and description via a UI. 

But there are more properties a field override can contain, such as default values, required state and even field settings. For those cases, you need to revert to editing YML. But first you need a mechanism to generate the YML.

At present, the simplest way to do that is using Drush to evaluate the following.

drush php-eval "\Drupal::service('entity_field.manager')->getBaseFieldDefinitions({entity_type})[{field_name}]->getConfig({bundle})->save();" 

Just substitute the entity type ID, field name and bundle.

E.g. to export the YML of the 'info' (label) field on the block content entity from 'Block description' for a block-type called 'gallery' you would run

drush php-eval "\Drupal::service('entity_field.manager')->getBaseFieldDefinitions('block_content')['info']->getConfig('gallery')->save();" 

Once that is done, you can run drush config:export -y to export your configuration and you should see a new core.base_field_override.block_content.gallery.info.yml in your config export folder.

You can now edit this file and make the changes you need, and then re-import it using drush config:import -y.

If the entity-type you need to override doesn't support bundles, just use the entity type ID in place of the bundle, e.g. for the User entity, use user for both the entity type ID and bundle.

The advantage of this approach is you don't need to keep an extra module around (Base Field Override UI) just for one-off changes.

Thanks to Adam Bramley for reminding me of this feature. I have a slack comment from him pinned in my saved items and refer to it all the time!

Tagged Entities, configuration management

Liip: 3 steps to make your devs love you by preparing custom icons the right way

Planet Drupal - Fri, 2022/05/27 - 12:00am

For a recent project, we felt it was necessary to ship a few of our own custom icons. Before bringing them over to code, I tidied up the design files. It quickly dawned on me that you should follow a clear protocol to help the development be as efficient as possible. To make your and the life of your developers easier, I want to share the following 3 steps with you. Everybody loves doing less busy work! This write-up focuses on Figma because that's what we use, but most of the steps should be similar for other design software.

Step 1: Use a single icon component

Self-care is important, so this first one is for my designer buddies: Do yourself a favour and use Figma components. More specifically, use just one component for all icons and then add a variant for each specific icon.

Putting all your icons in a component makes it easier to reuse them

Unfortunately, selecting the icon variant from the variant dropdown in Figma is a bit clunky. You might be tempted to make a component for each individual icon. That's good; at least you're using components. There is, however, a tremendous disadvantage to this.

Most likely, the icon component will at some point be consumed by other components. A button component is a natural example of this. If you want a little icon next to the button label, use a single component and you can just drop in the icon component. Boom! You're done. What about adding a new icon? Add a variant, update, and it's available in the button. If you use individual components, you have to add each new one to the button, creating a considerable amount of pointless work.

By the way, this is not exclusive to custom icons. It also helps to do this when dealing with library icons from Figma plugins (which, really, should give you a component to work with, but most of them won't).

Step 2: Size icons so they have the same aspect ratio

Now that we have the Figma in order for ourselves, we move on to help our devs. To get our custom icons from Figma to code, it is very important that they all can be exported with the same aspect ratio. You don't feel the pain of this in a design tool, but icons must be treated completely interchangeable in UI code. If different icons have different aspect ratios, that means we potentially have to adapt the whitespace of the button, table, or alert in which we use the icon to keep padding consistent. That means we must review every individual usage. Different sizes generate a lot of individual exceptions in UI code, creating undue extra work for developers. That’s why we say that this is bad architecture: Icons should not influence their parent components, they should be generic. This should be fixed at the source, so it's on us designers. To prevent fiddling with Figma's resizing options, create an explicitly sized frame in Figma and drag your icon into it.

Use a new frame to easily change the whitespace of your icons

We usually don't encounter this problem because most libraries just export icons as squares. This is certainly the most one-size-fits-all approach, but if all your brand’s icons work better in a 4:3 aspect ratio, then go for it. The important thing is that every icon has the same format.

Step 3: Make sure your icons have similar visual weight

While sizing icons for export, there’s a good chance you will run into an issue where multiple icons in a button bar or a longer form are not balanced right. You correctly put all icons in same-size, same-aspect-ratio containers, but something looks off. Some icons draw the eye more. This is another thing we have to fix that libraries usually provide for us out of the box. Icons that have heavier lines, more filled out areas, or a better fitting shape for our chosen aspect ratio look bigger than others. You can make them smaller or larger within their frame to visually balance them with the other icons in your set.

Make icons have the same visual weight by changing their size

It's possible you don't realise this was an issue because you can just resize icons in Figma to deal with it. But that doesn't work in code, where the size of parent components might be affected. Again, you must fix the root of the problem by not generating exceptions in the first place. Remember, developers could be dealing with hundreds of permutations here, especially if icons can be set in your site's CMS.

There you go! With the help of Figma's excellent SVG exporting capabilities, developers should be able to take it from here. These are the steps I would recommend taking with custom icons to make your own and other people's lives easier. Please try them, I'd love to know how they work for you!

Featured Image by Balázs Kétyi on Unsplash


ImageX: Bon Appétit: Top Modules for Creating User-Friendly Menus in Drupal

Planet Drupal - Thu, 2022/05/26 - 6:20pm
In eateries and websites alike, menus offer guests a selection of options to enjoy.  It may be obvious, but menus are indispensable website navigation elements. If properly built and well-positioned, they greatly increase the chance that customers feel more engaged, find what they are looking for, and ultimately,  end up with a conversion.  It’s great to know Drupal offers plenty of tools both to make website menus user-friendly and help menu creators — admins, editors, developers — build them as easily and quickly as possible. 

Security advisories: Drupal core - Moderately critical - Third-party libraries - SA-CORE-2022-010

Planet Drupal - Wed, 2022/05/25 - 9:39pm
Project: Drupal coreDate: 2022-May-25Security risk: Moderately critical 13∕25 AC:Complex/A:None/CI:Some/II:Some/E:Theoretical/TD:UncommonVulnerability: Third-party librariesCVE IDs: CVE-2022-29248Description: 

Drupal uses the third-party Guzzle library for handling HTTP requests and responses to external services. Guzzle has released a security update which does not affect Drupal core, but may affect some contributed projects or custom code on Drupal sites.

We are issuing this security advisory outside our regular Drupal security release window schedule since Guzzle has already published information about the vulnerability, and vulnerabilities might exist in contributed modules or custom modules that use Guzzle for outgoing requests. Guzzle has rated this vulnerability as high-risk.

This advisory is not covered by Drupal Steward.


Install the latest version:

All versions of Drupal 9 prior to 9.2.x are end-of-life and do not receive security coverage. Note that Drupal 8 has reached its end of life.

Drupal 7 is not affected.

Reported By: Fixed By: 

Liip: What is Liip’s contribution to a better world?

Planet Drupal - Wed, 2022/05/25 - 12:00am

Together with our clients, we want to maximise our impact on sustainable development. We distinguish between the impact on people and the environment resulting from within Liip, and from the projects that we implement. So the HOW and the WHAT. We wrote extensively about the HOW last year.

What are Sustainable Development Goals?

In 2015, the UN adopted the Sustainable Development Goals. The 17 goals set out the key areas of the social, environmental and economic sustainable development that the global community seeks to achieve. Examples include measures on climate action (13) or protecting life below water (14) and on land (15).

We opted for the internationally broadly supported SDGs,because the current proliferation of tools and labels are obstacles more than help. There is currently no single standard, as has been in place for decades for financial accounting, for example.

So that we do not lose an opportunity, we are using the SDGs to collect impact data at a very high level of granularity across all aspects of sustainability.

What exactly are we measuring?

How does the project affect the SDGs? Which SDGs more than others? And what about the company behind it: is there a clear, mandatory message regarding its impact on humans and the environment? We have assigned a percentage weighting to the individual goals. For example, topics such as species protection (14/15) or climate action (13) are weighted much more heavily for a food producer than they would be for a training company.

We then take a look at how strongly connected the project is with the company’s activities. Does the project represent the client’s main area of activity, or is it far removed from its core business? The project’s classification may be congruent with the company, may be separate, or may be a mixture of both.

For each individual aspect, we rate the contribution to a specific sustainability goal on a scale of -2 to +2. We use objective, measurable criteria wherever possible. For example, has a company made a clear and verifiable statement using recognised methods regarding if and how it expects to achieve the climate targets from the Paris Agreement?

Figure 1: Relevance and impact assessment of the individual UN goals of the client project

Of course, there are also assessments for which we lack the data basis. This is a weak point, and we will try to cross-check with recognised agencies wherever possible, especially for large-scale projects.

Figure 2: Sustainability impact of a customer product, composed of company impact (here 80%) and project impact (here 20%)

And how well are we performing?

Our first ‘inventory’ offered a fundamentally good result. Most projects are positively contributing to the SDGs, respectively do not produce any demonstrable damage. This is also thanks to the fact that we have consistently rejected critical projects ever since the company was founded – for example, any projects related to oil production or conflict materials. We are therefore beginning the measurement with a ‘beneficial’ portfolio. Due to the fact that the topic of biodiversity as a whole still receives far too little attention in the economy. This also influences our portfolio. We will pay special attention to this goal.

We now have an overall picture of our activities. This enables us to prioritise specific goals that are not doing so well more strategically.To keep it simple, we multiply the hours worked on a project by the impact on a goal. Admittedly, this is rather imprecise, but it is still meaningful for us because it gives us an indicator of what we are spending our time on in the first place.

Figure 3: Effect of hours worked for clients per SDG

Is this just greenwashing?

There are currently huge amounts of activity relating to impact measurement. And much of this is marginal. Sustainability is currently in fashion, and often things that are brown and unfair are painted green and put in a social light. Because we are aware of this, we are operating as cautiously as possible by setting broad system limits, and by drawing on a holistic metric with the SDGs. And, in the event of doubt, we make a more conservative assessment to avoid a false sense of security. As a point of principle, we obtain publicly available evidence and statements from companies wherever these are available.

What is the next step?

We plan to take this chosen approach a long way. Most likely further than the majority of SMEs in the service sector in Switzerland. In their role as suppliers, we want our clients to receive added value from their proven impact.

However, this is a risk and ventures into much uncharted territory. We are currently gaining experience and identifying a series of focus topics, through which we will be able to use our skills to provide our clients with the greatest positive contribution toward sustainable development.

To be continued.


Théodore 'nod_' Biadala: JavaScript management in Non-JavaScript CMS

Planet Drupal - Tue, 2022/05/24 - 9:45pm

I wrote this post from scratch about 7 times over the last few months, and I’m not getting anywhere so I’ll write up something, it’s not perfect, I took a few shortcuts but having a discussion going is more important than a perfect post.


JavaScript development went from widget-based add-ons for functional HTML pages to being responsible for HTML page assembly and even basic browser interactions (such as navigation, form submission, etc.)

In the first case, the JS files are standalone-ish, they usually depend on a bigger library (like jQuery) and sticking them on the page with a script tag is enough for things to work. Makes it easy to assemble pages at runtime based on the original JS source. Additional processing can be done on the JS file to minify or gzip it but it doesn’t go much further than this. This is what Drupal and most other CMSs that have been around for a while do very well.

This worked well until the push for better UX shifted more and more responsibilities to the frontend. More responsibilities translate to more code sent, minification wasn’t enough and JS libraries got bigger and became frameworks with smarter tools, we began to see an optimization or build step to transform development code into running code. This is around the time where CMSs started to get left behind I’d say.

Fast forward to now where the whole site/application is in JavaScript and the framework needs to build the application before it can even be loaded. It’s not really possible to add or remove functionality at runtime, if there is a change in the application, the whole application needs to be built again. On top of this frameworks are now competing in server side rendering capabilities.


How to accommodate JS as it is written today with the CMSs way of consuming it?


Essentially, transform a monolithic JS application in a set of files that are optional and can be loaded at runtime without the need of a build step. One partially successful example of this is how CKEditor 5 has been integrated into Drupal by using the relatively new Webpack DllPlugin, instead of building a single JS file with all the WYSIWYG tools, each tool is packaged in it’s own file that can be loaded at runtime without fuss. This solution still needs a build step but at least the result of the build step can be used dynamically.


In the case of Wordpress they solved the problem simply by going all JS with Gutenberg: a whole new repo, only JS/React code, very little PHP in sight, and a great opportunity to generate engagement by creating a new way of doing things. It seems to be working well for them.


Symfony went with a Yaml API around nodejs tooling with Webpack Encore. Still need nodejs installed and all it comes with.

Another way?

Personally I would like to explore an alternative path before considering to move all-in on the JS way of doing things, and require nodejs for hosting a Drupal website, a path that can help mitigate some of the pain of JS tooling. There is no reason for JS tooling to be written only in JS, there is already a bunch of tools written in rust, as long as you can read the file, you can make the same transformations in any language.

I’d like to see a set of PHP-based tools that helps manage JS, in a way that the build step is actually handled by the CMS so that people writing Drupal code do not need to care about nodejs, tooling, package updates, etc. For example I would love to write JavaScript modules and have the dependencies automatically picked up and declared in Drupal and at the same time, have Drupal aggregate all those modules in a single file. Something that is surprisingly impossible to do natively for now hopefully. Until then I’m itching to use peast to transform JS from PHP and start making tools that remove problems for PHP developers.

What do you think?

As as said in the beginning this post is a bit messy, I’m not comparing the same things or define what it is that the build step should be doing or not doing, but I’m happy to just talk about the topic and see what others think.


Evolving Web: Why Web Governance Is Essential to Your Digital Content Strategy

Planet Drupal - Tue, 2022/05/24 - 7:42pm

Governance is more than a conversation about who gets a user account on your website. A web governance plan should help you use your website or digital platform as an effective communication machine. It should tell you why each part of your website exists and the steps your organization should take to deliver on that purpose. If your website plays a strategic role in how you communicate and engage with your audiences, you need web governance.

Launching with a Strong Content Strategy is Not Enough

An important step in the discovery work of any website redesign project is digging into the business goals, the user needs, and how people are using a website. This is valuable work that involves getting stakeholders together, performing user research, and analyzing current user behavior and website performance. But too often, this work is only used to feed into the redesign itself. It gets translated into a strategy, a design, and potential some content improvements, and finally a new website is launched.

But too often, when the website is launched, the vision and strategy for the website is forgotten. And the content and messaging can become dated or stray from the actual purpose of the website. In short, it’s not enough to launch with a good strategy, you need a way to act on it. Without a specific and realistic governance plan, a fantastic website can quickly devolve into something that doesn’t serve its purpose.

Governance is often the bridge between business goals and user needs. Sometimes there’s a mismatch between how your website is organized and how decisions get made. This could mean that people from different departments share responsibility for updating a single website, section, content type, or page. And because each organization is different, web governance is not one-size-fits-all.

That being said, here are some things you can do to make sure your governance plan helps you deliver on your content strategy goals.

8 Aspects of an Effective Web Governance Plan Be Strategic

Your governance plan should tell you the purpose and goals of each element of your web platform. That goes for each website, each section or content type, and each feature. The purpose should also come across in the metrics that you’re tracking and who is responsible for analyzing, updating, and approving changes. This should also help your organization figure out where new features, messaging, or information should fit into the user experience, or whether it belongs on your website at all.

Be Specific

If you’re using a content management system, you’ve probably already done the work of defining the individual content types and content components to organize your content. Using these in your web governance plan, assigning responsibility for who updates and maintains each content segment, can help people feel empowered to make improvements. This gives visibility to the overall system status, helps set expectations, and reduces anxiety on a usually already busy team.

Be Proactive

Sometimes, in the discovery phase of a project, when we’re discussing the pain points of an existing website or app, it’s clear that the people in charge of running a website aren’t necessarily familiar with all the content they have or where to find it. If a website is truly external-facing, some sections might languish for months or years because we assume they’re working fine or that someone else has it covered. Governance should address this by establishing cycles for analyzing these corners of your website with some regularity.

Create Alternative Contribution Channels

While roles and permissions are fantastic tools for allowing people to create content directly within your content management platform, external tools could prompt other groups to contribute content when they have something to promote upstream. A tool like Trello or a simple Google Form allows many people to contribute content, which can then be used in any digital channel (social media, newsletters, the website) while leaving the curation and use of that content to a more centralized group.

Weave in Compliance

Often, content compliance (adhering to accessibility guidelines or your content style guide) is something that’s done reactively when someone notices a particular page or section of a website strays from the norm. Or there’s an education program in place, so that content editors can get accessibility training. And while these two things play a role in compliance, it’s even more effective to identify tools that content editors can use to check compliance as they go, like the editoria11y module for Drupallisted as one of our team’s favourite

Drupal modules

Identifying offline content collaboration tools (e.g. using a particular Google Docs template for creating drafts or using tools like PuppyPaste to clean up content before pasting it into your WYSIWYG editor) can also result in better standardization of content before it even lands on your website.

Divide and Conquer

It’s good to be creative about who takes responsibility for what. In an organization with a hundred websites or more, it’s hard for one central group to take stock of which websites exist, let alone be responsible for the success of each one. In this case, it might be useful to assign a champion for a grouping of websites, someone who can take responsibility for who gets to create a new site, be the point-person for compliance questions, and run segments of the content review process.

Be Realistic

The whole point of governance is to keep your work purposeful. But if the burden of updating and analyzing your content is too high, you won’t do it. Looking at the time people actually have to analyze data, update content, or create fresh content is important. This is why it’s important to create your web governance plan early, before launching a website or rolling out new features.

To reduce the burden, you can reduce the amount of dynamic content and content curation required to keep the website fresh. You can also prioritize which content deserves the most attention, and address this more frequently. It’s helpful to schedule reminders and meetings to do the monthly, quarterly and yearly tasks identified, which will make it clear what is expected of each person involved in governance.

If disparate groups have a track record of not contributing or monitoring their content, make sure your governance plan addresses it. You can add new ways for them to contribute that don’t require so much effort. Or alternatively, change their role so that they are informed of content updates, but don’t have to take responsibility for making them.

Think Beyond a Single Website

Your governance plan can go beyond serving as a playbook for improving the content of a single website. It can also serve to question why certain features, websites, and content types are required in the first place. If you’re working in an environment where websites are spun up on a regular basis for one-off events, topics, or campaigns, it would be extremely valuable to create a centralized place where the purpose of each existing website is described. You could also include a set of criteria for creating a new website.

💻 Want to create an effective content strategy for your Drupal project? Check out our UX and Content Strategy for Drupal training course

+ more awesome articles by Evolving Web

Specbee: What to expect in Drupal 10

Planet Drupal - Tue, 2022/05/24 - 9:34am
What to expect in Drupal 10 Alok Aman 24 May, 2022

If you were at DrupalCon Portland 2022 or watched the recording of DriesNote, you’re probably aware that the release date of Drupal 10 has been moved back by a few months. Drupal 10 is now expected to release in December 2022 (which was a plan-B scheduled release date anyway). We’ll touch on the reason the dates were pushed from June 2022 to December 2022 first. But read on for all the things to look forward to in Drupal 10.

If you’re still on Drupal 7 (or 6), the time is right to migrate to Drupal 9 now. Upgrades to Drupal 10 and all the following versions are going to be easy forever!

Why not June 2022 for Drupal 10

A flexible content editor is a fundamental part of any content management system. CKEditor has been a part of Drupal’s family of modules since Drupal 6 and has become a favorite editing tool amongst users. CKEditor 4.5 is the default WYSIWYG rich text editor for Drupal 8/9. 

The big news here is that Drupal 10 will have the all-new features of CKEditor 5. It’s going to be more powerful, easily customizable, perfect UX and will come with a modular architecture. With CKEditor 5 in Drupal 10, we foresee a bigger adoption of Drupal as a blogging platform.

However, CKEditor 5 is a complete rewrite of CKEditor with no backwards compatibility or upgrade path. Almost like a Drupal 7 to Drupal 8 rebuild. The Drupal community has been working closely with the CKEditor team at CKSource on this and has spent thousands of hours creating an upgrade path from CKEditor 4 to CKEditor 5 for Drupal 10. But there still is a lot of work to be done to push it to the finish line and to make sure it is easy for site builders to upgrade from CKEditor 4 to 5. 

With that and CKEditor 5 being an integral part of Drupal 10, the scheduled release date had to be pushed to December 2022.

What’s New with Drupal 10

Drupal 10 is going to be the more updated and polished version of Drupal 9. It comes with some updated additions of new features and removal of some deprecations.

Updated Third-Party Software

Drupal now works on different third-party components. It’s essential to work with the updated versions of these modern libraries and features. These components perform better and are more user-friendly. Drupal 10 websites will be able to leverage the innovations of these components.

Symfony 6.2

Drupal relies heavily on the Symfony framework. It is the foremost driver of Drupal since version 8. Drupal 9 uses Symfony version 4, which is reaching end of life and support by November 2022. So apparently, the Drupal 9 to Drupal 10 upgrade will be skipping a version of Symfony (Symfony 4 to 6). Symfony 6.2 will be released just in time for Drupal 10’s release and will have many modern features that developers are going to love.

CKEditor 5

As already discussed earlier in this post, Drupal 10 will ship with the awesome CKEditor 5, replacing CKEditor 4 for good. CKEditor 5 is supported in Drupal 9.3 as an experimental module but is not stable. CKEditors is not only great for site builders because of its user-friendliness and great UX, it is also a great framework for developers to customize and build upon. It will look a lot like MS Word or Google documents and will have a ton of integrations to make it richer and more efficient.

  PHP 8.1

The Drupal project team has decided to increase the requirement of PHP to PHP 8.1 in Drupal 10. Symfony 6.2 will require PHP 8.1 version and hence the dependency. Since version Drupal 9.1, PHP 8.0 has been supported. PHP 7.4 will reach end of life by November 2022, so if you are using PHP 7.4, it is time to upgrade!


There may be a final replacement of the jQuery UI with modern JavaScript components. Drupal 10 will now no longer support Internet Explorer 11.

Auto-Updating Features

How awesome would it be if your website could update itself?!

With Drupal 10, developers and site builders can automatically enable secure and easy updates. The automatic updates feature will be introduced to Drupal 10 core and is present for completely composer based sites. The Automatic Updates Initiative has done some significant work in areas such as UX enhancements, package deal signing for progressed security and trying out with various host providers.

Decoupled Menus

Drupal is now moving closer to being a headless CMS. The Decoupled Menus Initiative is a huge step in this direction. It can assist to build a number of ways for JavaScript front-ends to apply Drupal website menus. It is a contributed module presently but will be included in core later. Content creators and marketing teams also can replace the menu via the Drupal UI without a developer’s involvement. The changes will be reflected in the JavaScript front-end automatically.

Olivero New Default Front-End Theme

A new and modern Olivero theme is taking accessibility to a whole new level. Olivero will replace Bartik as the default front-end theme for websites in Drupal 10. It is designed to be extremely user-friendly especially for people with vision disabilities. The content material is simple to navigate and the forms have been properly designed too. No issues are found while focusing, contrasting or scaling. Olivero is already stable in Drupal 9.3.

  New Started Kit Theme

There might be a brand new starter kit theme in Drupal 10, providing a new way for theming in Drupal. Developers were using the Classy theme for sub-theming requirements. Front-end developers could have a starting point for themes. It is important to understand that the starter kit changes will not have an effect on the production themes now. It will be easier to maintain. The introduction of the new tool will remove support for Classy as it will be deprecated. It is currently in alpha and is on track to be released by Drupal 10.

Final thoughts

Are you as excited as we are about Drupal 10? You can try out the Alpha release of Drupal 10 right away to play around with it just like we did. All of these new features we discussed will take Drupal’s usability and adoption to a whole new level. In Dries’ words, Drupal has made the web better and it is much bigger than just a CMS. It is used by 1 out of 30 websites in the world and without a doubt has a huge influence on the future of the web. As a Drupal development company, we contribute to the Drupal project so we can make an impact for a better web. If you’re looking to make an impact too, consider joining the Drupal community to contribute and make a difference.

Drupal 10 Drupal Development Drupal Planet Subscribe to our Newsletter Now Subscribe Leave this field blank

Leave us a Comment

  Recent Blogs Image What to expect in Drupal 10 Image Auditing your Drupal Website - A Checklist Image Get started with JMeter for Performance Testing your Website Featured Success Stories

Upgrading and consolidating multiple web properties to offer a coherent digital experience for Physicians Insurance

Upgrading the web presence of IEEE Information Theory Society, the most trusted voice for advanced technology

Great Southern Homes, one of the fastest growing home builders in the United States, sees greater results with Drupal 9

View all Case Studies