Upgrade Your Drupal Skills

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

See Advanced Courses NAH, I know Enough
Aug 19 2020
Aug 19

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

No set agenda this month -- we can discuss whatever Drupal related thoughts are on your mind. If you would like to contribute to the conversation, please join us. 

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 but open to everyone.

View notes of previous months' calls.

Aug 19 2020
Aug 19

Drupal 8 was released in late 2015, heralding a significant departure from its predecessor, Drupal 7 and required a complete re-build. 

However, the benefits of moving were evident early, and companies who decided make the jump were glad they did so.

The benefits included:

  • Ease of use - in-place editing, using CKEditor 
  • New theme engine, using Twig
  • New Symfony Framework
  • Enhanced multilingual capabilities
  • Extensibility - enhanced capability to integrate with third-party systems
  • Better performance - using BigPipe technology that loads pages quicker
  • Media library - browse and reuse media across your site
  • New features - new features are released every 6 months

But the big news was that there would be no more major re-builds – you didn’t have to re-build the site for future upgrades, new features will be carried out in smaller updates.

Though Drupal 9 does not offer any new features in its initial release, it does offer a leaner, more secure system with APIs that are easier to work with - these changes are most noticeable to developers.

Future releases of Drupal 9 will continue to feature additions and improvements along the six-month release timeline that has been established with Drupal 8.

Drupal Train Analogy 

Unlike previous new major versions, Drupal 9 is not a reinvention of Drupal. It was largely built in Drupal 8 through deprecating APIs and updated dependencies. Other than these two things, Drupal 9.0.0 is the same as Drupal 8.9, the last Drupal 8 minor release.

To illustrate this, Drupal.org came up with a rather nice analogy and visual. "Imagine your website is a train. Previously, moving major versions meant moving the train to a different track entirely. After Drupal 8, new major versions will just be stations on the same track."

Upgrading to Drupal 9 as part of your support contract

In our recent blog post, Drupal 9 is Here - Upgrading has Never Been So Easy, we outline the relatively straightforward steps required to move from Drupal 8 to 9.

WBT Systems decided to upgrade under their support and maintenance contract with us and a number of other clients have now decided to follow suit.

As you can see from the train analogy, those of you still on Drupal 7 – that is end of life in November 2022 – there is no upgrade path. However, now is the time to improve your customer experience and take advantage of the new features and functionality that will be released every 6 months.

Why not make the jump to Drupal 9 today!

Aug 19 2020
Aug 19

When a new product rolls out, it raises a lot of interest. The Drupal 9 release is no exception. This interest is easy to understand because new versions of Drupal bring new digital opportunities. Today, interactions with potential customers have shifted into the virtual sphere, so websites have an especially important mission to perform.

Whenever you have questions, our Drupal development team is ready to provide the answers! We offered you a Drupal 9 upgrade checklist for website owners, and now that Drupal 9 is out, it’s time to take a new look at it and answer all your questions in our Q&A session.

Drupal 9 release: Top Questions and Expert Insights

Question: What was the release date of Drupal 9?

Answer: Drupal 9.0.0 was released on June 4, 2020.

Question: What are the new features of Drupal 9?

Answer: The Drupal 9.0 release is not game-changing in terms of features. It is very similar to Drupal 8.9, but cleaned-up from obsolete code and furnished with the latest versions of third-party dependencies. One of Drupal 9’s outstanding capacities is super easy upgrades.

When it comes to features, from Drupal 8.0 all the way to Drupal 9.0, Drupal has been growing and evolving in many aspects. This will continue in Drupal 9. It is significantly easier to use for marketers, content editors and designers. New Media and Media Library, Layout Builder, Content Moderation and Workflows, and Workspaces have transformed the editing processes forever. Drupal’s API-first nature with JSON: API in the core makes websites more open to third-party integration and multi-channel reach.

Layout Builder in Drupal 8 and 9

The Drupal creators will keep inventing more interesting features based on the strategic tracks — better editor-friendliness, compliance with website accessibility standards, integration, and more. For example, the new default front-end theme Olivero planned for Drupal 9.1 ships with the best web accessibility practices included. And it’s just the beginning of Drupal 9’s forward movement.

Question: What are the updated dependencies in Drupal 9?

Answer: Among the major third-party libraries and components in Drupal 9 are the template-making engine Twig 2, useful components of the high-level framework Symfony 4.4 (with Symfony 5 in plans), the modern content editor CKEditor 5 in plans, and many more.

Question: What are the benefits of the updated dependencies in Drupal 9?

Answer: Modern versions of dependencies make websites faster, more efficient, and more secure. Their code gets much cleaner, which leads to easier website maintenance, more efficient development, friendliness to search engines, and so on.

Question: What are the reasons to upgrade to Drupal 9 from Drupal 7?

Answer: Drupal 7 is getting outdated in its digital capabilities. Between Drupal 7 and Drupal 8/9, there is a technological abyss, but you can cross the bridge to the other side.

You will get a version with all features of both Drupal 8 and Drupal 9. Multilingual options, third-party integrations, mobile-friendliness, better accessibility, outstanding changes for content editors, and improved configuration management are just a few examples.

Question: What are the reasons to upgrade to Drupal 9 from Drupal 8?

Answer: Drupal 9 has huge plans for innovative development. In addition, an upgrade from D8 to D9 is very easy and requires actions you need to take anyway.

To move from Drupal 8 to Drupal 9, you will need to clean up the deprecated code from your site and update it to the latest minor version of Drupal 8. You need these updates in any case to use all the new features that have appeared from Drupal 8.0 to Drupal 9.0, as well as to get more security for your website.

So the question “Why upgrade to Drupal 9 from Drupal 8?” need no extra explanation — this is just your simple, natural, and effortless move to the future.

Question: How do I prepare for Drupal 9?

Answer: The key requirements are to update your website to Drupal 8.8 or 8.9, update your modules and themes, check your site for deprecated APIs and functions and replace them with new alternatives, and make sure your hosting server uses PHP 7.3 or higher. Some of the useful tools to prepare for Drupal 9 are the Drupal Check command-line tool, the Upgrade Status module, the Drupal-rector tool, the Upgrade Rector contributed module, and the Drupal 9 Deprecation Status page.

Drupal 9 readiness module status page

Question: How long will it take to upgrade from Drupal 8 to Drupal 9?

Answer: A well-prepared site makes the upgrade instant, so the answer depends on the state of your website’s readiness. This includes how long ago you made updates between the minor versions (maybe you are still on 8.1 or something), how many custom modules you have that need to be cleaned up from obsolete code, and so on.

Upgrade to Drupal 9 with us!

The above questions about the Drupal 9 release are the most commonly asked, but our Drupal team will be glad to answer any of your questions. Of course, we will seamlessly upgrade you so you can enjoy the latest Drupal version. Our prices are affordable and a quote is free. Contact us for a new digital era of your website!

Aug 18 2020
Aug 18

We read a lot of great Drupal content last month, covering a few different topics. Check out our recap of July’s top Drupal blog posts and see which insights we found the most interesting. 

How Drupal manages Accessibility

First off, we have a post by Mobomo on Drupal’s stance on accessibility. With accessibility becoming a crucial aspect of digital experiences, it’s useful to know that Drupal is very accessible out of the box, and can be customized to be made even more accessible. 

Mobomo’s post begins with a short introduction to accessibility - why it matters, some examples of non-compliance, and a list of different forms of disability. Then they move on to the salient part of the post: the accessibility of Drupal. 

The Drupal CMS ensures accessibility in two ways: with the platform’s built-in compliance features, and the community’s support and promotion of accessibility which have resulted in a number of great accessibility-focused modules. 

Read more

Drupal 10 target release date and Drupal 9 end-of-life

Next up, we have Dries Buytaert’s announcement of the release date of Drupal 10 and the end-of-life of Drupal 9. The former is planned for June 2022, while Drupal 9 won’t reach its EOL date until November 2023. 

The two dates were selected because Symfony 4, which Drupal 9 is based on, will reach its EOL in November 2023, and this leaves site owners over a year to upgrade from 9 to the new version in June 2022.

Luckily, Drupal 10 will feature the same upgrade process as Drupal 9, with new features being added in a backwards compatible way, so the upgrade will be just as smooth as between the final minor versions of Drupal 8 and Drupal 9. 

Read more

Pattern Lab and Drupal 9: Prepare your theme for Twig 2

The third post on July’s list was written by Adam Juran of 1xINTERNET and serves to facilitate an integration between Pattern Lab and Drupal 9, which is less straightforward since Drupal 8 used to run on a different version of Twig. The two main changes are thus refreshing your Twig files, and making sure to use Twig 2 with Composer.

Adam provides a step-by-step guide of getting everything updated both on the Drupal and the Pattern Lab side. If you’re still experiencing some issues after completing all the steps, chances are these are due to the syntax differences between Twig 1 and 2 - Adam also includes a great resource for spotting and fixing these.

Read more

Thunder 6 – Ready for Drupal 9

The next post is again about preparing a tool for Drupal 9, this one about the release of version 6 of Thunder, a Drupal-based CMS for professional publishing created by Hubert Burda Media. Due to Drupal’s introduction of semantic versioning, version 4 and 5 were “skipped” to reflect this change in Thunder.

The major change in this version is removing the deprecations and making the necessary module updates to prepare Thunder for Drupal 9. The post contains a disclaimer that the Accelerated Mobile Pages and Facebook Instant Articles modules haven’t been updated, so the Thunder team advises against updating if your site uses any of the two. 

Read more

Drupal Accessibility: Why It's Worth It

We’re following that up with another blog post on Drupal accessibility, this time by Matthew Tift of Lullabot who explores the reasons for Drupal’s prioritization of accessibility rather than the means by which it achieves it. The Drupal community are strong believers in diversity and inclusion, and that means making the platform not only available but usable to all its users. 

Furthermore, they understand the impact of the software and feel a responsibility to build it in a human-centered manner, especially as Drupal is often a choice of governments and educational institutions, and as such has the potential to reach and affect the lives of a huge number of people.

Read more

Open Social raises EUR 1.25M fromPeak Capital and Nimbus Ventures

While still related to Drupal, this post is a bit more specific - it is an announcement of Open Social, the open-source SaaS community building platform, raising a significant investment which will allow them to become a true contender in the field. As the first half of 2020 has shown, there is a great need for online communities, especially ones that are open and transparent, and hence this investment comes at the perfect time. 

As Open Social’s head of marketing, Sjoerd Pijnappel, writes, the EUR 1.25 million investment by Peak Capital and Nimbus Ventures will enable them to streamline their platform with the latest trends, e.g. Drupal 9 and a decoupled approach, forge new partnerships, and further innovate by expanding their team. 

Read more

Declarative components in Drupal:

How Drupal can make true shared components a reality - part 1

Next steps for components everywhere in Drupal - part 2

We continue with a two-part series of posts on shared components in Drupal, written by Preston So with the help of Fabian Franz and Michael Meyers of Tag1 Consulting, which is a kind of continuation of Fabian’s talk from DrupalCon Europe in fall of 2019. 

Part one is more theoretical, basically reflecting Fabian’s further exploration on the matter of components shared between the front and back end, and looking at some other technologies such as Laravel and Web Components to see how those tackle the problem. 

Part two takes a more practical stance, taking a look at what Drupal options are going forward. Projects such as Inertia.js come close to what Fabian envisioned, but tend to only solve part of the problem, so he believes the most important thing for Drupal is to start simple.

Read part 1

Read part 2

Accessible Navigation with Drupal Core’s Menu System

The last post on this month’s list is another one of Lullabot’s, and once again on accessibility in Drupal, specifically the ability to easily create accessible navigation, introduced with Drupal 8.9 and Drupal 9.

This is enabled by a HTML <button> element in a native Drupal menu, which can then be used to toggle secondary menus (as the post’s author Mike Herchel warns, using an <a> element instead is a frequent inaccessible pattern). 

Once you create the needed menu items, you also need to make sure that the menu behaves in an accessible way, i.e. attaching the correct aria labels, and using CSS and JavaScript to show/hide the submenu. 

Read more

Several people all high five-ing at once

We do these recaps every month, so, if you like discovering new content in this way, make sure to recheck our blog early each month for a new round of interesting articles on open source.

Aug 12 2020
Aug 12

Google has launched an important new feature to help bring critical alerts and announcements to the forefront of search. While COVID-19 has highlighted the need to convey a single source of truth and critical updates in a timely manner, alerts can cover a wide range of topics that include weather events, criminal activity, threats of foodborne illness, environmental dangers, street closures, and much more. 

Here's how you can now ensure that your site's alerts are highlighted as a rich result on a Search Engine Results Page (SERP).

As shown below, the rich result includes the page’s regular snippet description and can contain a structured summary of an announcement that can be expanded directly from SERP.

Google alert SERP result

Using the Special Announcement Markup

The special announcement is a type of structured data that is tagged as a Special Announcement Markup that the Google Search Engine can identify and display in the Search Engine Results Page. 

Google special announcement markup

Two Options for Implementing COVID-19 Special Announcement Markups

Google has provided websites with two ways to implement COVID-19 announcements markups to their webpages.

1. Add Structured Data to Web pages (Recommended Method)

Google recommends that websites add special announcements as structured data markups, as structured data is a standardized format for providing information about the page and classifying the page content.

2. Submit Announcements in Search Console (Alternative Method)

The second method is intended as a short-term solution for websites that have limited technical ability or support. Websites need to manually send a request inside Google Search Console through the special reporting tab to submit a special announcement request for a specific page of their website. This is a more tedious process as it requires pages to be manually updated inside Google Search Console whenever there are updates.

Google Search Console

Google is actively developing the COVID-19 Special Announcement Feature and we can expect changes in requirements or guidelines as the COVID-19 pandemic progresses. These special announcements are designed to provide crucial and accurate information from a single source of truth. information and reduce the risk of panic that can be caused by misinformation. 

COVID-related announcements can include:

  • Announcement of a shelter-in-place directive
  • Closure notice (for example, closing a school or public transportation)
  • Announcement of government benefits (for example, unemployment support, paid leave, or one-time payments)
  • Quarantine guidelines
  • Travel restrictions
  • Notification of a new drive-through testing center
  • Announcement of an event transitioning from offline to online, or cancellation
  • Announcement of revised hours and shopping restrictions
  • Disease spread statistics and maps

In an environment characterized by drastically curtailed social engagement and rampant uncertainty about what’s next, websites have never served such a vital role for communications and engagement. At Promet Source, we are actively consulting with clients from every sector to ensure that their websites step up to the challenge of current realities. Let us know what we can do for you. 

Aug 11 2020
Aug 11

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.

DrupalCon Global

It's hard to believe that our last published update was back in April of 2020. Time seems to simultaneously crawl and disappear in the time of quarantine. All hands were on deck at the Drupal Association to facilitate the transition of DrupalCon from an in-person event to a virtual conference, and those efforts were rewarded:

The first DrupalCon Global event exceeded all expectations. Creating a 100% virtual event which captures the spirit of DrupalCon is no small task, but thanks to our sponsors and supporting partners we were able to set the benchmark for virtual open source conferences.

DrupalCon wasn't the only thing we worked for the past three months, of course, and we have a number of phenomenal updates that we'd love to share with you.

In fact, we spoke about this work during the Drupal.org Engineering Panel at DrupalCon Global, so what better way to update you than with that recording!


Looking for the TLDR? 

Don't worry - we know you're busy - here's the short version: 

  • We recapped the success of the #DrupalCares campaign, and reiterated our #DrupalThanks to all the contributors who made it possible to refocus on our mission work.
  • We shared new metrics available on https://www.drupal.org/metrics that help us understand community activity, project health, and community diversity.
  • We showed off the new community event listings - the beginning of a more modern replacement for the event-organizing features of groups.drupal.org.
  • We showed off the tools built for the new contributor guide - which are now in use by the community to help match contributors and their skills to what's needed for the DRupal project.
  • Drupal 9 released, not only on time, but in it's very first potential release window - on June 3rd, 2020. This is an incredible testament to the work of the community, and in particular the core maintainers.
  • We launched the beta for merge requests integrated into Drupal.org - you can opt in the projects you maintain.
  • We announced that Drupal Steward program was going live! And we're looking for 10-30 initial site owners ready to sign up, to help us refine our onboarding process.

But that's not all! 

Community contributed Drupal.org improvements

In addition to all the work that the Engineering team has done in recent months, the community has also swung into action to provide some great improvements to Drupal.org. 

Aug 10 2020
Aug 10

Time to vote

It is that time of year again where the Drupal Association Board looks to fill the At-Large member seat that becomes available every year.

This year, we send our thanks to Suzanne Dergecheva, who will be stepping down as At-Large board member after serving her two years. Last year, we elected Leslie Glynn to the board, who has one more year to serve - and we are sure will be happy to welcome the next person onto the board!

Important Dates

Nominations open: 10 August 2020

Nominations close: 27 August 2020

"Meet the Candidates" begins: 28 August 2020

"Meet the Candidates" ends: 13 September 2020

Voting opens: 15 September 2020

Voting closes: 30 September 2020

Announcement of winner: 30 October 2020

What does the Drupal Association Board do?

The Board of Directors of the Drupal Association are responsible for financial oversight and setting the strategic direction for serving the Drupal Association’s mission, which we achieve through Drupal.org and DrupalCon. Our mission is: “Drupal powers the best of the Web. The Drupal Association unites a global open source community to build, secure, and promote Drupal.”

Who can run?

There are no restrictions on who can run, other than you must be a member of the Drupal Association.

How do I run?

Candidates are highly encouraged to:

  1. Watch the latest Community Update Video

  2. Read about the board and elections, including the video about the elections this year
  3. Read the Board Member Agreement

Then visit the Election 2020: Dates & Candidates page to self-nominate. The first step is to fill in a form, nominating yourself. Drupal Association staff will create you a candidate page and make you the author so you can continue to add content here during the election and answer any question posed by the electorate as comments on the page.

Who can vote?

For 2020 and moving forward, all individual members of the Drupal Association may vote in the election.

If you are not currently a member, please ensure you have renewed your membership before voting opens, on 14 September.

How do I vote?

The Drupal Association Board Elections are moving to the free and open source Helios Voting service for 2020 and beyond. All Drupal Association individual members will receive their unique voting links via email, sent to the primary email address in their Drupal.org profile, when voting opens. Follow the instructions in that email to vote.

Elected board member special responsibilities

As detailed in a previous blog post, the elected members of the Drupal Association Board have a further responsibility that makes their understanding of issues related to diversity & inclusion even more important; they provide a review panel for our Community Working Group. This is a huge important role in our global community.

What should I do now?

Self-nomination is open! Please do read further:

Then consider if the person who should be standing for election is you. (It probably is!)

Aug 09 2020
Aug 09

The answer is... generally run updates first. Whether to import or export the configuration afterwards depends on who updated the contrib code base.

You are updating the contrib code base

If you are updating the contrib code base, run the database updates and then export the configuration, as updates tend to alter the configuration storage data which needs to be commited into the version control system:

  • Pull changes from the repository
  • drush cim to import your colleagues' configuration changes
  • composer update to update the contrib code base
  • drush updb to update the Drupal database
  • drush cex to export potential configuration changes after the update
  • Commit changes into the repository


git pull \
&& drush cim -y \
&& composer update \
&& drush updb -y \
&& drush cex -y \
&& git commit

Someone else updated the contrib code base

  • Pull changes from the repository
  • composer install to synchronize your contrib code base with the remote
  • drush updb to update the Drupal database
  • drush cim to import your colleagues' configuration changes


git pull \
&& composer install \
&& drush updb -y \
&& drush cim -y

Aug 05 2020
Aug 05

In the current environment, search engines are an essential audience. 

While it’s widely understood that attracting the attention of the major search engines, is key to a website’s overall effectiveness, too often, Search Engine Optimization is viewed as a task that can be checked off of a list once completed.

SEO needs to be viewed as an ongoing activity, with a consistent monitoring of metrics, along with a focus on learning and adjustments to strategy based on the intelligence hidden in the data.

Sharpening the Focus on SEO

Volumes of readily available information from thousands of different websites is  available online. Thousands of organizations compete for attention, which means that effective Search Engine Optimization (SEO) strategies need to constantly stay ahead of what the competition is doing and aligned with search engines’ most up-to-date methods of crawling websites for relevant information. While the early days of SEO amounted to efforts to game the search engines, the search algorithms have become quite intelligent and now favor relevant content and well structured sites. 

SEO strategies are designed to improve organizations’ rank on the Search Engine Results Pages (SERP), which follow the search for specific keywords or queries. Appearing near the top of a Google or Bing SERP is essential for driving website traffic and conversions. A recent article in Search Engine Journal reported that sites which appear on the first page of a Google search receive, on average, 91.5 percent of the traffic share. 

Great SEO is also aligned with great UX and web accessibility. The search engines favor websites that are streamlined for user accessibility and enabled for mobile.

How to Perform Continuous SEO on a Drupal or WordPress Website

1. Monitor and Collect Data

The first step in the SEO process is to monitor and gather key performance indicators (KPIs).  KPIs indicate how a website is performing relative to specific metrics, and help to gauge a site’s status relative to competitors and past performance. 

Search Engines such as Google and Microsoft Bing provide free and easy-to-use tools to help gather and collect important data and generate reports on the following website KPIs.

Key Performance Indicators
  • Number of Users: This metric is defined as the number of visitors who have initiated one session on a website. A session is a group of user interactions within a given timeframe. A single user can generate multiple sessions if they return to the website at a later time and a single session can also involve multiple views on pages and interactions, depending on the behavior of the user.
  • Number of Views: The number of views or page views refers to the total number of times a website is viewed. One user session can generate multiple views and this metric indicates which pages are the most popular. 
  • Organic Sessions: Organic Sessions refer to visits generated by users that are coming from an actual search engine query, vs.visitors that found your site via paid advertisements. This metric helps gauge SEO performance by indicting the amount of traffic is generated by SERP results.
  • Bounce Rate: Bounce Rate refers to the percentage of visitors who exit the site after viewing only one page. Of course, sometimes visitors leave because they find exactly what they need on the one page, but the goal is to maximize interaction and the value of the website, and that’s indicated by a low bounce rate. Bounce rate is an important metric that reflects the quality of your website and individual web pages.
  • Pages Per Session: The pages per session metric indicates the average number of pages a user visits for each session. This metric is a great indicator of the ease of navigation.
  • Average Session Duration: The average session duration is an important indicator of the quality of content. The longer a visitor spends on the website the greater chances of the visit being converted into a lead. 

2.  Keep the Sitemap Updated

A sitemap is an important file that provides critical information about the pages, videos, images, assets, and other files that are on a website. Sitemaps help search engines to crawl the website. They also provides an indication of which web pages and files are most important. This is a key factor in prioritization on the SERP. Having a sitemap that is continuously updated helps search engines quickly detect and crawl new pages. The sooner that search engines can find your webpage the sooner that page can generate more organic traffic.

Free tools such as Google Search Console or Bing Webmaster help to monitor websites for website indexing issues, coverage, or sitemap crawl issues. There are plenty of modules available for Drupal websites to build and automatically update sitemaps that can be submitted to Google Search Console and Bing Webmaster tool. Similarly, WordPress websites also have the option to install plug-ins that can also create and automatically update sitemaps.

3. Design for Web Accessibility

Continuously designing and updating a website for accessibility can also have a significant impact on SEO. Here are three quick  facts concerning the SEO and web accessibility connection:

  • Search engines also scan the alt text designed for the screen readers that visually impaired users rely upon.
  • Both screen readers and search engines scan title tags.
  • Both screen readers and search engines rely on meaningful html header hierarchies. 

Attention to SEO principles and guidelines not only results in higher search engine rankings, it also ensures that your site is accessible to a broader audience of users with disabilities. 

4. Keep Track of Keywords

Identifying and tracking relevant keywords on a website can help to gauge the performance of the content relative to search page rankings. Tracking keywords will also reveal opportunities that can be targeted with new content, as well as help in building content strategy and that is relevant to the target audience.

5. Pay Attention to Site Speed

Site speed is a factor is search page rankings, and continually monitoring for site speed will help detect problems before they can negatively impact rankings.

Best Practices for Optimizing Site Speed
  • Reduce Image Size: Reducing Image sizes can help improve page loading times and performance.
  • Minify CSS, JavaScript, and HTML: Optimize page code by removing unnecessary spaces, commas, and other characters.
  • Minimize Redirects: Minimize the number of unnecessary redirects that are needed to reach a page.
  • Enable Compression: GZIP Compression can greatly reduce page loading times.


A Constant Focus on SEO

As search engines are becoming increasingly intelligent and the competition for high page rankings intensifies, a sharpened focus on SEO is an essential  exercise for staying in the game, with a competitive edge and meaningful insight into audience behavior.

At Promet Source, SEO is integrated into our multi-faceted approach for developing great websites. Looking for tips and techniques to improve SEO and build in continuous monitoring for optimal impact? Contact us today.

Aug 04 2020
Aug 04

Drupal allows the creation of multivalue fields. Wouldn’t it be useful to have a way to enter all the values for that field as comma separated values? I wrote a module for that.

This video shows the how to configure a textfield to accept comma separated values that are interpreted as multiple values for the field. Learn more at Comma Separated String Widget.

[embedded content]


Step 1

Configure your text field to use the new widget. Screenshot of the configuration

Step 2

Profit. Screenshot of the widget

Photo by Brook Anderson on Unsplash

Aug 03 2020
Aug 03

If you are using shared web hosting for your composer managed Drupal website, you have probably ran into the problem of your server running out of memory for simple commands such as "composer install". Shared web hosting usually have memory limits which are shared across many websites.

This problem becomes quickly apparent if you are trying to install a new Drupal website into your shared hosting account. Because this is probably the first time that you have to run "composer install" for this website. Composer will then have to go and fetch all the files and download them into your vendor directory. The high memory consumption in composer is mostly due to dependency resolution. This process is memory intensive. The end result is your process is abruptly killed without finishing.


A quick and easy solution is to install the site locally whereby you can successfully run "composer install". You would then have the vendor directory locally. Then use a service like FTP to manually upload the vendor folder into the correct directory on your hosting server. Then on your hosting server, try running "composer install" again. 

At this point, composer would not need to fetch all the files again. Composer may or may not have to update some files in the vendor directory. This is OK. But the process should now be able to complete within your memory limitations.

It should be noted that the vendor directory should not be committed to your git directory for a few important reasons. 

There are arguments for and against committing the vendor directory. It is not technically wrong but there some risks associated with it. The recommendation about not committing /vendor to the git repo is mostly related to avoiding headaches with git submodules (duplicated history, etc). The composer docs page shows some ways that you can prevent hitting those.

Jul 29 2020
Jul 29
Drupal key_value_expire Table is very large because of Honeypot Module

I had a very large key_value_expire table, even though Honeypot module had been uninstalled.

markconroy Wed, 07/29/2020 - 19:52
Jul 27 2020
Jul 27

Following the previous post, in this article I wanted to share again some guidelines for debugging Drupal Migrations. While in the last article I wrote down some questions about modules, plugins and configuration object management, in this case I felt like stopping at something more “code-oriented”, more specific. I have chosen for this article some guidelines to configure Xdebug in an IDE (in this case I have used PHPStorm) for migrations running in a locally deployed Drupal using DDEV. With the aim of debugging a Migration process -although actually the process is similar for any other development, since it is something certainly transversal-, here I share with you my fifth article about migrations at Drupal. I hope you find it useful.

Picture from Unsplash, user Krzysztof Niewolny, @epan5

Table of Contents

1- Introduction to Xdebug
2- Xdebug for DDEV
3- Steps for seeting up the IDE
4- Errors launching Drush in containers
5- :wq!

This article is part of a series of posts about Drupal Migrations:

1- Drupal Migrations (I): Basic Resources

2- Drupal Migrations (II): Examples

3- Drupal Migrations (III): Migrating from Google Spreadsheet

4- Drupal Migrations (IV): Debugging Migrations First Part

5- Drupal Migrations (V): Debugging Migrations-II

1- Introduction to Xdebug

In this section we’re going to share some debugging tactics for our migrations that can complement the actions discussed in the previous article: we already know how to check the configuration files, how to use certain processing plugins to extract information from the process and at this moment we’re going to add the third piece to the construction: how to debug the operation of a migration from the point of view of the related code, that is, through the PHP classes involved in all the mechanics.

Xdebug is a classic PHP extension that in its simplest dimension, allows us to track variables from the code to see their values through the execution flows of your software. In this post we won’t stop to explain how to install, configure and manage Xdebug in general terms, but we can be interested in a particular case: in order to run your local Drupal installations and test your migrations, you can use DDEV, a tool for creating local development environments based on Docker containers that already has a pre-installation of Xdebug ready to use.

DDEV avoids having to implement classic LAMP environments by compartmentalizing networks of Docker containers already pre-configured with all the development tools already included, including Xdebug. Here you can find more information, articles and resources about the tool:

2- Xdebug for DDEV

Accepting the premise that we are in a environment build with DDEV, the activation of Xdebug can easily be done in two ways:

Either by editing the config.yaml file in the .ddev resource folder, path: your_project/.ddev/config.yaml, where you can activate xdebug on line 9 of the file:

DDEV enabling Xdebug

Or by command line, using the DDEV-related commands outside the container:

ddev exec enable_xdebug
ddev exec disable_xdebug

Or also:

ddev xdebug
ddev xdebug on
ddev xdebug off

The above commands will serve to activate and deactivate the resource (for performance reasons, the initial state of Xdebug in a DDEV installation is deactivated by default). Since Xdebug is a server-side tool, it is already in the container acting as a web server and requires no further configuration. It’s just a matter of preparing our usual IDE.

In essence, any IDE works the same way with Xdebug: it listens on a port and reacts as soon as it receives an input. Xdebug usually uses port 9000, and for each IDE there are some configuration examples that you can follow here:

And the basic technique was already exposed at the time by the PHPStorm team (Now I’m using PHPStorm for this example): https://blog.jetbrains.com/phpstorm/2012/03/new-in-4-0-easier-debugging-of-remote-php-command-line-scripts/.

3- Steps for setting up the IDE

Let’s look at some basic steps of setting up Xdebug in the PHPStorm IDE, although the philosophy behind it in others like VSCode is just the same.
The first idea is that by activating Xdebug, we’ll have it available for any PHP script running from the command line. This makes it especially valuable for debugging Drush or Drupal Console (Old and abandoned Drupal Console, BTW) . In this case, we also add the enormous facilitation of automated activation already in Xdebug in local DDEV-based deployments, so we add a lot of facilities to debug our migration.

Let’s take the next steps:

DDEV enabling Xdebug Server

1- Server for the project

Open the Server configuration for your project: go to File-> Settings -> Languages & Frameworks -> PHP -> Servers and create a new Server in the side menu. Give it a name (it will be easier if you use the name of your DDEV deployment for the project). Add port 80 and activate Xdebug as debugger.

2- Initial setup

When using PHPStorm non-locally, we need to set up an “external” server and map the project files. In the case of not being in a classic LAMP environment (that would be local environment), we will need to make this configuration (Docker or DDEV suppose a non-local way of deployment in some way). DDEV serves the Drupal installation files from within its web container, starting with /var/www/html/ but the files are located locally within a typical /home/user/folder/projects/my_project path, so we will load this file mapping.

3- Listening Debug connections

Activate the active listening button for debugging.

4- Load environment variable in the container

For this we have two options. We can either load it for each debugging session, entering it into the DDEV container using the ddev ssh instruction and then loading the environment variable from inside the web container with the next instruction, just execute:
export PHP_IDE_CONFIG="serverName=your.project.name.ddev.site"

You can also permanently load the environment variable by creating a companion file in the .ddev/ folder of the project, a docker-compose.env.yaml file that is located next to the other docker-compose related files from the DDEV configuration, with the content:

version: '3.6'
     - PHP_IDE_CONFIG=serverName=your.project.name.ddev.site

This file will be merged with the other files when you restarting the project container network (ddev start / ddev stop) and the variable will be loaded more persistently and automatically.

5- Breakpoints

We can then try to place various breakpoints along the code involved in a migration. For example, for processing that does not require transformation treatment (only the transfer from a source to a destination), we already know that a Process Plugin provided by default by the Migrate API is used: the Get.php class, present in /core/modules/migrate/src/Plugin/migrate/process/Get.php and in this case we can insert some breakpoints in what will be a safe place for certain migration examples: for example in the transform() method of the class (line 106):

DDEV enabling Xdebug with breakpoints

4- Errors launching Drush in containers

When we have the IDE in active listening for debugging, some breakpoints strategically located and we launch some Drush command in the context of DDEV, it is possible that when executing Drush commands, from the IDE we receive an error about the mapping of files associated to Drush. Without meaning to, it is executed on the global Drush launcher of the container, installed in the path /usr/local/bin/drush (of the operating system of the web container).

DDEV enabling Xdebug Drush mapping in containers

In that case, we have two options:

Ỳou can run drush directly on the /vendor address of the project (which is mapped in the previous configuration of our remote server), using the forms:

  • From outside the container: ddev exec /vendor/bin/drush migrate-status
  • From inside the container (ddev ssh): /vendor/bin/drush migrate-status

Another option is recommended by Randy Fay, @randyfay (one of the creators of DDEV) in the commentary to this Github issue:

That is, take advantage of the Drush command example as usually described in the drush.example file in the path /your-name-project/.ddev/commands/web/ and modify the Drush use case it contains by directly placing the previous path to the project vendor, going from :
drush [email protected] to: /var/www/html/vendor/bin/drush [email protected]

This will allow us to run debugging with Xdebug for our migrations in DDEV environments. Here you can find more information about it:

Now you can run your migration with all the safety and comfort! You can now launch your migration-related Drush commands and get the expected feedback from your breakpoints&mldr;start debugging your migration.

5- :wq!

[embedded content]

Jul 22 2020
Jul 22

Last week the community had its first online DrupalCon Global. It was a great experience for our team--better than many of us expected it to be. We posted daily summaries of our session notes and comments on the event last week for Day 1, Day 2, and Day 3. Our team also took part in the Friday Contribution Day as well, with most of our work focused on preparing contributed modules for Drupal 9, the Help Topics project, and documentation.

Now that we've had a bit of time to recover from the flurry of last week's activities, we want to share our overall impressions.

Contribution Day

While the sessions for the main conference were hosted on the Hopin.to platform, the community contribution work was managed using the Drupal-based Open Social platform. This let different groups manage their communication and organize in one central location so attendees could browse through the various contribution options.

Blake spent time working on preparing contributed modules for Drupal 9, and he said "I was really impressed with the tooling that's available to help module maintainers with the process (the Upgrade Status tool in particular)."

Amber is a lead for the Help Topics project,

It was really great to work on some Help Topics issue triage and writing on Friday. I had fun playing cheerleader and recruiting help. And I also got some writing in! It's been hard to make time for the module this year and it was great to set aside a day to work on it. Incidentally, I feel recharged and more motivated to work on community tasks after DrupalCon. (One of the benefits of DrupalCon in general, I think.)

How did this compare to other conferences?

Most of our team has attended in-person DrupalCons in the past, and some people have attended other online conferences, especially this year. It's interesting to look at the pros and cons of DrupalCon Global in that context. We really liked attending from the comfort of home and while we missed the intense socializing, we also appreciated getting a break and being able to recover our energy for each day of sessions. It has a different energy from in-person events, but different isn't bad.

Philippa summed it up,

No matter how good, conferences can be exhausting. While I would have preferred the opportunity to socialize more with the community face to face, I really liked the digital session format. It enabled me to attend more sessions and absorb more information than a live conference where I struggle with feeling overwhelmed.

Another advantage of the online event is not having to worry about overcrowded sessions. Switching back and forth between sessions was also easy, making it possible to attend more sessions and find topics that grabbed your interest in a given slot.

With the socializing and networking requiring more active effort, there was also a feeling of this being easier at an online conference where you already know some people. While this is also true at in-person events, the extra work to meet new people felt like a much bigger barrier at other conferences, and was less likely to happen. Running into people we knew from the community or other events in chat rooms made this event feel more comfortable from the start.

We also liked the Hopin.to platform. While few of us were brave enough to click on the Networking button (which puts you into a direct message with another attendee who wants to chat too), we found that the platform was easy to navigate and the addition of the chat to each session, as well as the event in general, was a nice perk. It allowed participants to engage with each other, ask and answer questions, provide links, and generally added to the experience. It could be distracting at times, but you can close the chat window in those instances. The chats were beneficial enough that we wouldn't mind seeing something like this added to in-person events as well.

One thing that was notably missing at this DrupalCon was access to the recorded sessions shortly after they were presented. At a regular DrupalCon, the session would be uploaded to the Drupal Association YouTube channel very quickly. Given the time zone issues and scheduling, many (most?) people missed sessions because it was simply not a good time locally. The lack of quick video availability made it feel like the entire conference was not accessible. However, we understand that, given the nature of this conference, it made sense to not "give it away for free" so quickly. We'll also note that the videos from the sessions will be made available on YouTube for the community in September.

Our favorite sessions

There were a lot of good sessions. Here are some of our favorites:


The Olivero theme: Turning a wild idea into a core initiative and Designing for Chaos: The design process behind Olivero

What I liked most about these back-to-back sessions was the storytelling format that brought substance to abstraction in a way that proved very illuminating for me. Explaining how Olivero was conceptualized - from its beginning as a passing conversation at a previous DrupalCon to its current place as a core initiative was super compelling. Specifically, and from a content strategy standpoint, I was very interested in learning about how they defined the scope of such a large project, and how accessibility and simplicity were major conceptual drivers to reign the project in.


The Performance & Scaling Summit was a really good refresher on some of the tools and techniques I should be using on a regular basis as a status check on our sites. I'm guilty of not being as proactive as I could be in this department, so it was nice to see how I could do a better job of integrating profiling into my development process on a more consistent basis.


Shift Left: Addressing Digital Inequity for the Black Community contained a lot of good food for thought. It's a session I plan on re-watching when the recording becomes available. (See our notes and impressions in DrupalCon Global Day 3.


I was really happy with the number of sessions that specifically addressed diversity and inclusion, and in general the human part of technology. I liked the groundwork laid in How to improve psychological safety in your organization, which had lots of good resources for teams of different sizes. In addition to Amber's pick of Shift Left, I also learned a lot in the Software for a diverse community starts with a diverse team and Trans Drupal: Designing with transgender users in mind sessions.

Summary review

This was a great conference. It was well run and had high quality sessions for a very wide range of interests and skills. We're impressed with the quality of the event, especially given the circumstances for it coming about online, and the short timeline that the Drupal Association and volunteer team had to pull this off.

While in-person conferences tend to be more about socializing and networking for many of us, the online venue drew us more into the sessions themselves. We all managed to consume and be able to engage with the material better at DrupalCon Global. We do miss the social time and the serendipity of in-person events, but there's no reason both kinds of events can't become part of the community's future event list.

Did you attend? We'd love to hear your thoughts in the comment section.

Jul 21 2020
Jul 21

This blog has been re-posted and edited with permission from Dries Buytaert's blog.

DrupalCon Global Driesnote presentation

Last week, Drupalists from around the world gathered for DrupalCon Global. This DrupalCon was the first ever virtual event of this scale for the Drupal community.

As a matter of tradition, I delivered the opening keynote. You can watch a video recording of my keynotedownload a copy of my slides (212 MB), or read the brief summary below.

A screenshot of the first ever virtual DriesNote. The virtual conference tool showed my slides, my webcam, and real-time chat.
A screenshot of the first ever virtual DriesNote. The virtual conference tool showed my slides, my webcam, and real-time chat.

I announced that we are targeting the release of Drupal 10 around June 2022.

Next, I spent the majority of my presentation proposing five strategic initiatives for Drupal 10. While it seems early to speak about Drupal 10, we need to start working on these strategic goals now to have them ready by the time Drupal 10 is released.

The goal of my presentation was to propose five well-balanced initiatives for Drupal 10.
The goal of my presentation was to propose five well-balanced initiatives for Drupal 10.

We decided to go with just five initiatives so we're more focused and because the Drupal 10 release cycle will be shorter than Drupal 9's. Selecting only five initiatives was hard. I spent 35 minutes walking the audience through the selection process. The five proposed initiatives:

  1. Drupal 10 readiness
  2. An easier out-of-the-box experience
  3. A new front-end theme (Olivero)
  4. Automated updates for security releases
  5. An official JS menu component for React and Vue

1. Drupal 10 readiness

Drupal depends on third-party software components, many of which will go end-of-life (EOL) in the next few years. When a component goes EOL, it will no longer receive security support.

The "Drupal 10 Readiness" initiative will focus on upgrading these third-party components. Not only does this keep Drupal secure, it also allows us to take advantage of any new capabilities that come with these updated components.

Some of the third-party components that need to be updated in preparation for Drupal 10.
Some of the third-party components that need to be updated in preparation for Drupal 10.

2. Easy out-of-the-box

Improving Drupal's ease-of-use remains the number one most impactful item for the community to work on.

Drupal 9 dramatically improved Drupal's ease-of-use. Several of our most promising improvements made it very far, but still need some finishing touches. Specifically, our new Media Library, Layout Builder and Administration Theme (Claro) are not yet enabled by default.

I proposed the "Easy out-of-the-box" initiative to work towards enabling these features by default. I believe this initiative will be very impactful in terms of attracting new users to Drupal.

The 'Easy out of the box' initiative consists of finishing Media, Layout Builder and Claro.
The 'Easy out of the box' initiative consists of finishing Media, Layout Builder and Claro.

3. Front end theme

One of the most important features to complete is our modern front end theme, Olivero. While there has been a lot of progress in this area, Olivero does not ship with Drupal yet. We want to make sure this beautiful front end theme is available by default.

A screenshot of the upcoming front-end theme called Olivero.
A screenshot of the upcoming front-end theme called Olivero.

4. Automatic updates

As shown by the Drupal 2020 Product Survey, by far the most requested feature is automated updates.

Fortunately, it's something we have been working on for some time. Our first milestone will be to automate security updates so all site owners can sleep well at night, no matter when security releases are taking place.

Beyond security, automated updates help us work towards our long-term vision of building a composable — or Assembed Web — architecture for Drupal.

The four major architectural building blocks of the Automated Updates initiative.
The four major architectural building blocks of the Automated Updates initiative.

5. JavaScript menu component

As I have been saying for years now, many websites are evolving into personalized, omnichannel digital experiences. It's a multi-decade trend, and one of the most powerful ones in our industry.

Drupal needs to keep evolving with this trend in mind. On the back end, we need to continue to make Drupal the best structured data engine and web service platform. On the front end, JavaScript continues to grow fast. While Drupal is recognized as a capable headless or decoupled CMS, there is still more we can do.

Furthermore, the second most requested feature in the Drupal 2020 Product Survey was a more modern administration UI. These kinds of UIs are typically built using JavaScript and web service APIs. When done well, a JavaScript UI can offer major usability improvements.

Clearly, there is more than one reason to invest in web service APIs and to embrace more JavaScript in Drupal:

  1. Many of Drupal's end users are focused on building decoupled front ends and omnichannel digital experiences.
  2. Drupal could improve its own administration UI with more WYSIWYG, drag-and-drop, and other ease-of-use features.

To make a start toward improving Drupal's headless capabilities and administration UI, I proposed we start to add official Drupal JavaScript components to Drupal Core.

As a first step, I recommended implementing a JavaScript menu component in Vue and React. This would mark the first official JavaScript component in Drupal.

'Planting the flag' for providing official JavaScript menu components for Drupal.
'Planting the flag' for providing official JavaScript menu components for Drupal.

Developing a JavaScript menu component solves a very real problem that many front end developers face. This menu component would render a menu and could be placed in a front end JavaScript application. The content of the menu comes from Drupal. This would allow content authors and non-developers to make simple menu changes without the need for custom code.

Releasing a first official JavaScript component will require us to set up the tools and processes to manage and release JavaScript components. This will establish a pattern or recipe for more components. Once we build one component, it will be easier to add many more in parallel.

The path to having a first official JavaScript component is longer than it may appear.
The path to having a first official JavaScript component is longer than it may appear.

Let's do this!

A fictitious or forward-looking press release for Drupal 10 in June 2022.
A fictitious or forward-looking press release for Drupal 10 in June 2022.

With the release of Drupal 10 targeted for June 2022, our community has a big opportunity to make the beginner and non-developer experiences much simpler, while still keeping Drupal's power as strong as ever for experts. I believe the proposed strategic initiatives will help achieve that.

For more details, I recommend you watch the recording of my presentation.

Whether you're just getting started with Drupal or have been here for years, we want you to contribute to Drupal 10! The best way to get involved in any of these initiatives is to join their discussion channels on Drupal Slack:

  • Drupal 10 readiness: #d10readiness
  • Claro: #admin-ui
  • Olivero: #d9-theme
  • Automated updates: #autoupdates
  • JS Menu Component: #js-menu-component

Thank you to everyone who attended the very first Drupalcon Global and contributed to the event's success. Even though we were unable to meet in person, I was blown away by the energy of everyone involved, and grateful for the time to connect with old and new friends.

Jul 21 2020
Jul 21

By now, the need to make digital experiences accessible to everyone has become one of the main tenets of the digital industry - if not before, then definitely in light of recent accessibility cases (e.g. Domino’s). 

Truth be told, there are a lot of reasons why everyone should prioritize accessibility, if possible from the very start of a project, as it is typically more costly (and less effective!) to make accessibility fixes later on than following accessibility guidelines from the get-go. 

This post, however, will not focus on how to make your sites and applications accessible, or on different types of disabilities and the corresponding measures. Instead, it will present the most important reasons why accessibility is good for business. Let’s get started.

1. Legal

If you work in digital, you’ve no doubt at least heard of the recent Domino’s accessibility case. While physical accessibility has been a legal need for U.S. businesses since 1990, the ubiquity of digital has necessitated that the same laws be applied to digital accessibility as well.

It was, then, the just mentioned case of Domino’s in October of last year which served as the turning point, with the U.S. Supreme Court ruling in favor of Guillermo Robles and declaring that any digital platform which is tied to a physical location providing goods or services should also comply with accessibility standards.

This means that digital accessibility is now a much less ambiguous field, and there can be serious legal repercussions for businesses that aren’t accessibility-compliant. Therefore, you should strive for at least the basic level of compliance if you want to avoid potential risks of legal action.

2. Reputation

Besides the legal ramifications, the new accessibility ruling can also greatly affect the reputation of a business. Just think about it: in the eyes of quite a lot of people, Domino’s will likely forever be remembered as the brand that argued against the basic rights of a blind man - and lost.

Luckily, just as bad accessibility practices damage your reputation, good ones can actually aid it. If you make an effort to go above and beyond to truly serve all of your customers and users, it will make your brand stand out not just in the eyes of the users that directly benefit from accessibility, but also those that most value social impact.

Conveniently, the two audiences that hold a brand’s commitment to doing things right in the highest esteem are exactly the ones that form the biggest proportion of the global consumer base: Millennials and Generation Z. 

As these customers are the ones that are most likely to abandon a brand due to exposed bad practices, delivering subpar experiences potentially means losing out on a significant percentage of customers. 

3. Inclusivity

Closely tied to the previous two reasons, inclusivity is another important factor to the importance of digital accessibility. The beauty and power of the internet lie in the fact that it is - supposedly - for everyone; every user should be able to have access to websites and web applications. 

Just imagine how you’d feel if you weren’t able to do something on the internet, something that likely most of your peers would have no problem doing, simply due to something outside your control which probably also poses certain challenges in other aspects of your life, not just the digital.

In this case, you’d definitely feel welcome and pleased that somebody has made the effort to give you the best possible experience, even if it meant working a little longer or planning a little more thoroughly.

So, in short: we have to internalize the understanding of the web being for everyone, and then design and develop our digital experiences with this always top of mind. Only then can we make sure that we’re really including all of our users. 

4. User Experience

Ultimately, accessibility is about user experience. Where UX is only focused on a user for whom it is assumed not to have any disability, accessibility doesn’t make any such assumptions. It treats all users equally, and understands that features which are intended for users with disabilities actually improve the overall user experience.

And it’s not only that the best user experience is accessible - accessibility is in fact a prerequisite for calling something a user experience. By not making sites and apps accessible, you automatically exclude a large portion of your users by preventing them from having a comparable experience to users without any disability.

There’s an interesting acronym for user experiences that only focus on some users while excluding others: SUX (Some User Experience) - and that’s exactly what it does. It sucks not to be included.

Close-up of an eye with colorful lens/overlay

5. SEO

You probably know that SEO has come a long way from the shady tactics from olden days, e.g. keyword stuffing and the like. Algorithms are constantly being tweaked, and even the SEO experts need to make a bit of an effort to keep up. 

As Google wants to deliver only the best search results to its users, search engine crawlers are also interested in the user experience of your website and rank it according to its usability. And, as we just covered under section 4, you can’t have true user experience without accessibility.

Or, to put it another way: accessibility will boost your UX, which will boost your SEO efforts, which will boost your ranking, which will improve your overall brand. This indicates a direct positive correlation between commitment to accessibility and SERP ranking. 

6. Coding standards

Another benefit of implementing accessibility from the get-go is the fact that it necessitates a strict adherence to proper coding standards. The code thus produced is overall cleaner and more performant, its being accessible is just additional value.

Using semantic HTML, structuring headings correctly, making sure that elements are focusable - these are all seemingly minor things which hence often slip under the radar, but are nevertheless essential to accessibility. 

7. It’s just the right thing to do!

The previous 6 reasons all amount to one main one: building sites and apps that are accessible is just the right thing to do! Just like you would hold open the door for your elderly neighbor who has trouble walking, you’d want to extend that same courtesy to everyone who wishes to enter your digital environment. 

And this doesn’t even have to be for ethical/moral reasons - even if business outcomes are your number one priority, you’d naturally want as many users and/or customers as possible. Preventing people from purchasing your products or using your services would be the near equivalent of shooting yourself in the foot.


This blog post has attempted to show the importance of accessibility and the business value of making it an integral part of design and development, rather than just a necessary but cumbersome afterthought. 

As we have pointed out, there are many aspects in which prioritizing accessibility benefits a business, ranging from legal obligation to basic compassion for other human beings. With a higher and higher focus placed on accessibility, it’s good to also be aware of the value it brings in addition to knowing the efforts and skills required to implement it. 

For those who want to learn more about accessibility standards, types of disabilities and some basic guidelines, we're also sharing the slides from a recent AgileTalk given by two of our accessibility-focused developers.

If your site is built with the Drupal CMS, check out which modules can help boost its accessibility

If you have more complicated accessibility issues you need resolved, contact us and we can craft an accessibility-focused team of developers that will help you take care of these issues.

Jul 19 2020
Jul 19

Many enterprises use Drupal for the flexibility it offers. This comes at a cost, every Drupal site is very different from each other. Patterns emerge that are not reused or standarized across different projects.

This video proposes a code structure and workflow when working around entities with Typed Entity. This has helped me in the past to achieve more maintainability and modularity in my Drupal projects.

[embedded content]

Photo by Neven Krcmarek on Unsplash

Jul 17 2020
Jul 17

Well, day 3 of DrupalCon Global delivered again. It's been a whirlwind 3 days full of good content and meeting lots of people new and old. Blake captured the general feeling of this 'Con:

I was very skeptical of a virtual DrupalCon (especially as someone who didn't attend at all last year). Although I missed the first day, I'm really glad I had the time and opportunity to engage with the event. Seeing so many new faces presenting was also wonderful. DrupalCon Global was a great way to reconnect with folks in the community, and still be able to have dinner with my family in the evenings. Two thumbs up, would attend again.

Contribution Day

While sessions are over, don't forget that today, Friday, is the traditional contribution day. You'll need to sign up on the DrupalCon Global Contributions Room site, and it's open to everyone--no DrupalCon ticket required. There are many different kinds of groups that require a wide range of skills, with plenty of space for non-coders. If you're not sure how to get started, there is a page that explains how to take part in Mentored Contribution, which will walk you through the whole process.


Although we were definitely starting to feel some day 3 brain overload, there were some really good ones on this last day of the session schedule. Our teammates Amber Matz and Joe Shindelar also presented on Thursday, so make sure to check those out when the videos come up.

Amber's session: Deep dive: state of Drupal (Link to slides with presenter notes)

Joe's session: Altering, extending, and enhancing Drupal (Link to session resources)

Here are the random notes and summaries from the sessions we attended yesterday.

The Olivero theme: Turning a wild idea into a core initiative

  • Drupal core ideas is a great place to find collaborators, and share ideas for potential projects
  • Documentation, identifying stakeholders, and having diverse skillsets on the team were key to the project's success.
  • Building a static POC on Netlify, and using Tugboat allowed folks to get involved and contribute earlier than if they had gone straight to a Drupal theme.
  • Drawing the line between must haves and nice to haves was important to maintain project momentum and contributors' mental health

Designing for Chaos: The design process behind Olivero

  • The main motivation for Olivero: to create a better first impression with Drupal
  • The team named the theme in honor of Rachel Olivero, who worked at the National Federation of the Blind, and who was committed to making tech accessible to all people
  • Validating the design: "The first draft of anything is shit"- Ernest Hemingway
  • The flaw of averages: If you want to design something for an individual human being, the average is completely useless. We learned how the designers worked to avoid it.
  • Spectrum analysis that was used to establish voice and tone (formal, bright, approachable, high contrast)
  • In order to be able to iterate more quickly, the team defined a core set of stakeholders to help with initial designs before showing it to the general community. This helped eliminate low hanging fruit issues (e.g. broken accessibility) that would have been blockers, no matter what. It also allowed the broader community to keep the discussion focused on the bigger picture.
  • Cool use of Invision app to allow stakeholders to rank things on a scale. They created an image with lines and good ---------------- bad and then people could leave comments in Invision somewhere along the line. Since comments show as little red circles you could clearly see ranking. And discussions could take place in the comment threads.

(Philippa) As a non-tech person, what I liked about both Olivero presentations was how they laid out the thought processes linking the idea to the core initiative, and how they advocated for the idea that led to the new default front-end theme for Drupal 9.

Intermission: Desk yoga with Gabrielle Rickman

Sooo good. While some people on the team opted for a breakfast intermission, others got a very nice break of stretches to do from the chair. Useful for any conference, but extra refreshing at an online event.

Driving today's CMS with tomorrow's artificial intelligence

  • Machine learning is a subset of artificial intelligence and isn't smart enough to evolve itself.
  • Uses in business:
    • Advanced automated interaction with customers
    • Identifying patterns in behavior
  • Where can Drupal use this?
    • Content moderation
    • Analyze customer mood
    • SEO
    • Chatbots
    • Personalization
    • Visual search
  • How do you do this? Are you ready? Do you have a plan for this in your org?
  • APIs to use
    • Azure Cognitive Services API (multiple APIs: vision, speech, etc.)
    • Google Vision API (this is much bigger than the Azure Vision API)
    • Drupal modules exist for these APIs
  • Really neat to see examples of how this can be used for content management. Nice live demo and some really cool things you can help automate.

Open source belongs in school--Let's put it there!

A presentation by a teacher and his students, The Penguin Corps, about how they are using Open Source. Led by the students.

Software for a diverse community starts with a diverse team

Highly recommended. Really great session that addresses a lot of questions about diversity AND inclusion, and looks at how to create inclusive work agreements with clients and vendors.

MagMutual.com: On the JAMStack with Gatsby and Drupal 8

  • Decoupled architecture
    • volatility based decomposition of feature requirements
    • Drupal (CMS) / Gatsby (Website) / Serverless (AWS Deployment) / Bus. Logic (Lambda) / Apollo GraphQL (User Data) / ElasticSearch (Search) / Auth0 (User Identity)
    • Briefly walked through the features and benefits of each of these components
    • (notes for our potential future use: Drupal Elasticsearch AWS connector module, AWS lambda rate limiting, Gatsby searchkit plugin)
    • Serverless framework: not really used on live code, but helped with (by allowing folks to avoid using AWS console)
      • deployment
      • mocking
      • testing
      • logging
      • local development
      • project structure
    • Living with it - ongoing support
      • harder to debug integration points, more things to support, onboarding
      • Apollo GraphQL is a huge win (helps set up data structure schema, and force thinking about it), improved performance, adding new design assets is faster

Shift Left: Addressing Digital Inequity for the Black Community

Another highly recommended session. We'll be watching this again when the video goes up.

  • Designing tech for people without a detailed and rigorous study of people makes the kinds of tech designs that we see come at the expense of people of color and women (rough quote from Algorithms of Oppression)
  • Understanding the effects of systematic dehumanization of Black individuals
    • Sylvia Wynter (No Humans Involved)
    • Aime Cesaire (Discourse on Colonialism)
  • Hegemony's role determines which products are created, and which problems are prioritized
  • The continued exclusion of Black people from technical creation
    • Blackness as an afterthought (film)
    • Black input is consistently missing from product development (2.5% of employees at Google 2018, 3.3% of technical employees at Microsoft 2019)
    • Double Consciousness
  • The Digital Divide
    • Having less access to technical skill development enhances the divide, and makes being part of solving the problem through product creation more difficult
    • Beware software, PredPol algorithmic biases & flawed training data in machine learning systems leading to systemic injustices
  • How can we move forward?
    • Reframe perspectives (equitable and fair predictive algorithms)
    • Actually address the issues
    • Intentionally carve space - tokenism and quick fixes won't solve lack of equity

Hacking live! A realtime look at website security

  • Don't trust user input, even admin form input.
  • Use Form API. It provides XSS cleanup on output by default. (Drupalize.Me tutorials: Forms (Form API))
  • Avoid using the raw filter in Twig. (Twig auto-escapes strings and the raw filter removes that safety net.) (Drupalize.Me tutorials: Twig Filters and Functions)
  • XSS exploits can be stored both in cache and database. (Sanitize output that is coming from a cache.)
  • DDOS (Distributed Denial of Service). Hitting a page with a slow function at a large scale (relatively speaking) can take the site down.
    • Limit form submissions to prevent flooding.
    • Move slow functions to asynchronous queues.
  • Access Bypass
  • Use PHP CodeSniffer to Find Errors.
  • Module plug from the chat: Content-Security-Policy
  • Dries attended the session and he shared this link to his site: HTTP Headers Analyzer

Altering, extending, and enhancing Drupal

  • Check out Joe's resources
  • Don't hack core. (Alter and extend instead!)
  • Let others change your module, without hacking it. (This is super powerful!)
  • Ways to alter, extend Drupal:
    • Respond to an event (a user is logging in)
    • Drupal wants to a question (does anyone have a block they want to add to this list?)
    • Add code that adds new functionality
    • Make a change to existing functionality (change fields on a login form, for example)
  • Don't hack core. Instead use one of these systems.
    • hooks
    • plugins
    • services
    • events

Adapting your DE&I efforts to the reality of the crisis

Importance of creating safe spaces for people on your team to talk about their struggles and/or to get to know one another better. This could be through one-on-ones or regular online social events. (Physical distancing, not social distancing.)

Inclusive content strategy

"People want to be seen as equal participants and not afterthoughts."

  • (Philippa) LOVE that she called out hiring language that speaks to whether people are a good "culture fit" in businesses and organizations - because people shouldn't have to conform culturally - and how content that communicates aligned values is a great alternative.
  • Some of what inclusive content means:
    • Predictable structure, (like nesting and heading orders) for easy navigation
    • Color contrast/font/distinguishable links
    • Short sentences (9th grade reading level) and plain, jargon-free language
    • Bullets and number lists
    • Imagery with captions, subtitles, text alternatives (which also helps those with poor internet connections)
    • Closed or open captions - which also helps those whose first language isn't English
    • Minimizing or avoiding emoticons, which are hard for screen readers

Next week, we'll be posting a wrap-up of our overall DrupalCon experience, including today's contribution day. We hope you've had a great 'Con and hope to see you at the contribution day. If you see anyone from our team, please say hi!

Jul 16 2020
Jul 16

Drupal 7 to Drupal 8/9 migration is something that should bring a great value to your business. Numerous Drupal 8 improvements and the fully revamped architecture impressed everyone when the 8th version was released.

Since then, Drupal 8 kept rapidly improving with better admin usability, performance, accessibility, third-party integration, multi-language, and other most modern web practices. The 9th version arrived as an even cleaner version, boasting instant upgrades from D8, equipped with modern libraries to make sites faster, and with plenty of ambitious plans for future innovation.

You might be already tempted to migrate from Drupal 7 to Drupal 8 or 9, but there is something stopping you. You may ask yourself: how much time does it take and how much does it cost to migrate from Drupal 7 to Drupal 8/9?

This question will be answered on a case-by-case basis, but we will do our best to give you the estimated time and cost of Drupal 7 to Drupal 8/9 migration in this post.

Getting ready for your Drupal 7 to Drupal 8/9 migration

Migration is always a great chance to refresh or revamp your website in many ways. To make sure the upgrade brings you the best value, as well as help the development team give you more precise estimates of Drupal 7 to Drupal 8/9 migration, you will need to do a little preparation.

Rethink your business goals: what new priorities have appeared and how would you like your website to reflect them? And, vice versa, what is no longer relevant and should be cleaned up? Talk to your admins and content editors: what functionality is missing and what could be improved in order to speed up their routine tasks?

Based on this, developers will help you review your website’s modules, configuration, UX design, and more. Some things will “travel” to the next level, some things will be replaced by more modern alternatives, some things will be cleaned-up, and so on.

How much time does it take to upgrade from Drupal 7 to Drupal 8/9?

The simplest of brochure sites without custom modules and with just a couple of content types can be migrated within 30 hours. However, as the site complexity grows, the migration process extends. For some websites, it can take a couple of months. The larger, the more complex, and the more custom-heavy your site is, the longer it will take to migrate. Let’s see how it works.

  • Initialization. The essence of every Drupal 7 to Drupal 8/9 migration is to move your website’s configuration and content to the newly created clean site instance. Content includes blog posts, images, files, and similar elements, while configuration is about your content types, fields, views, comment types, and so on. Developers analyze all this and decide on the migration specifics. They also prepare a fresh Drupal destination site, update your source site to the latest minor version, enable the necessary modules, etc.
  • Custom module rewriting. An important point is that your website’s custom logic in the form of custom modules will need to be rewritten according to the Drupal 8/9 standards (object-oriented programming, or OOP). This might take up a lot of the migration time.
  • Automated or manual migration process. Thanks to the migration pack of modules, it’s possible to automate many standard processes. However, in many cases, manual recreation of elements (e.g. views) is also needed. To import the website’s data in various formats (XML, CSV, RSS, etc.), developers will need to define the source and the destination. Some projects require complex field mapping, which influences the time. If you need to reorganize the content structure, it will take more time as well.
  • Validation. When the data has been migrated, developers carefully check that there are no errors and that the fields have been correctly filled with the data.
  • Website launch. When everything is thoroughly checked, developers deploy your new and shiny Drupal 8 or 9 website to live.

That said, the number of hours it takes to migrate increases when:

  • You have many custom modules.
  • Your website has a lot of content types and content.
  • Your content types need to be reorganized (split, consolidated, etc.)
  • Your content is multilingual.
  • There are custom fields on your site.
  • There is a need to recreate many views.
  • You need a website redesign.
  • And so on.

It should be noted that, even in the most complex projects, the time of Drupal 7 to Drupal 8/9 migration can always be reduced if you wish. To achieve this, you can hire a larger number of developers to perform the migration.

How much does it cost to upgrade from Drupal 7 to Drupal 8/9?

The cost of the Drupal 7 to Drupal 8/9 migration will depend upon the time and the hourly rate. The hourly rates may differ across companies. InternetDevels, together with our support team Drudesk that specializes in migrations, charges $30 per hour on average.

So, if a simple brochure site takes 30 hours to upgrade from Drupal 7 to Drupal 8 or 9, the cost starts at $900. This looks very lucrative, doesn’t it?

Upgrade from Drupal 7 to Drupal 8 or 9!

Show your website to our Drupal migration and upgrade experts team to discover the exact time and cost of your Drupal 7 to Drupal 8/9 migration. Our high-efficiency approach will allow you to save a lot of hours and budget. We also offer something totally free — our consultation and our attention. Contact us!

Jul 16 2020
Jul 16

Enterprise-level businesses have very unique technical requirements that can prove to be complex due to the nature of their digital transformation requirements. For example:


Multilingual Digital Experiences

These businesses often need to communicate with a diverse global audience - 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 you 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.


Major enterprises have numerous domains or microsites dedicated to a particular audience or product. 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 iceberg when it come to building an engaging and open digital experience for an enterprise-grade business in today's digital world.

To gain more insight towards what it takes to transform such a project - you can download our ebook by filling out the form.

Jul 16 2020
Jul 16

Day 2 of DrupalCon Global was chock full of great presentations, and we also attended the 2 summits, Community and Performance & Scaling. Everyone has settled in to the platform and rhythm of the conference now, and it's been great catching up with friends and community colleagues.

As Amber says,

I'm enjoying DrupalCon Global more than I thought I would, to be honest. (Still bummed about missing a trip to Minneapolis!) But I'm learning a lot and reconnecting with what is going on with the project and in the community.

Here are our notes from day 2, which again, are not fully fleshed out, but highlight the things we found interesting or want to follow up on.


Drupal Initiatives Plenary

  • Great community initiatives to participate in. Quick overview of each one with some info about how to get involved.
  • Drupal Diversity and Inclusion (DDI) -
    • They have a booth in the Hopin Exhibit Hall if you want to learn more or chat with someone
    • Ideas for ways to take action
      • Read the Code of Conduct and understand it
      • Consider being an official CoC Contact
      • Speak up when you see a problem, prepare to disrupt harassment
      • Notice who is present; who's missing? Sponsor marginalized individuals
      • Management: Fix hiring, recruitment and pay gaps
      • Update your language

Single sign on across Drupal 8

  • Slides
  • A good walk through of the presenter's medium article on the same topic. Did a good job explaining the different components of a single sign on system, their role, and how to integrate Drupal at each point in the process.

Trans Drupal: Designing with transgender users in mind

  • Gender 101 and history
    • What is (personal) gender? The easiest answer is that it's whatever a person says theirs is
    • Social gender is a social organizing principle (e.g. men's and women's bathrooms)
  • All work is biased in some way - none of it is perfectly neutral
  • Words and images, be aware (find images on https://genderphotos.vice.com/ and https://getavataaars.com/)
  • Let people change their data, make sure it updates everywhere, and don't keep the old values (avoid deadnaming). Transition means a lot of different things and can happen at any time/over time. You want to get rid of old data completely so that it can't be resurfaced later.
  • Do you really need to track gender on your site? Why? If so, it's complicated to do.

Unit tests in Drupal: The road to test-driven development

  • Introduction to TDD
  • Live demo of the Red > Green > Refactor feedback loop using PHPUnit
  • Unit Test fundamentals & vocabulary

Dries Q&A

  • Make DX of Drupal better for devices with less power/RAM to increase adoption among students and others.
    • Any change we make to improve Drupal's DX/performance in this respect will both help lower end devices, but also benefit all sites. e.g. sidewalk curb cuts
  • Is there still a sizeable market for small businesses? Or are they moving to site-builder tools.
    • On the lower end of the market there are lot of competing technologies, and while Drupal can be used it's harder to convince people. vs. high end of the market there's less competition and more opportunity for Drupal to stand out.
  • Do you see online conferences becoming a permanent mix for the Drupal community going forward?
    • Dries: Likes that it lowers the travel barrier, and makes it more accessible to people
    • Dries: Misses seeing people in person, and misses human interaction, which Dries believes is an important part of what has made Drupal successful.
    • Heather: DA is committed to in-person, and doesn't see the desire for that going away. But, is open to exploring how virtual events can supplement in-person ones.
  • What unexpected things, positive and negative, have you observed about yourself and the community as a result of the COVID pandemic?
    • Good leadership is important in moments of crisis
    • Value of cooperation
  • How can we answer the criticism that Drupal is not popular and has a poor perception amongst developers in general
    • Drupal is so far ahead of the competition in a lot of ways that people just don't know about. e.g. caching and big pipe ... most devs have no idea about these things and their importance but benefit from them when they use Drupal. Also, Drupal is a model OSS community.
  • 3 biggest goals you have for the future of the product?
    • Adoption, ease of use, low cost of maintenance
    • Increase adoption to a point where it can be used as a wedge issue to promote the open web
    • See Drupal grow by making it easier to use, and lower the maintenance burden

Drupal.org panel

  • New Contributor Guide that aims to make it easier for contributors to on-board themselves and find things to work on
  • Lots of changes to packaging and stuff that happens behind that scenes that as an end user you probably don't care much about as long as it works but make a big difference for module maintainers and the security team
  • Issue Forks & Merge Requests - new tools for maintainers open for opt-in beta now, a Drupal.org implementation of something akin to GitHub pull requests. A bit improvement over the current .patch based workflow and will lower barrier to contributing to Drupal.org hosted projects. Mostly working on trying to iron out UI/UX issues before enabling it for all of contrib. And then core as well.
  • Future projects:
    • Federated login
    • Better telemetry
    • Upgrade Drupal 9
    • Packaging related to auto-updates initiative
    • Preparation to support the release of Drupal 10.

Drupal 9: New initiatives

A working session to discuss next steps for D9 initiatives. One major challenge for all initiatives is the need for people to help with project management and just general organizing of things. There was some talk about the proposed JavaScript menu component idea that was proposed in the Driesnote. Mostly recognizing that it requires better definition. Lots of agreement that keeping it limited in scope to something small and attainable is important. And, one of the primary goals is to create/demonstrate an on-ramp for JavaScript developers into the Drupal core community.

Looking to Drupal 10. Move everything to PHP8, and help/pressure upstream libraries to do the same. CKEditor is EOL, need to either update to new version or remove. jQuery related, it's probably time to convert to vanilla JS. Which also means removing jQuery UI, an maybe Backbone too? [meta] Release Drupal 10 in 2022

Easy out-of-the-box initiative needs a leader. And combines efforts from at least three other ongoing projects like Claro, and Olivero. Needs someone who can help with accessibility and focus on accessibility related issues within the initiative. Someone who cares about day-to-day users of Drupal and beginner experience.

Improving your onsite search

  • Making sure your Drupal site is optimized for both organic and onsite searching
  • Why onsite searching is important:
    • It presents your site as a reliable resource
    • It blocks out competitors, which may show up in a Google/Bing search
    • It increases a customer's satisfaction by validating the decision to be a customer.
  • How to make onsite searching a priority: Basically, you apply the same SEO/tagging/taxonomy/metadata/keyword principles that help optimize a site for organic searching.
  • Finally, you can use Google Analytics to learn what people using onsite search are looking for, and how they're phrasing those searches. This learning can be applied to future content creation.

Mind-blowing content planning in native Drupal

  • A great presentation from Lukas Fischer from Netnode about the nearly-released 1.0 version of the Content Planner module, a tool suite that helps plan editorial content calendars.
  • Lukas demoed how to download it, showed the module's flexible and configurable dashboard, (walking us through what types of views and widgets you could add), and made a strong case for why it should replace Google/Microsoft sheets and Trello (yup, that's us) for planning and managing content.

Drupal Security Team Q&A panel

  • Great info about what the Drupal Security Team does.
  • Highlight was Portland Drupal community member Sam Mortenson (https://twitter.com/mortensonsam) explaining how he, as a security researcher, finds bugs.

Sharing is caring: Don't hold your knowledge hostage

From squiggles to straight lines: Sketching discovery & UX

  • Marissa Epstein shared how she uses sketching in discovery and UX processes. In a world of perfectionism and over-engineering prototyping solutions, Marissa demonstrated how sketching is a great way to quickly flesh out ideas and get clients (and the whole team) on board and confident in the direction the site design is going.

Drupal Automatic Updates in action and in depth

  • This was my first time seeing a live demo of the Automatic Updates module. Really promising work here and there's a lot of work still to come in "Phase 2". This is one of the priorities for Drupal 10, as Dries explained in his Driesnote, so expect some great progress on this front.

Media in Drupal 8: everything you need to know

This was a really in-depth look at Media in Drupal 8. The presenter was one of the maintainers and did a live demo where he created media types and showed us all how to build and use Media Library. He used a fresh install of Drupal to walk us through each step and I found it very helpful. It was a great session for beginners and perhaps even some intermediate site builders looking to learn more about Media.


Community Summit

15-minute talks:

  • Events Organizer update - Baddy Breidert
    • Some history on this working group, where they are now, and how to get involved.
  • Cultivating the Drupal Community Mindfully - Matthew Tift - mindfulness is not for solving problems, but to rethink our relationship to problems; how mindfulness can help our community based on our values and principles; cultivating an intentional community by being present
  • If you want to cry, watch Mario Hernandez's presentation, Why teaching someone else is the best way to learn.
    • And a meaningful way to both lift others up and contribute to the community
  • The ROI of a Dedicated Community Person - Anne Stefanyk
    • Having a dedicated community person makes it easier for the rest of the team to make impactful contributions with the "short" amount of time they get on a weekly basis to contribute to OSS. The community person on the team can help the rest of the team keep up with what's going on, and allows them to jump in and contribute without having to spend a tone of time figuring out what's happened since I was here last week.
  • Be a good boss: How to support your marginalized colleagues - Tara King
    • Cute animal pics for a hard topic.
    • This topic has real, material impact on people's lives; it's not about looking good.
    • Being kind isn't good enough. What does "kind" mean for different people?
    • Actions to take:
      • Reflect on yourself
      • Slow down (speed and spontaneity is not inclusive) - "Go fast and break things might work for software, but it's never good for people."
      • Make space (for processing experiences)
      • Ask (don't assume, just ask)
      • Practice (being uncomfortable)
      • Culture add, not culture fit
      • Educate yourself (use the Googles)
      • Increase pay equity and transparency

Performance & Scaling Summit

  • Mike Herchel - front-end performance audit
    • WebPageTest is a useful (low overhead) tool to get started testing your site.
    • Lighthouse is another useful tool for profiling your site.
    • Continuously profiling your site, and being aware of where the slow parts are is 80% of the battle.
  • Janna Malikova - load testing your Drupal website before it's too late
  • Shane Thomas - Decoupled Performance
    • Decrease your JS bundle size
    • pay attention to your images
    • make use of browser cache (progressive web app)
    • JSON:API Boost module
    • Optimize your API
      • Optimize GET requests using includes
      • Subrequests module
      • JSON:API Extras module
      • filters to explicitly filter out content
  • Michael Schmid - How to survive COVID-19 as a hosting provider

Let day 3 begin!

Day 2 was great and we're excited to dig into day 3, which is the last day of presentations. Don't forget that Friday is the community contribution day and everyone can participate. You don't need to be registered for DrupalCon to take part. So sign up for the DrupalCon Global Contributions Room to get involved and hang out with lots of great people.

Jul 16 2020
Jul 16

In early June, the long awaited version 9 of the Drupal CMS was released. Logically, this gave rise to a number of blog posts about the ease of migrating to 9 and what this release means for the open-source project. Revisit some of these in our overview for June!

Drupal 9.0.0 released

Despite the major disruptions of the past 6 months, the latest major version of Drupal, Drupal 9, was released on June 3. As is tradition, Drupal’s founder and project lead Dries Buytaert wrote a blog post for the occasion, providing some basic information about this release and thanking the community for another successful year - this time, especially all the people working on version 9.

The Drupal community is known for being very diverse and inclusive, with Dries leading by example. Contributors from all manner of cultural backgrounds have helped make Drupal 9 a reality, and this release brings the software even closer to its users, with an even greater focus on usability and accessibility. 

Read more

Drupal 9 is Here - Upgrading has Never Been So Easy

In the next post, Stella Power of Annertech highlights the unprecedentedly easy upgrade to Drupal 9. The post begins with a brief look into the history of Drupal version upgrades, which have evolved from a “the drop is always moving” mentality to one which prioritizes backwards compatibility, with biannual feature releases and planned deprecations.

As such, the groundbreaking thing about Drupal 9 is exactly this simplified upgrade path, especially for websites that have kept up to date with the latest versions of Drupal 8, for which the update is much smoother. Upgrading from Drupal 7 to 9 requires more effort, as it is essentially a complete overhaul, so Stella recommends also taking this opportunity to rethink and revamp your entire digital strategy. 

Read more

Migration, Security and More: We Answer Your Burning Questions about Drupal 9

We continue with another practical post on Drupal 9 in which Acquia’s Angela Byron and Gábor Hojtsy answer some of the most frequent questions developers and site owners may have concerning this release.

They include helpful information on migrating from Drupal 7 and its end-of-life, as well as the recommended tools for making the migration. In addition, they also cover the improvements to accessibility and security that come with Drupal 9.

The last few questions are particularly interesting as they pertain to the future of Drupal: what we can expect in terms of headless support and “no/low code” solutions, and more generally about Drupal’s position as the top enterprise CMS.

Read more

Multilingual Drupal - Part 2: Translation Management

This next post is a continuation of one that we included in last month’s recap. In it, Christophe Jossart of Amazee Labs takes a further look at Drupal’s multilingual capabilities, focusing on using the Translation Management Tool (TMGMT) module.

Christophe covers three different use cases: content moderation, paragraphs asymmetric translation, and some experiments to the UX/UI, also diving deeper into each of them, exploring things such as data loss and sending files via email to a translation service.

He concludes his blog post with a list of the TMGMT module’s features not covered more thoroughly already, and some possible next steps such as integration with different software.

Read more

Drupal 8 vs. Drupal 9: More Features for Content Editors

One of Drupal’s main future goals is simplifying the beginner experience and improving the user experience of both key stakeholder groups - developers and, in particular, marketers / editors. As Leigh Ryan of Evolving Web writes in her blog post, version 9 features a lot of functionality tailored to the latter user group.

Among other things, the Layout Builder is now in core and enables drag-and-drop page building. Drupal 9 features better media management and better content moderation workflows, as well as the new and even more accessible back-end theme Claro. Through all of this, Drupal 9 remains an API-first CMS, also staying mindful of the developer experience.

Read more

Caring for old software

Among discussions of updates, migrations and new features, another important piece of Drupal news from June came from the completely other side of the spectrum - namely, the announcement of extending Drupal 7’s end-of-life date, originally scheduled for 2021, for one year, until November 2022. 

In his accompanying blog post, Dries cited the impact of the pandemic on companies’ budgets as the primary reason for extending this deadline, since a lot of Drupal websites still run on version 7. This shows how Drupal really is all about its users, as it takes care to extend support for an old version right after releasing a brand new and updated one. 

Read more

Is it time to give Drupal another look?

Due to it being quite an old technology, Drupal has a somewhat negative connotation within the latest generations of software developers. Tim Lehnen, CTO for the Drupal Association, has recently written a great post for Stack Overflow in which he takes a look at the major changes the software has undergone in the past two decades and dispels some of the misconceptions associated with it. 

Among the most notable changes is Drupal’s new stance on backwards compatibility, taking a kind of middle ground between innovation and easy updates. Tim also points out that a major reason for the big changes in Drupal are a natural reflection of the changes to the very nature of content management, and discusses how Drupal is positioned in this new ecosystem.

Read more

How to Contribute to Open Source: The Ultimate Guide

We finish with a more general post about open source, namely, about contributing to open source projects. One of the individuals sharing their views and experiences is also the author of the previous blog post that we included, Tim Lehnen, from the Drupal community.

As the author of the article, Tatum Hunter of Built In, points out, one of the biggest pains of fledgling contributors is not knowing where and how to get started. 

It’s therefore important to do your research, get familiar with the structure and workflows of the project, while keeping in mind that something which seems insignificant to you may actually be viewed as a very valuable contribution to a more senior and predisposed community member.

Read more

Hands holding up a plant with lights flickering in the background

We hope you enjoyed our recap and/or were able to find out more about the newly released Drupal 9. Learn more about how Agiledrop can aid with your Drupal development, or simply give us a shout out if you want to collaborate. Till next month!

Jul 15 2020
Jul 15

DrupalCon Global kicked off of this week and the Drupalize.Me team was there to participate. The originally scheduled DrupalCon North America in Minneapolis was canceled earlier this year due to COVID-19 and the great team at the Drupal Association worked magic to create a new DrupalCon experience with DrupalCon Global, the first online DrupalCon.

Almost everyone on our team has attended in-person 'cons in the past, so it was interesting to feel the differences between in-person and online. Philippa has never gone to a 'con before, so it was awesome that she could experience DrupalCon for the first time. We've gathered all of our notes from day one, along with links to videos of sessions to check out if you are registered. (Note that the session videos will be available on YouTube for the entire community in September. In the meantime, you must be a registered attendee to access the recorded sessions on Vimeo.) We'll keep a daily commentary going all week.

The Hopin.to platform

DrupalCon is using Hopin.to to manage the conference. The live sessions are delivered here, along with the ability to chat with other attendees in chat rooms, as well as randomly meet others one-on-one through a networking feature. The exhibit hall is also managed here, and you can "visit" an exhibitor's booth either by expressing interest so someone contacts you directly or by entering their chat room to talk with them and other visitors.

We found that the platform worked pretty well and it was pretty clear where things are. Besides being online of course, the big difference in sessions with this is that there is a chat room for each session so attendees can talk and ask questions during the presentation. This ended up feeling like both a plus and minus for many of us. On the one hand it was neat to see people engaging at the sessions and be able to "talk" while the session was in progress. This can really add to the session with interesting comments and conversations, and people helping each other out with questions. On the other hand seeing the back-channel chatter can be distracting or overwhelming, especially when there are large groups of attendees. You can close the chat window while you watch though, so if you find it annoying you can toggle that closed. There is a small button at the top of the chat window, between the timeline and the attendee count.

Hopin minimize chat window button

Joe sums up what many of us are feeling with the overall online experience so far.

"I'm quickly realizing how much I rely on the serendipity of in-person events to get to me to interact with others in the community, which is my favorite part of DrupalCon. But it's all primarily chat based, and a bit more opt-in than when someone walks up to you in the hall and says, "Hi Joe!". Being an active participant and not just a lurker is likely to be the hardest part of hopin for me."


One of the great things about an online conference is that it is much more accessible to many more people. It's also heartening to see the Drupal community highlighting diversity and inclusion. There is always so much work to do, and we were happy to see time scheduled in the event for 8:46 minutes of silence observed in honor of George Floyd and the Black Lives Matter movement. We hope this conversation continues and leads to lasting change in our community.

Another aspect of inclusion for online communities is the issue of time zones. Addi lives in Denmark, while the rest of our team live in several time zones in the United States. The main event is largely scheduled on American times, which meant that Addi missed a fair amount of live sessions and the first trivia night, being too late at night. That said, it's great to see that there are multiple trivia nights this year, with different days at different times so that everyone can participate. On the flip side, some of the initial sessions of the days are scheduled quite early in the morning for our folks who live on the U.S. west coast. There's really no way around time zones and live events, and it'll be interesting to see if there are more ideas that spring up after this 'con about how to create a more "live" experience for people who are not in the main targeted time zones.

Finding and scheduling sessions

You can find the schedule for all sessions both on Drupal.org and in the Hopin Reception area. Here is the schedule for Day 1. Don't forget that you can make your own schedule to follow by using the "My schedule" feature on Drupal.org or you can add sessions directly to your own calendar in Hopin. This can be a great way to cut down on the overwhelming list of sessions and it can help you figure out when you can watch live in your home schedule versus needing to go back to watch videos later once they get uploaded.

Session notes

Here are some somewhat random notes from sessions that we attended on Tuesday. We've also provided links to both the session page and the on-demand library video where possible (and we'll add the video links as they are put online).


There was a pasta intermission! Before the sessions started, Vincenzo De Naro Papa from Amazee.io showed us the authentic Italian way of cooking pasta. It was a fun way to make things feel homey and relaxed before things got kicked off, though a fair number of people were probably confused about whether they were at the right conference when they first entered the main stage area. :-)

How to improve psychological safety in your organization

  • (Addi) This session covered a lot of things that we do well, and some things that apply more to larger organizations than we are. It also introduced some new ideas for me to look into within Osio Labs: Personal user manuals and documenting the Andon cord process (how do you stop work to address problems?).

Driesnote (video - Dries' presentation begins at 15:48)

  • Details about Drupal 10: shorter release cycle (targeting June 2022), limited to ~5 official initiatives with a focus on improving the beginner/new user experience.
    • JS Menu component
    • Automated updates
    • New front-end theme (Olivero)
    • Easy out-of-the-box (complete Claro admin theme, Layout builder, and Media)
    • Drupal 10 readiness (dependency end-of-life timelines, e.g. Symfony 4)
  • Q&A session will happen on Wednesday instead of happening right after the talk.
  • (Joe) It's nice to see the hat tip to diversity and inclusion, and hopefully that continues to expand within the community and continues to result in real change. This year's speaker lineup is the most diverse, and it's great to see that.
  • (Addi) I really like the emphasis on DEI and that people have generally been very supportive of this stance in the chatrooms. Tim Lehnen's talk at the end of Dries' presentation was good to see.

Community & Belonging in the Time of Coronavirus

  • (Joe) Adjusting to remote work, remote community, changes how we engage and how we gain a sense of "belonging". For many people remote work/working from home is becoming the new normal, not just a temporary thing.

Drupalcon on the front lines of covid-19

  • (Philippa) Four panelists, working for widely different organizations, spoke about how, in recent months, they've used Drupal to help communities, governments, and organizations fight the effects of Covid-19. For example, Christina Costello, Web Developer, Redfin Solutions, LLC, spoke about her agency's work with the Rural Aspirations Project. They helped set up a Drupal 8 website for them using the Claro theme for admins, which delivered good content moderation functionality and gave them something they needed very quickly amidst the statewide shutdown of schools: a CMS offering a quick and efficient approval process for content editors. The result was that in a very short time, they were able to help connect rural communities in Portland, Maine with good, creative online learning opportunities for kids. For instance, the site connected a Portland, Maine-based comic strip artist with kids in rural areas, who learned how to draw what they were experiencing in quarantine in a comic strip. Cool!
  • (Amber) Interesting panel of speakers who talked about both client solutions and workplace issues they needed to solve at the onset of the crisis. Interesting mix of Drupal modules and solutions that helped us and our clients quickly deliver new types of content as well as remote workplace adjustments.

Decoupled Drupal in real life: JSON:API at scale

  • (Amber) Lessons learned, caching, and other strategies for scaling decoupled or progressively decoupled Drupal sites. Lots of good real-world lessons. Goes way beyond a basic demo of "turn on JSON:API".

Big systems, big problems: Lessons from 40 design systems

  • (Amber) Learned some helpful strategies for redesigning a site, including sketching out user flows. Also great information about setting content component priorities.

JavaScript is coming to eat you

  • (Ashley) This session took a look at web development and the way that we build websites today and how the landscape is shifting. Traditional or "Monolithic" CMS platforms like Drupal and WordPress are being used less in favor of a more component based model. Despite the shifting landscape, CMS like Drupal can still play a critical role but will become more of a secondary concern

Social events


  • (Joe) Amber, Philippa and I had a team, and tried to have both a Google Meet and the Hopin session open at the same time, which made it feel like you where in loud bar with everyone talking over everyone else. It was kind of fun, and Fatima did a great job of being a lively host. But it's just not the same as Trivia in a pub. I'm glad that effort was put into keeping this tradition alive in some form though.
  • (Amber) It was fun to do a "happy hour" with co-workers during trivia. Definitely not the same as the in-person experience, but still fun in its own way.

What's next?

Well, that's our quick summary of day one as we gear up for day two. We'll be back tomorrow with our day two summary. Are you attending DrupalCon Global? What are your thoughts, tips, and highlights so far?

Jul 14 2020
Jul 14

Even though installing Google Tag Manager (GTM) adds a layer of complexity, it is far more flexible (and powerful) than Google Analytics (GA) alone:

  • GTM can be set up to track advanced analytics, like Scroll Depth, Link Clicks, & Video Playback information.
  • GTM makes it easy to install custom tracking, like LinkedIn Insights or Facebook Pixel, without developer help.
  • GTM makes it easier to track transaction data, like order amount, which is essential for ROI calculations for your ad campaigns.

While not difficult, it does take a little time and effort to complete. Below are the steps Volacci goes through to do a Google Tag Manager install on all our clients’ Drupal websites.


Except in very special cases, you do not want to have both the Google Analytics and Google Tag Manager modules (or embedded code snippets) enabled on your site at the same time -- it can skew your Analytics. We recommend coordinating the Google Tag Manager installation & configuration with disabling your Google Analytics module. Contact your developer if you have questions on how Google Analytics is currently installed on your website -- or if you have multiple GA codes deployed, which can complicate things further.

Google Account Sign Ups

While we offer top level instructions in this section, you may need to find additional resources on the exact steps for signing up for these accounts. Google tends to change things periodically, so it’s best to find their step by step instructions. We've included links to their current instructions in this section.

  1. If you don’t already have one, sign up for a free Google Account.
    This will include a gmail account. If your company already uses Gmail for email, then you can use that Google Account. You’ll use this account for all the sign ups that follow.
  2. Sign up for Google Analytics for your website. When you complete this process, you will have created a property for your website on the GA admin Tracking Info > Tracking Code page. There will be a tracking code there that looks something like this:

    We recommend opening a text editor and copying and pasting this tracking ID so you have it handy for your GTM set up. You’ll be using this text document again later, so leave it open.
  3. Create a Google Search Console (GSC) account for your website. This account will track organic (search) traffic to your website and can also be integrated into your Google Analytics (GA) account.
    For information on integrating GSC into your GA account, go here for their detailed instructions.
  4. Set up your website’s Google Tag Manager account.
    google tag manager add a new account dialog box
  5. Fill out the Account Name and Container name fields with your organization’s and website’s information, and select “Web” under Target platform.
  6. Click Create, agree to the terms of service and GDPR rules, and you should be presented with a pop up window containing two different code snippets. The top one will look like this:
    google tag manager snippet code example
  7. Highlight the GTM-XXXXXXX number as we have in the example above.
  8. Copy and paste that number into the same text editor you placed your Google Analytics tracking ID.
  9. Deploy Google Analytics using Google Tag Manager by following Google's instructions. NOTE: You’ll need the UA-XXXXXXX-1 number you pasted into your text document for this step.

Install The Google Tag Manager Module

You may need to get help from your developer with this process. Contact them should you have any questions or issues. Sending along a link to this page could help speed things up.

  1. Make a backup of your website. If something goes wrong, you’ll need to restore your website from a backup.
  2. Install the Google Tag Manager module available here: https://www.drupal.org/project/google_tag

    NOTE: Drupal module installation instructions can be found here: https://www.drupal.org/docs/extending-drupal/installing-modules

  3. Once the module is installed, make sure it’s enabled by going to the Extend page of your website: Click Manage > Extend or visit https://yourdrupalwebsite.com/admin/modules.
    Note: if you are using Drupal 7, you may need to consult the D7 specific instructions.
  4. In the search box, enter “google tag” to find the Google Tag Manager module.
    drupal google tag manager module enable
    • If the check box next to the module is checked, then the module has been enabled and is ready for configuration. Move on to Configure The Google Tag Manager Module.
    • If the check box next to the module is not checked, it will need to be enabled.

      If you have permissions to enable a module, you can select the check box next to the module, and click the Install button at the bottom of the page.

      NOTE: If you do not have permissions to enable the module, you’ll need to contact your web developer to enable it and give you the appropriate permissions to install and configure the GTM module.

Make sure you have that text document handy that contains the GTM container ID that was generated above.

  1. On your Drupal site, go to Manage > Configuration > System > Google Tag Manager or visit http://<www.yourdrupalwebsite.com>/admin/config/system/google-tag in your browser.
    This will take you to the Google Tag Manager containers page.
    drupal google tag manager container
  2. Click on the + Add container button. This will take you to the Add container page.

  3. Enter a relevant name in the Label field.
  4. In the Container ID field, enter the Container ID  (GTM-XXXXXXX) you copied from Google Tag Manager.
  5. Leave all other settings at their default.
  6. Click the Save button at the bottom of the page.

Testing Your Installation

We recommend testing to make sure your Google Tag Manager is properly installed and configured. Here at Volacci, we test in several different ways using the Chrome browser. If you use a different browser, some of these methods may not work.

  1. Go into the Google Tag Manager workspace for your website and follow Google's instructions for testing with Preview mode.
  2. Install Google Tag Assistant within your Chrome browser. 

    For additional information on how to use Google Tag Assistant for testing and troubleshooting your Google product installations, visit Google's support page

There you have it. You should be all set to gather Google Analytics data and make deployment of 3rd party scripts to your website much easier.

We always try to make sure our posts are as accurate and up to date as possible. If you find something is wrong, or you have a question, please feel free to contact us with any questions or feedback you might have.

And remember, Volacci stands ready to help you implement your Google Tag Manager and Google Analytics should you need us to.

Did you like this walkthrough? Please tell your friends about it!

twiter social icon linkedin social icon

Jul 13 2020
Jul 13

Drupal 9’s big splash in early June sparked a widespread realization that migration needed to move to front burner status in anticipation of a Nov. 2021 decommission date for Drupal 7 and 8. That sense of urgency has been temporarily tabled as the Drupal organization took the widespread uncertainty and upheaval of the global pandemic into account, and moved the end-of-life date for Drupal 7 and Drupal 8 out by one year to November 2022.

So now what?

How does this date extension change how site owners should be approaching migration? What’s in store for Drupal 9? And what else do we need to know right now? 

Subscribing to the Kenneth Blanchard conviction that, “None of us is as smart as all of us,” we reached out this week to some of Promet’s top experts for insights into these and other important issues.

Here’s what they had to say:

Drupal 9 Expert Panelists

Juan Garay, Project Manager, Scrum Master
Luc Bezier, Solutions Architect
Aaron Armstrong, Drupal Developer
John Ross Castano, Web and Support Developer

Q. Now that the Drupal Organization has extended for one year -- from Nov. 2021 to Nov. 2022 -- the decommission date for Drupal 7 and 8, is there a compelling reason to migrate now?

Juan: I wouldn’t suggest migrating to 9 now, as there are many contributed modules that are not available for Drupal 9 yet.

I would tho encourage anyone to migrate from Drupal 7 to 8 ASAP, as the improvements between Drupal 7 and Drupal 8 are far and many.

Also, migrating right now from Drupal 7 to Drupal 8 will make for a much smoother migration path to Drupal 9 in the future, as Drupal 8 to Drupal 9 migrations (content in particular), are meant to be considerably smoother than migrations from previous versions of Drupal.

Aaron: November 2, 2021 is still the date that we need to focus on as the effective end-of-life date for Drupal and 8. Drupal is dependent upon Symfony, and Symfony will no longer be supported after November 2021. Security patches are all that will remain available after that date. My recommendation for any website that’s still on Drupal 7 is to move forward now with a migration to Drupal 8, and then as Drupal 9 matures, build out a Drupal 9 migration timeline. 

Q. What do you view as the primary, overarching benefit of Drupal 8 and 9 over Drupal 7?

Juan: In Drupal 8 and Drupal 9, nearly the entire system uses the Drupal Entity API, which provides a much more robust and flexible framework for building custom solutions.

John Ross: Drupal 8 and 9 have improved over Drupal 7 by leaps in bounds in terms of deployments through Configuration Management (and content). Automatic deployment is a breeze between environments and has become very robust since Drupal 7. This is one of the biggest issues or dilemmas on our multi-environment development workflow when using Drupal 7. Drupal 7 heavily relies on Features and other similar modules, but cannot really provide a “one-size-fits-all” solution for an automatic deployment.

Aaron: The deployment and configuration export/import is the biggest benefit for Drupal 8 and 9. It saves hours upon hours of work, which previously was accomplished with Features. 

Also, there are a multitude of contributed modules in Drupal 7, which are now core modules in Drupal 8. Translations are a huge example. Drupal 8 comes ready, out of the box, for translations. Drupal 7, on the other hand, required loads of contributed modules and configurations to accomplish the same thing. 

Q. Drupal 9 has been described as akin to more of a “point release” from Drupal 8 than the Drupal 7 to Drupal 8 leap forward in features and functionality. So what is new or potentially game-changing about Drupal 9?

Luc: Drupal 9 is not a game changer, in the sense that Drupal 8 was. Drupal depends on Symfony, if you were to very quickly summarize, you could say that Drupal 9 is essentially a new version of Symfony under the hood. Drupal 9.0 has the same features Drupal 8.9, with a clean up of some functions that it was using. The aspect of Drupal 9 that is game changing is the fact that it is the first release for Drupal to be non-breaking. You don’t need to process a major migration to update, it is relatively easy to migrate from Drupal 8 to Drupal 9. 

Aaron: Drupal 9 solidifies some of the features in Drupal 8. As others have mentioned, it also is a very easy upgrade between Drupal 8 and 9. Up to this point, Drupal migrations have been time-consuming process. 

Q. Drupal 7 was released on Jan. 5, 2011, nearly 10 years ago. Can you comment on some of the most significant trends in UI/UX or within Drupal functionality that have emerged since that time?

Juan: Among the most significant developments is the ability to edit content inline, in real-time through the Drupal 8 Layout Builder interface

Luc: During the development of Drupal 8, I remember meeting Alex Pott (Drupal 8 core co-maintainer, and Drupal 8 configuration system co-maintainer). I worked with him on some changes to the configuration system. This system is for me the biggest improvement in the way we build and maintain large websites using Drupal 8 and above.

Aaron: The use of importing and exporting configuration yaml files is the most significant change from Drupal 7. The default back-end theme has improved greatly, along with the number of core modules in Drupal 8 and 9. 

Q. How have businesses and organizations changed in their use of and need for Drupal over the past decade?  

Luc: The complexity of websites have increased, and thanks to Drupal’s level of abstraction, we are also able to build more complex solutions. For example, it is common for large companies or administrations to have more than a dozen of websites now, and using Drupal with tools like Acquia Cloud Site Factory, one company can generate websites on demand.

Aaron: Drupal has always been an enterprise type CMS that works well with larger sites. I think it has continued to work in that space, while allowing for much more complex sites, deployments, and configuration sharing.

There also have been huge leaps ahead with the hosting provided by Acquia and Pantheon. 

Q. What do you view as the most significant Drupal evolutionary developments over the past decade?

Aaron: The possibility of headless Drupal is what first comes to mind, but the configuration management, as well as translations being part of core, are the biggest advancements in my opinion.

Luc: The past decade saw the emergence of static sites generators (Jekyll in Ruby, Hugo in Go). I find it very interesting as it is removing all the overhead of modern websites for performance and maintenance. Nothing will ever be faster than a plain HTML page. A module like Tome (by Samuel Mortenson) bridges the gap between Drupal and the static sites generator solutions, allowing Drupal to be automatically exported as plain HTML. This opens some interesting possibilities for Drupal.

Any other questions on Drupal? Drupal 9? The path to migration? Drupal is in our DNA at Promet Source and we are happy to help. Let us know what we can do for you!  Contact us today


Jul 13 2020
Jul 13

The Drupal community plays an important role for those who use the Drupal framework on a daily basis. Developers, project managers, designers, marketing managers, end-users, everyone that work with Drupal can benefit from an event like this in a big way. Growing the network is a valuable factor, and at these large events it is possible to share and collaborate about your open source knowledge. It is so inspiring and empowering for everyone involved, and it does not matter if you are new to Drupal or if you have decade of experiences in your bag, everyone leaves the event like this inspired and looking forward to the next DrupalCamp and the next DrupalCon.

Highlight of this year DrupalCon Global

This DrupalCon is different from what we are used to. There will be no in-person parties or surprise bumping-into old Drupal friends, but to focus on the positive the event is packed with great sessions. We are looking at a week of 100 sessions including industry and topical mini summits, interesting sessons from professionals, presentations from sponsors, on demand video library and lots of other content to keep us entertained this week!

We at 1xINTERNET are very happy that our CEO and Co-Founder Baddy Sonja will take part in two summits at this DrupalCon Global. Baddy will be taking part in the Government Summit on Tuesday 14th of July at 18:00 UTC organised by Becca Goodman and Jess Dearie . Baddy will talk about how the City of Reykjavik changed from building websites to building culture and framework for digital development, and why it's important to have a good content strategy.

On Wednesday 15th at 14:00 UTC she will take part in the Community Summit where she will give an Events Organizer update. Directly after her session at the Community Summit she will participate in the Public Q&A with the Drupal Association staff and board together with Dries, Adam Goodman (chairman of the board), Heather Rocker (Executive Director of the DA) and Tim Lehnen (CTO of the DA). This session is interesting for everyone who would like to know more about the Drupal Association and how it is supporting the project. Since November last year, Baddy is the Treasurer of the board of the Drupal Association and will give an update on the financials as well as other activities of the Drupal Association. You will also find Baddy both in the Event organiser group booth and the Drupal Association booth during exhibition hours. Please stop by and say hi to her ( Baddy loves that:).

Jul 12 2020
Jul 12

Unlike the previous years; DrupalCon 2020 will be virtual due to the outbreak of Coronavirus and resulting restrictions on travelers. The annual festival open digital experience conference will be going global thanks to open source solutions developed by the innovative Drupal community.

What is DrupalCon?

DrupalCon is a conference designed to bring people together to share thought leadership around open source and ambitious digital experiences, provide professional development opportunities to enhance your career and your organization, foster a feeling of community, and invigorate Drupal project momentum.  

The event is a mission-centric program of the Drupal Association, the non-profit organization dedicated to accelerating the Drupal software project, fostering the community, and supporting its growth. 

  • Where: Everywhere. Online.
  • When: July 14 - 17 2020

Why you should join DrupalCon Global?

DrupalCon is for marketers seeking to create truly immersive digital experiences, for developers who want to build the best of the web, and for business owners who want to get ahead of their competition.

If you’re a developer, project manager, designer, work for a digital agency or consulting firm, or a Drupal end-user you can learn the latest technology and grow your Drupal skills and deliver more value to your organization by attending DrupalCon Global. Build a stronger network in the Drupal Community. Collaborate and share your open source knowledge with others. Find opportunities to contribute to the Drupal project.

DrupalCon is for everyone with a passion to create through technology. Here are a few highlights to look forward to:

Mini Summits are an opportunity to network with and learn from peers in your field who share the same interests, issues, and challenges. 

In lieu of the traditional full-day summits, DrupalCon Global will feature mini summits focused on highlights and innovations and will be integrated into the main conference program. You will have the opportunity as marketers and developers to learn industry-specific insights in the following key sectors that rely on Drupal technology: 

Drupalers focused on higher-ed can also enjoy a dedicated summit for library-related digital projects.

For those interested in building API-driven Drupal backed sites and applications to learn preferred practices, planning, and implementation advice, and see case studies from existing sites, you can benefit from networking with fellow Drupalers in the Decoupled summit.

Boost your support and ongoing maintenance efforts with the latest insights during the Performance and Scaling summit which will enable you to prevent slow page loads and disastrous outages; learn the latest tools and techniques across the full stack to create fast, scalable Drupal applications.

2. Sessions

From enabling marketers to creating inclusive strategies and digital brands to lessons on how to implement Decoupled Drupal in real-life - DrupalCon Global will have access to nearly 100 sessions and experts about how to build the best of the web, relating to the following topics:

  • Being Human, Contributions, & Community
  • Drupal 9 
  • Content & Digital Marketing
  • Development & Coding
  • DevOps & Infrastructure
  • Leadership, Management, & Business
  • Site Building
  • User Experience, Accessibility, & Design
  • What's Next in Drupal and Open Source 

3. Drupal 9

The Drupal community has accomplished amazing things with the release of Drupal 9. It is the easiest major version upgrade in a decade, extending the pattern of continuous innovation from Drupal 8, with dramatically easier tools for end-users.

At DrupalCon Global you'll find all the Drupal 9 content you need:

  • Sessions about getting ready for the upgrade, whether you're on Drupal 7 or Drupal 8
  • Instruction from expert speakers about using Composer to manage your site
  • Programming about next-generation features like the new administrative UI and the upcoming Olivero default theme
  • Tips and best practices for making your custom code Drupal 9 ready

4. Future Road Map

To kickoff proceedings, the Drupal project founder; Dries Buytaert, will give his traditional Driesnote which celebrates recent successes and details the vision for where Drupal is going next to kickoff the proceedings of this year's DrupalCon.

To better accommodate the global community, the event start and end timing of the scheduled programming will be expanded each day and offering specific moments of live networking and togetherness for regional communities throughout the event. Both for the sake of DrupalCon's speakers and staff, this won't be a 24/7 event, but because much of the content will be available to ticket-holders on demand, you'll have the freedom to participate at the time you choose.

Click here to view the full schedule details. 

Don't miss out on the biggest DrupalCon yet - you never know; you just might find exactly what your business or Drupal project is looking for to take things to the next level!

Book your DrupalCon ticket today!

Jul 11 2020
Jul 11

External Media module for Drupal 8 and 9 is a successor of the File Chooser Field module that was bulit for Drupal 7. The same functionality was implemented for Wordpress too. The module provides custom form element.

The new form element would allow you to add external services such as Google Drive, Dropbox, Box, OneDrive, AWS, Unsplash, Instagram, Pixabay, Pexels and other services, in addition to regular file choose field. 

External Media form element.

Implementation is very simple. Just like you would do it with managed_file form element you would change it to external_media and you are all set. To make sure the module is supported in your custom modules I would suggest to add the following:

'#type' => (\Drupal::moduleHandler()->moduleExists('external_media'))
  ? 'external_media' : 'managed_file',

If you would like to force your module to use External Media add dependency to the module's .info file:

  - drupal:external_media

The module supports both File and Image field types and allows control of visibility of each plugin individually in addition to permissions. File extension and cardinality field settings are respected in popup widgets when supported.

External Media form display

Download External Media

Jul 10 2020
Jul 10

This blog has been re-posted and edited with permission from Dries Buytaert's blog.

I remember the first gathering of Drupal contributors back in 2005. At the time, there were less than 50 people in attendance. In the 15 years since that first gathering, DrupalCon has become the heartbeat of the Drupal community. With each new DrupalCon, we introduce new people to our community, demonstrate the best that Drupal has to offer, and reconnect with our Drupal family.

Next week's DrupalCon Global is going to be no different.

Because of COVID-19, it is the first DrupalCon that will be 100% virtual. But as much as we may miss seeing each other in person, the switch to virtual has opened opportunities to bring in speakers and attendees who never would have been able to attend otherwise.

There are a few moments I'm particularly excited about:

  • Mitchell Baker, CEO of the Mozilla, is joining us to talk about the future of the Open Web, and the importance of Open Source software.
  • Jacqueline Gibson, Digital Equity Advocate and Software Engineer from Microsoft, will be talking about Digital Inequity for the Black community – a topic I believe is deeply important for our community and the world.
  • Leaders of current Drupal strategic initiatives will be presenting their progress and their calls for action to keep Drupal the leading CMS on the web.
  • And of course, I'll be giving my plenary presentation to celebrate the community's accomplishment in releasing Drupal 9, and to talk about Drupal's future.

Beyond the sessions, I look forward to the human element of the conference. The side conversations and reunions with old friends make attending DrupalCon so much more powerful than simply watching the recordings after the fact. I hope to see you at DrupalCon Global next week!

Jul 10 2020
Jul 10

DrupalCon Global is right around the corner and as usual, the Event Organizers will be everywhere! This year we've had a booth generously sponsored by the Drupal Association, so we'll have a place right in Hopin where you can come find us, chat about events, and even win some direct consulting time to help plan your next event! Whether you’re an event organizer, interested in starting an event in your area, or just want to flag one of us down, here’s where to look.

Jul 10 2020
Jul 10

DrupalCon Global starts on Tuesday, July 14th, 2020, 2-4pm ET/11am-1pm PT. Because everything is online, every summit, session and event within DrupalCon is available under one ticket.

If you haven't registered yet, you still can at https://events.drupal.org/node/31305

We've kept the original theme for the Nonprofit Summit - The Lifecycle of a Drupal Website, because when we see our websites as dynamic, evolving communications tools, we make the most out of them. 

Although the pivot to a virtual event has been hard, it’s given us the opportunity to feature speakers who were not originally planning to attend in-person DrupalCon MN. Many of us are juggling massive changes in our work and personal lives, along with fear and anxiety. We are grateful to our fantastic slate of speakers for taking time to share their experiences and knowledge with this community! 

A full day in front of a screen would be exhausting. So we've taken our original schedule and pared it down to two hours of focused, lesson-packed programming, along with space for participants to ask questions.

One of the most valuable aspects of summits is the ability to get to know and network with others that share this fairly niche interest of “nonprofit Drupal”. We will approximate that experience by weaving in ways for us to network with one another via chat, a shared notes doc, and an opt-in directory of people.

Here's the full schedule. We hope to see you there!

Nonprofit Summit Sponsors

Immense thanks to our sponsors, Aten Design Group and Message Agency, for their continued, unwavering support of our Nonprofit Summit, in spite of the difficult pivot to a virtual event, and extremely challenging times for everyone involved. 

Nonprofit Summit Co-organizers

  • Molly Byrnes, mbyrnes on D.o, @mabfire on Twitter

  • Johanna Bates, DevCollaborative, hanpersand on D.o, @hanabel on Twitter

  • Clayton Dewey, DevCollaborative, cedewey on D.o, @claybolto on Twitter

DrupalCon Global Nonprofit Summit Agenda

The summit runs 2-4pm EDT / 11am-1pm PDT. Start and end times are approximate. All times listed in UTC.

  • 18:00-18:10 - Welcome 

    • Summit organizers, & introduction to sponsors Aten & Message Agency

  • 18:10-18:35 - The Lifecycle of a Drupal Site Panel 

    • Dan Thiede (Clean Energy Resource Teams)

    • Corey Brown (CLINIC Legal)

    • Paige Eaton (Facing History)

    • Moderated by Lynn Winter (Manage Digital)

  • 18:35-18:50 - Panel Q&A

  • 18:50-18:55 Break

  • 18:55-19:05 - 12 Tips for Nonprofits Converting to Drupal Lightning Talk

    • Monica Flores (Lullabot)

  • 19:05-19:15 - Drupal 8 & 9 Module Compatibility Lightning Talk

    • Cecelia Sullivan (Race Forward)

  • 19:15-19:25 - Lightning Talks Q&A

  • 19:25-19:35 - Requirements-gathering for the Mukurtu Drupal Distribution Lightning Talk

    • Elliot Bannister (Standing Rock Sioux Tribe)

  • 19:35-19:45 - Integrating Drupal with Mighty Networks - A Lightning Case Study 

    • Joe Turgeon (The Whether)

  • 19:45-20:00 - Q&A and Wrap-up

Nonprofit Summit Page: https://events.drupal.org/global2020/program/summit/nonprofit 

DrupalCon Nonprofit BoF is on Thursday, 4:15pm EDT / 1:15pm PDT https://events.drupal.org/global2020/bofs/2020-07-16.

Jul 05 2020
Jul 05


Your comprehensive Drupal website auditing tool is here!

Vardot released the beta-version of DrupalAudit to aid Drupal website owners and developers just before the release of Drupal 9 early June 2020.

Frequent performance audits are essential to guarantee that you benchmark your desired KPIs and website efficiency in alignments of the objectives of your digital strategy.

The tool will assess your Drupal website across the following key areas:

  • Performance
  • SEO
  • Accessibility
  • Best Practices

To use DrupalAudit, follow these 3 simple steps:

  1. Enter your Drupal site’s URL and test the performance across all site aspects.
  2. Find out how your Drupal site is performing in the areas you care about.
  3. Automatically generated tips will guide you on what to do next.

Audit Your Drupal Website Performance
Jul 05 2020
Jul 05

Many countries in the world prioritize the travel and tourism sector due to its extensive impact on stimulating other economic sectors related to the tourism value chain. Such related sectors include transportation, healthcare, financial services, retail, hospitality, shipping, car rentals, restaurants, food and beverage suppliers, and much more.

All the aforementioned sectors and businesses are directly dependant on attracting inbound tourism to their destinations. Attracting inbound tourism and destination marketing is the key and sole objective of a travel and tourism website.

1. Connect Stories With Travelers

Your destination or region will undoubtedly have many experiences to offer travelers. These attractions and activities are probably being actively promoted via images, videos, articles, downloadable ebooks, guides, digital maps, VR, and lists.

A common challenge for travel and tourism websites is that they cannot sustain a seamless and hassle-free experience for their visitors due to the nature of their content-heavy marketing effort.

Their sites were becoming increasingly unstable due to outdated technologies and increasingly difficult content management system (CMS) that often resulted in content managers breaking pages. Page load times were unacceptably slow for this heavily image-based site

Image management was increasingly difficult without categorization facilities as the library grew.

Drupal 9 is developed with user experience at the core of the technology. Building your travel and tourism digital experiences using an enterprise-level multilingual CMS ensures that your marketing efforts and immersive multimedia promotional content is enjoyed by your target audience in a seamless manner - regardless of how heavy your platform maybe with content.

Learn Why Varbase CMS Is the Best Multilingual Enterprise-Grade Drupal Website Builder


2. Be Responsive and Flexible

The global outbreak of Coronavirus (COVID-19) caused many governments to issue restrictions on travelers. The Hashemite Kingdom of Jordan was one of the countries that issues a severe lockdown to mitigate the threat of COVID-19 spreading.

With travel and tourism being the main strategic sector for their economy - the Jordan Tourism Board (JTB) actively promoted local travel and tourism within the kingdom's borders as soon as restrictions on travel were relaxed. The JTB also added an "Immersive Experiences" domain to make their various major attractions accessible for everyone via VR.

Being responsive is more than just being available from any device; it's also about having the technology that provides you with the flexibility needed to adapt to factors out of your control. The time to upgrade your website performance to a superior CMS is now - as more people contemplate traveling as soon as the travel ban is lifted.

As uncertainty appears to linger in the air regarding how soon we can freely travel borders, VR can become a popular alternative for people to enjoy particular experiences that your destination may offer. However, this will require you to assess your IT infrastructure's capacity to accommodate such solutions.

Building your destination's digital ecosystem and interconnected web of channels on Drupal 9 will enhance your capacity for ongoing growth and the ability to scale your digital experience when necessary to keep up with the trends and UX best practices.

3. Stimulate Trips To Emerging Travel Attractions

Create the ultimate network of digital experiences via Drupal's multisite functionality.

Your destination marketing team can create, update, publish, and promote content for each and every attraction's website or domain from one centralized CMS. Each attraction's digital presence can be managed and promoted to its target audience from a centralized content publishing process that enjoys a seamless workflow based on tiered permissions for content creators, editors, and marketers.

What does that mean? 

  • No more duplicate content issues.
  • More lean and efficient marketing teams needed.
  • No more time wasted by the marketing team(s).
  • Superior content development and marketing results.

Your marketing and technical team need not waste their time by duplicating the effort and time it takes to recreate or re-upload content to each relevant website or domain under your destination brand's name.

With multisite functionality; your websites can enjoy:
  • Seamless content publishing and management workflow process
  • Tier-based content moderation permissions for users
  • Best-in-class cybersecurity - continuously upgraded and updated
  • Mobile-responsiveness
  • Branding (if required) and UI/UX design systems
  • Ability to create dynamic, flexible layouts with Drupal's Layout Builder

But the multisite architecture solution can be used for related domains as well.

For example, many official travel and tourism websites such as VisitFlorida.org have audience websites that can all share best-in-class security, content publishing workflows, UX features, mobile-responsive layouts, all controlled and moderated by one centralized CMS and admin team.

4. Focus On The Digital Traveler Needs

The goal of any tourism site is to inspire visitors to travel and explore a particular region - from activities to geography - through relevant content across their existing website.

For the majority of travelers, the travel and tourism website they visit will be the first major impression of the experience they expect to have at the destination being promoted on that website.

Connecting stories relies on finding the right audience wherever they are and whenever they are searching for what your destination can offer them. This means you need a rich content-heavy digital experience that constantly evolves into a deeply personalized user experience for each user and website visitor.

You must ask your self key questions like:

  • Can any traveler easily access our website from any device or smart assistant?
  • Can any traveler easily understand what we want them to understand on our website?
  • Can any traveler communicate with us easily via our website or connected apps?
  • Can any traveler easily navigate our website and/or destination?
  • Can any traveler interact without any barriers for any communication while visiting our destination attractions?

Drupal 9 will allow you to connect those content-rich experiences and stories with travelers anywhere, anytime, and across all devices thanks to the endless capability to integrate with all necessary tools, solutions, and technologies to sustain an up-to-date digital ecosystem.


5. Personalize User Experiences

One simple method to achieve this is to enhance your communication via personalization.

Utilize the power of automation to deliver an exceptional experience to specific audience segments.

For example; gathering insight and data into how each user and visitor interacts with your digital platform informs your marketing team on how to optimize each landing page for higher conversion and engagement rates.

Utilizing essential integrations such as marketing automation will enable your marketing team to send dynamic and personalized marketing messages in the form of tweets, text messages, notifications, and emails to each website visitor based on their behavior on your website.

This insight into your website traffic will allow for a clear idea on how to optimize your landing pages for richer user journeys, higher engagement, and conversion rates.

The potential and opportunities are infinite with insight-driven marketing automation; ultimately you will be able to create advocates and champions of your destination by ensuring that travelers and tourists enjoy their travels from A to Z.

Winning Micro-moments: Mrs. Smith is on a 2 day business trip and she wanted to visit the main attractions close to her accommodation within the limited free time she can enjoy. Mrs. Smith can be a member of an audience named "One night only business trip" and can receive tips regarding which attractions she must visit within the city.

Moreover, she can be provided with quicker access to attractions and jump the queue via an online ticket code specific to members of this audience segment.

6. Hassle-Free Digital Experiences

Drupal 9 digital experiences are the most advanced travel and tourism websites that continue to deliver better on-page speed performances eliminating any frustration that website visitors can experience across any device.

Travelers seeking deeply specific search results for their holidays or business trips can easily find results quicker on Drupal-powered websites and digital platforms due to Drupal's on-page SEO superiority and integration with advanced search engine modules such as Apache Solr.

Your marketers published content has a much higher chance of ranking higher on search engines due to built-in SEO tools in the CMS that allows your content editors to upload marketing content optimized for better SEO performance across all devices regardless of the format of the content.

7. Incremental Growth and Critical Integrations

Are you set up for continued implementation and continued delivery of essential managed support services that ensure your performance at optimal levels? If not, you are already behind in sustaining standards of quality. 

Travelers are always looking for the most convenient value-based offer they can find. Their needs are evolving as are their perception of what an ideal UX should be when interacting with brands online. Enterprises have realized that they must transform into a breathing digital organism that consists of an interconnected network of relevant touchpoints and channels that their target audiences engage in.

Creating an evolving digital experience that constantly delivers on those evolving needs will require a reliable IT support partner that ensures that your website is constantly supported with essential UX related features such as upgraded security and search engine modules.

Is your destination's first impression an outdated website or rather an immersive digital experience made for the digital world? Is your travel and tourism website integrated with essential 3rd party apps that should make up your interconnected web of touchpoints that your target audience can and will interact with you from?

In fact;

  • Do you have a booking management system where travelers can make their entire accommodation plans quickly?
  • Do you have a secure payment gateway that accepts all currencies and payment methodologies?
  • Do you have an integration with essential marketing automation solutions that personalize your marketing messages for each website visitor based on their behavior and history of actions on your website?
  • Do you have an integration with automated chatbots that are increasingly being relied upon for FAQs?
  • Does your chatbot speak in tongues to cater to a globally diverse audience of travelers and tourists?
  • Can your marketing team easily build new content-rich and dynamic landing pages when required?

Through our decade-long experience with building digital experiences for global enterprises; we have realized that they valued reliable hosting, support, and maintenance above all criteria when selecting a vendor.

Support and maintenance by a dedicated and proven IT partner will be key to your long-term digital transformation plans and growth strategy.

Digital transformation is a commitment and a process that demands clarity and commitment.

8. Investing In Digital Tourism

Disruption will continue to occur, and expectations of your target audience will continue to shift.

You must align your digital and growth strategy with the technical requirements needed to ensure your ongoing sustained success. Investing in the right technology means that you will never need an expensive rebuild every time a critical update/upgrade is required.

Keep an eye on the future. Drupal's ability to integrate easily with any technology, solution, tool, or required 3rd party app makes it the ideal enterprise-level technology and CMS for digital experiences focused on personalized UX.

If your vision is ambitious and clear, you cannot build it on an inferior IT infrastructure that will only deliver short-term wins and long-term losses. Protect your future by making smart decisions today.

If you wish to consult with our travel and tourism IT solutions development experts, you can book a free consultation to discuss your opportunities and potential to drive more tourists to your destination.

Questions About Drupal 9

Questions About Drupal 9?

Jun 30 2020
Jun 30

Enjoy a random 404 video.

Or explore more of what we do.

We offer strategy, design and development services across industries and using a wide array of tech.

Read more about each below.

  • Business
  • Branding
  • User Research
  • Content Strategy
  • SEO
  • Accessibility
  • Responsive
  • Experience
  • Styleguides
  • Performance
  • Security
  • Migrations
  • Support
  • Training


  • Finance
  • Healthcare
  • Higher Ed
  • Nonprofit
  • Tech


  • PHP
  • Drupal
  • WordPress
  • Laravel
  • Javascript
  • Node
  • Vue
  • Nuxt
  • Electron
  • DevOps
  • Docker
  • Lando


  • Magic
  • Localdev
  • Testing
  • Events
  • Webinars
Jun 29 2020
Jun 29

In this blog post, we’ll take a look at some different terms related to experience in the digital landscape: the more established and specific Customer Experience and User Experience, as well as the newer and broader Digital Experience.

We’ll briefly explain each term, emphasizing the differences and connections between them, while reinforcing our points with examples as regularly as possible.
In the second part of the post, we’ll list and define some of the most frequently used terms related to these different aspects of experience, in order to help you facilitate conversations and collaborations involving them. 

Customer Experience

This is the experience of a (potential) customer in all stages of the customer journey, from their first interaction with a brand or product to actually having made the purchase - if they were satisfied enough with their experience, they may even turn into a loyal and/or returning customer. 

While customer experience refers both to digital and physical experiences, recent global developments have seen a major rise in the demand for digital customer experiences, with e-commerce solutions that are becoming more and more innovative. This post focuses mostly on digital CX, which is also more closely tied to UX.

  • Connection with UX: a customer buys a (digital) product, while a user uses the product. So, the CX of a product would be covered by the marketing around it, and the UX by the development and UX teams. The CX is focused on creating appeal for the product by showing how it solves particular pains, whereas the UX focuses on its usability, enabling the user to actually solve those pains. 
  • Connection with DX: any customer experience that occurs in the digital is by its nature a digital experience. Interestingly, we’re also seeing a blend of digital and physical CX, with examples such as digital displays and AR technology in retail.

-> In the digital word, CX is closely tied to UX.

User Experience

User experience is an incredibly broad field which has intrinsic ties to some of the other most important aspects of digital experiences, such as SEO and accessibility. In short, user experience is the experience of a user of your product or service (especially digital) who is using the said product or service to achieve a certain goal. 

As already mentioned in the CX section, the number one priority of UX is usability - enabling all potential users to easily make use of a product as a solution to a particular problem. This is why accessibility is so important for UX: any kind of user, no matter their disabilities, should be able to use products and services efficiently.

  • Connection with CX: products such as websites and digital applications may contain the ability to purchase other products and services. Here, CX = UX, because you use the features of the product to help you navigate through your customer journey to finally making the purchase. In the context of a single product, CX becomes UX once the product is purchased and now has to be used.
  • Connection with DX: just like with CX, any user experience taking place in the digital is a digital experience. Again, some of the latest technologies blend physical and digital user experience, with examples such as biometric apps and health tracking devices. 

-> Sometimes UX => CX (e.g. you use a website or application to make a purchase)

-> Sometimes CX => UX (e.g. you purchase a product or service in order to then use it)

Digital Experience

Digital experience is a broader term than customer or user experience. It basically refers to any kind of experience in the digital world, whether it’s CX, UX or even, say, the employee experience in a digital-native business. 

Paralleling the recent explosion of digital channels, new terms such as digital experience platform, or digital experience framework, have arisen to reflect the shift from thinking in terms of the web and content management to focusing instead on digital experience management

With the digital becoming a ubiquitous part of everyday life, there is a constant demand for digital experiences, wherever and whenever potential users and customers might be. This necessitates brands to be present and interact with their audiences on every channel they frequent if they want to tap into all of their potential markets.

  • Connection with CX & UX: any customer or user experience that takes place on the web or on a digital device is a digital experience. In light of the whole COVID-19 situation, the lines between CX and UX on the one hand and DX on the other have never been more blurred, as many people have now been relying on the digital for a majority of their experiences. But it is also broader: as their names suggest, CX refers to customers and UX to users, while DX can also include games, movies, music, etc. So, where CX & UX are more related to a digital product or service, digital experience focuses more on the experience part. Of course, UX often remains an essential part of DX - even something as straightforward as watching a YouTube clip requires a basic understanding of the platform’s functionality, while features like personalization also no doubt contribute to the user experience.

-> Since all digital experiences are more or less centered around satisfying certain needs, it can be said that every digital experience is to some extent a digital user experience.

Hand with its index finger pointing at an abstract neural network

Useful terms

To help you get the most value out of this post, and also not assuming that every single one of our readers is 100% familiar with all the common terms related to digital experience management, we’re including a short glossary of 12 useful terms that you’ll frequently encounter in CX, UX and DX in general.

  • Accessibility (UX / DX): digital accessibility basically means usability for everyone, no matter their physical or mental ability, or the device through which they’re accessing a service.
  • API (DX): an acronym for Application Programming Interface. An API defines the interactions between different software intermediaries, allowing for integrations between different technologies (e.g. a front-end and a back-end framework both relying on the same API).
  • Bounce (CX / UX): this is a term commonly used in data analytics. If a user or customer ‘bounces’, this means that they only viewed a single page on your website before exiting it. 
  • Churn (CX): also called ‘attrition’, churn happens when a (usually regular) customer stops doing business with a brand. The most typical example is when a customer cancels their subscription to a service.
  • CMS (UX / DX): an acronym for Content Management System. As the name suggests, a CMS is a system or framework for managing digital content and presenting said content to visitors. Some of the most popular ones are WordPress and Drupal.
  • CTA (CX / UX): an acronym for ‘Call to action’. This is a ubiquitous element of customer and user experience, and typically occurs in the form of links or buttons with an active, user- or customer-oriented copy which prompts them to perform the desired action.
  • Integration (CX / UX / DX): in the context of digital experiences, integration refers to different technologies being able to work smoothly together, since most digital experiences rely on more than just a single framework. For example, you may have a website built with Drupal that uses Magento for the e-commerce component.
  • IoT (UX / DX): an acronym for Internet of Things, a buzzword which is quickly gaining ground as we see more and more parts of our lives becoming digitally enabled. It basically refers to a network of interconnected objects able to exchange information through the internet (think smart cars, smart refrigerators, etc.)
  • Multichannel (DX): similar to omnichannel, multichannel means serving digital experiences on channels beyond just the web, by capitalizing on all the types of devices that today’s consumers use daily: mobile phones, tablets, and even things such as smart watches, digital displays or digital voice assistants.
  • Personalization (CX / UX / DX): this is one of the main trends in digital experience management. It means tailoring a digital experience to a specific individual as much as possible. This is enabled by technologies such as machine learning and realized through the capabilities offered by leading front-end frameworks.
  • Retention (CX / UX): especially in CX, retention comprises all the business activities that are focused around keeping existing customers. Retention is the opposite of churn or attrition, and there’s the constant pursuit of low churn rates and high retention rates.
  • ROI (CX / UX): an acronym for ‘Return on Investment’, which is a measure used to determine whether a particular task or activity is worth pursuing with regards to the expected business value it will bring.


Digitally rendered planet

We hope this post has armed you with a better understanding of the basics of customer and user experience, and how the newer digital experience trend is powering digital transformation on a global scale. 

The past few months have shown us that a digital-first mindset will be the crucial differentiator of success, and those who have digital experience top of mind will be the winners. 

If you’ve also by now realized how important top-notch digital experiences are going to be, but lack the development capabilities to deliver such digital solutions at scale, contact us at Agiledrop and we can supply you with exactly what your next digital experience endeavor needs to succeed. 

Jun 26 2020
Jun 26
Jun 26, 2020 Drupal

For our Drupal distribution we needed to redirect all anonymous users to the login page, as for now it's implemented as a closed platform for social collaboration. The Drupal 8 way didn't work anymore; we fixed it for Drupal 9 and published a working module. 

So if you're building a Drupal social intranet, collaboration tool or community this might help you to direct them the right way -so they don't get an unfriendly 'access denied'.

Keep in mind that you still have to build the correct access control into all your pages with help of permissions / access checks / advanced route access, this module doesn't provide for that.

 All-in-one Drupal based toolkit for remote work.    Check how Lucius works

Clone and run off

We published the Drupal module here on Github so you can copy it and run off with it to do whatever you need. At the moment it's not a published Drupal.org project with all kinds of configurable stuff.

A short explanation of the code

First you'll have to implement an 'Event Subscriber' in the .services.yml file.

drupal event subscriber

More info: Subscribe to and dispatch events.

Next, it took a while before we figured it out, but this code in /src/EventSubscriber/AnonymousRedirectSubscriber.php is all it takes to make it work:

Drupal anonymous redirect subscriber

  1. More info on responding to events in Drupal here on Drupalize.me.
  2. Get current user and facilitate 'account' (this is not dependency injection, see comments).
  3. Get current request with ->getRequest(), here's what differs from the Drupal 8 version: we couldn't get ->getRouteName() to work properly.
  4. Check if current user is anonymous, but exclude some paths. Also, we had to facilitate user/reset/* with php's fnmatch, because that path contains a variable (the reset hash).
  5. Respond with the redirect to Drupal's login page.

Drupal 8 version

You can find the previous Drupal 8 code here, and we also found the Anonymous login module, but both didn't work in our Drupal 9 (then beta) install.

'quick-start' Drupal to test

To test this module fast in a fresh install, Drupal's quick-start might come in handy.

Need this as a contrib Drupal module?

Please let me know in comments down below, if there is enough positive feedback on this we might make it configurable and contrib it!

Jun 25 2020
Jun 25

The fundamental building blocks of running an efficient and user-focused public transportation network and building a well-designed, effective, and user-centric website are actually pretty similar: You need talented people, quality data, and elite technology to get the most out of your investment.

That’s why the widespread adoption of open data standards combined with an effective and affordable technology like Drupal helps to ensure that public transit works for all users.

Ultimately, the key to great transit service is not about getting 100 percent of people to ride public transit for 100 percent of their trips. Success comes from giving people a viable choice of getting around without needing to drive -- a choice built on affordability, convenience, and quality

Giving people viable choices to get around does not end with good urban planning, congestion management, and low fares. It includes giving people the information they need to plan trips, to plan their day, and to plan travel across, through, and around their cities using transportation solutions that meet their evolving mobility needs.

Where does most of that information come from? Open Data.

Open Source & Open Data A Smooth Ride

Many cities have General Transit Feed Specification (GTFS) feeds available online. These are usually curated by regional public transit agencies. 

GTFS is just one example of many Open Data resources available and in use by transit agencies. But having access to that data is only part of the equation. The important question to answer is how are they to manage that data and repurpose  it in a way that is responsive, accessible, meaningful, and convenient for people to consume? 

Transit authorities, including such mass transit hubs as Santa Clara Valley Transportation Authority, Bay Area Rapid Transit District, and New York City - Metropolitan  Transportation Authority, are turning to open source technologies, like Drupal. 

Why? Because it is possible to handle real-time data in Drupal and harness such resources as GTFS, Google APIs, and other APIs, to fuel a great-looking, purpose-driven site, be it on a smartphone, ipad, or pushed outward to something else entirely, like digital billboards and signage solutions.

Why Drupal for Transportation?

The Drupal open-source content management system (CMS) fits the unique needs of the transportation and transit industry. 

Drupal supports:

  • high-traffic websites with hundreds, thousands, or more registered users of varying privileges and access roles;
  • websites that require the ability for many users to act as contributors and publish content in the form of pages, articles, blog posts, and forum posts;
  • sites with complex structures that require a finely tuned architecture to serve relevant content to its end users;
  • organizations that demand very high security of their websites; and
  • websites that receive a high volume of traffic and require a solid backend in order to ensure functionality in spite of traffic spikes.

Drupal is non-proprietary and benefits from one of the largest open-source communities in the world. It has more than a million passionate developers, designers, trainers, strategists, coordinators, editors, and sponsors working together to constantly develop, iterate, update, refine, and improve its technology.

In addition, thousands of Drupal service providers benefit from support through digital experience platform Acquia’s forward-thinking, ever-expanding catalogue of enterprise-ready technology solutions and technical support. 

I encourage you to connect with us to learn more about Drupal solutions in transportation -- or any other large-scale industry. We’d also love to receive the opportunity to bid on your next project or complete an RFP. 

Jun 24 2020
Jun 24

The content management ecosystem at large and Drupal in particular have evolved tremendously over the last 20 years, and many developers who haven't engaged with the CMS market in a while may have an outdated conception of what a CMS can do. With Drupal 9's release at the cutting edge of the CMS world, now is a better time than ever to reintroduce developers at large to what Drupal can accomplish.

Stack Overflow recently invited Drupal Association CTO Tim Lehnen to write about the evolution of the CMS marketplace, and what Drupal has to offer:

For many people discussion of content management systems raises unpleasant specters of the early 2000s. But while CMS platforms may not feel like the shiniest new tech on the block, they still have a lot to offer, and they've evolved in ways that might surprise you. Let's talk about Drupal, a 20 year old open source project that still manages to be on the leading edge of the CMS world.
The Overflow

Read the article

Jun 24 2020
Jun 24
Reading time 6 mins clock

As marketers and content editors, one of your biggest frustrations is not getting content out quick enough, right?

Not through lack of trying - trust me I’ve been there. 

You're trying to get images to sit right on the page, the layout doesn’t ooze awesome user experience but it’s beyond your skills to fix it. Now, we’re stuck in limbo of publishing content quickly but not quite right or waiting goodness knows how long for your development team or agency to fix it. If your internal team or agency don’t run a tight ship when it comes to support services, you’ll really have no idea how long you’ll be waiting.

But what if I told you that there’s a new(ish) kid on the block who can remedy that and help you become self-sufficient?

Drupal. Yes, we know it’s not new but Drupal 9 is.

There’s a mountain of information out there about all the exciting technical advantages which will make developers' lives easier with both Drupal 8 and the newly released Drupal 9. 

But, as the team which spends the most time creating amazing online customer experiences, shouldn’t we be talking about how Drupal 8 and 9 will end your frustrations.


So here we go...

Easy Content Editing

When information changes, which it does, updating your content is key to giving your website visitors the best experience. Your team originally spent ages meticulously writing content and then equal amounts of time making it look alluring on the page. 

Now you’re editing content and continually flipping back and forth between edit and preview mode, trying to understand the connection to the rest of your content.

Drupal 8 and 9 means this is a thing of the past. Your content team can edit on-page surrounded by the context of the rest of the page just as your visitors would see it. 
With the introduction of an in-place editor, your content editing team can select any editable element on the front end of your website and edit it directly in place without the need to go anywhere else.

The in-place editor uses a What You See is What You Get (WYSIWYG) experience meaning your content is shown as it will appear as shown in the image below so no need to learn any HTML to get it formatted correctly.

This in-place or inline editing experience has been created with content editor’s in mind and it’s not the only easy way to edit or create content. Whether you’re making a quick change from your mobile before a meeting or rewriting a whole paragraph on the train while commuting, you no longer need to be tied to your desk to update content because the backend of your site is mobile-friendly.

person using phone at train station by Daria Nepriakhina on Unsplash

Content Moderation

How often does your content get stuck in the review cycle because there’s no set workflow or anywhere for you to approve content for publishing?  

In terms of moderation, Drupal has introduced the use of workflows to allow you to keep track of your team’s content flow using ‘states’ and ‘transitions’.

State: States are the different statuses your content can have (draft, published etc). The default states are "Draft", "Published" and "Archived". You can set up new states, such as "To Review" or “Approved” to manage your workflow and content better. Your workflow can be as basic or granular as you need to manage your team and content best.

States on Drupal

Transition: After you set up the states, you can create the actual workflow between them. You decide which direction content moves from state to state for example, from ‘draft’ to ‘ready for review’. 

Transitions on Drupal

Beyond just being able to create workflows and determine the direction in which content can flow, you’re able to choose which level of user can and should move content from one state to another. You wouldn’t want a junior content writer approving content for publication however you may have a state where your team can proof one another’s work on a peer-to-peer level for basic things such as grammar, spelling and fact-checking.

With the use of content moderation, there are times when your content needs approval from other teams or departments in your organisation. The legal team, for example, may want to approve your content message isn’t going to cause any legal issues. For a charity, the fundraising team may want to ensure that the content is on message for their current goals.

Revisions have been around for a long time, however, they haven’t always been used to their full potential. Drupal 8 and onwards gives you better visibility of revisions. Track who changed what and when in your content using revisions across more areas of your website. A well-trained content or web editor team will also be able to log a message to any edits so everyone knows why a change was made.

Drupal keeps a log of all revisions in the system, so you can easily revert to a previous version if and when needed.

Person typing on laptop by Glenn Carstens-Peters on Unsplash

Layout Builder

How much time and budget is spent on your development team or agency fixing page layout issues which seem so simple to just ‘move it over there’.

Well it’s time to refocus your budget back onto core marketing activities because the long-anticipated ‘drag-and-drop’ layout builder is Drupal’s answer to Wix and SquareSpace. 

You can easily and quickly create layouts using drag-and-drop meaning you no longer have to submit a support ticket to your agency or wait for your internal development team to make layout changes in your sites theme that prevent you from publishing your content and creating positive customer experiences.

There are three ways you can use the layout builder:

  1. Layouts for templated content. The creation of "layout templates" that will be used to layout all instances of a specific content type (e.g. blog posts, product pages).
  2. Customisations to templated layouts. Override your layout templates on a case-by-case basis.
  3. Custom pages. The creation of custom, one-off landing pages.
Person Drawing Website Layouts by Avatar of user Davide Baraldi on Unsplash

Digital Asset Manager

Have you found you and your team have ‘favourite’ images that seem to get used over and over again? Are images always saved onto the content author's machine?

Digital Asset Management is becoming increasingly important and Drupal has recognised this. If you don’t already have a Digital Asset Manager elsewhere, this is a great start. With the introduction of collections, you can save files and images as collections that are all related. You can add labels to folders, files and collections for easier sorting and searching.

The file type you can store within Drupal is endless with the ability to add extra file types to your library (although some may need extra modules to work for more complex needs).

5 media types on Drupal 8

Your files can be added either individually or using bulk upload. 

The feature we really love is that when you’re adding media to your library you can set the maximum number of times that media can be embedded in your content. Meaning one image isn’t over used across your site.

person talking a photo of sunset by Vitaly Sacred on Unsplash

So, Why Should You Care About Drupal 9?

It’s boring, we know, but understanding why Drupal 9 exists as a major release is important to everyone. So, let’s get it over with…

Until the release of Drupal 9, each new version (Drupal 6, 7, 8 etc.) was considerably different. They boasted new and exciting features that Drupal website owners and developers had never seen before, but... 

Upgrading your website, let’s say from Drupal 7 to Drupal 8, meant a complete rebuild of your website and a full content migration - almost as much work for developers (and cost) as moving from WordPress to Drupal.

Upgrading to Drupal 9 from Drupal 8 will be significantly less effort and costly to everyone’s delight and that’s the future of Drupal.

With little to no new features for marketing or otherwise, Drupal 9 has been released as an opportunity to clean up the code and remove any functionality that is no longer needed for the future, before Drupal 8 is no longer supported in November 2021.

Drupal 9 is not a big deal, it’s the start of a new future for Drupal using a ‘continuous innovation model’.

The big deal about Drupal 9 is that it shouldn't be a big deal.

Dries Buytaert, Founder and Project Lead of Drupal

Dries Buytaert

Founder and Project Lead of Drupal

Plan for the Future

If you’re one of the almost 20,000 UK sites still running on Drupal 7 or below, it’s really time to start planning for the future. Your final hurdle in upgrade fatigue will be Drupal 8. After which, using Drupal’s new model will relieve your development team or agency of needing to rebuild your website each time a major upgrade is required.

Ultimately, it’ll be one of the last times your budget will need to be diverted away from core marketing activities for anything more than a rebrand or redesign which is planned and dictated by you and your organisation.

Looking to upgrade your Drupal website and take advantage of becoming self-sufficient, publishing content quickly and correctly? Contact our team at [email protected] or call 01925 320041

Want to upgrade your website but don’t know where to start? Read Dan’s blog on how upgrading your Drupal website is Easy if it’s done smart.


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