Planet Drupal

Syndicate content - aggregated feeds in category Planet Drupal
Updated: 20 hours 24 min ago

Ben's SEO Blog: Drupal SEO Checklist Module: How to Install, Configure and Use

Tue, 09/29/2020 - 21:14 The Checklist API module is required: 

Credits & Thanks

Thank you to Travis Carden (TravisCarden on for helping Volacci create and maintain the SEO Checklist module. Travis also created the required Checklist API module.

About the SEO Checklist Module

The SEO Checklist module uses Drupal SEO best practices to check your website for proper search engine optimization.

The SEO Checklist module and the original book from which this guide is based upon, were designed to work together. While the SEO Checklist module tells you what to do, the book (and this guide) tells you how to do it. Over the course of this guide, we go through the SEO Checklist module one task at... Read the full article: Drupal SEO Checklist Module: How to Install, Configure and Use

Dropsolid: New: Gitlab integration into Dropsolid Experience Cloud

Tue, 09/29/2020 - 14:28
29 Sep Nick Veenhof

Today, Dropsolid is proud to announce that all customers that have a project on Dropsolid Experience Cloud have been migrated to a private GitLab instance which enables in-browser code changes and extensive collaboration options to manage their code.

Collaborating and allowing code review with a direct deployment option to one of the environments or instantly loading a project locally, making a change and asking someone else to review and push has never been easier.

    Saving time with Open Source

    Dropsolid Experience Cloud powers more than 200 users that make code changes to one of our 2000+ environments every single day. To give you an idea, at the time of writing, the amount of commits pushed in a single day is above 150, and growing every day. If you could save 10 minutes everyday, by using great tooling, this could save one developer a whole working week a year, by bringing great Open Core technologies together and making them work like a harmonious orchestra. And this is only taking the time saved with taking the code portion of a digital project into account.

    Let me give you an example. A change could be to correct a spelling mistake in a project. Which could be easily fixed were it not that someone could work on 10+ different projects. Finding the project, making a git clone, making a feature branch, making the change, committing it and making a merge request would all be manual steps that could be avoided. 

    Notable features are:

    • Merge requests (also known as pull requests).
    • Discuss changes and improve code together.
    • Native integration with Dropsolid’s CI runners.
    • Single Authentication using the OAuth of Dropsolid Platform.
    • Take full control while protecting your main branch from rewriting its history.

    Dropsolid Experience Platform wants to bring the best of those Open Core technologies closer to the end user. That is why, next to Drupal, Mautic, Apache Solr & Apache Unomi we also chose to embed GitLab in our mix to create the only real Open Digital Experience Platform in the world that is loved and embraced by developers.

    In Phase 2 of our GitLab rollout we will also allow customers to enable Gitlab pipelines, either with runners that the customer brings or in packages that can be purchased at Dropsolid to run CI/CD tests with. It goes without saying that all official GitLab integrations also run on the Dropsolid Experience Cloud’s version of GitLab. 

    Stop working around limitations of other deployment platforms, choose openness today and sign up for the Dropsolid Experience Cloud.

    Specbee: A Comprehensive tutorial on the ColorBox Module for Drupal 9 (And how to extend it)

    Tue, 09/29/2020 - 13:07
    A Comprehensive tutorial on the ColorBox Module for Drupal 9 (And how to extend it) Megha Kundar 29 Sep, 2020 Top 10 best practices for designing a perfect UX for your mobile app

    Images play a significant role in improving the user experience of a website. A study shows that 90% of the information we pass on to our brains is visual. Many websites work around this theory alone and bombard users with tons of rich media like images and video files. Most of them overlook the presentation aspect of these media files and end up with a disappointing user experience. What they need is a tool like ColorBox that is an extremely lightweight jQuery plugin which allows you to display images elegantly and intuitively. The styles and functionalities are highly customizable via CSS and Javascript. The Drupal ColorBox module is compatible with Drupal 6, 7, 8, and now Drupal 9 too! In this article, you will learn how to configure, implement and further extend the ColorBox module for Drupal 9. 

    ColorBox for Drupal 

    The ColorBox module integrates with ColorBox jQuery plugin into Drupal. The plugin is a lightweight customizable lightbox for jQuery. Among the other competitor “box” modules that are used for similar purposes (Thickbox, Lightbox2, Shadowbox, Greybox, etc.), the ColorBox module is the most popular and has the highest number of installs. The usage of Drupal ColorBox doesn't just end with displaying uploaded images beautifully. It also supports styling for like videos, pdfs, node, taxonomy, webforms, iframed content and more. The styling can be controlled through the CSS so the appearance is highly customizable. Functionality is also easily customizable via the JS file without having the need to touch the HTML. It supports photo grouping as well and preloads upcoming images

    Steps to Install the ColorBox Module
    • Install the ColorBox module with composer. composer require 'drupal/colorbox:^1.6'
    • Download the ColorBox plugin 1.x.

               1. Using the Drush command

    (Note: If you are using the drush command to install the ColorBox plugin, you must enable the module and then run the below command)

    drush colorbox-plugin

               2. Manually download ColorBox plugin
    Download the Colorbox plugin and unpack in /libraries. Make sure that path to the plugin file looks like:

    •       Enable the Drupal ColorBox module.
    drush en -y colorbox

    Congratulations! You are now ready to use the features of the ColorBox module.

    Configuring the ColorBox Module

    Configure the Drupal ColorBox module by navigating to Configuration -> Media -> Colorbox settings.

              ColorBox ConfigurationHow to Create an Image Gallery Using ColorBox

    1.    To make an image gallery, we first need to add an image field for one of the content types. Choose the label name and then click on the save and continue button.

               Add an image field

    2.    Next step is to configure the field settings. We can add the default image when there are no images uploaded. An alternative text for accessibility purpose and a title. The allowed number of values settings says maximum upload limit for a field. Select the desired option and then click on the save field settings button.

              Configure Field Settings

    3.    Then we will set the other configurations for this image fields like Allowed file extensions, File directory, Maximum and Minimum image resolution, Maximum upload size, alt and title for the image and then click on save settings.

              More Configurations

    4.    Now, we are done image field configuration. Let’s set the formatting option for the image field created for ColorBox. Navigate to Manage display of the content type and then set the format option from the dropdown as ColorBox. Clicking on the gear next to the format option allows us to customize the image displayed. Once all the options are updated, click on the update button and then click on save option.

            Manage display of ColorBox

    5.    Now Let’s add some content into our ColorBox image gallery by clicking on Add content. We can change the order of images uploaded based on image weights. And then click on the save button. The display of the content will look as below.

           The ColorBox Image Gallery

    6.    Finally, clicking on any of the images displays the image within the ColorBox modal as shown below.

    You can also do the same with video embedded field.

    How to Integrate with the ColorBox Inline Module

    The Colorbox Inline module allows the user to open the content that is already on the page within the ColorBox.

    • Install the colorbox inline module composer require 'drupal/colorbox_inline:^1.2'
    •    Enable the module using drush command / Manually enable through drupal UI  
    drush en -y colorbox_inline
    • Drush en -y colorbox_inline
    • Open image in ColorBox modal which is on the page using a link
    • Navigate to add content -> Any content type which has body field 

    Change the text formatter from basic html to full html

    • Then click on the save button.

      Here in above example, data-colorbox-inline attribute of anchor tag can also contain class name instead of id. view image is a link where it opens an already existing image in a page (modify the changes according to your project requirements). We can use this module to render any content - video, webform, etc., in a similar manner.

      On viewing this page, you can see a link with the image. And on click of the view image link, a ColorBox popup will appear as shown in below image.

              ColorBox image popupHow to Integrate ColorBox With ColorBox Load Module

    The ColorBox Load module allows users to load the content into ColorBox using Ajax. With this module, users can specify a series of paths which when rendered will open a ColorBox with the content. It depends on the NG Lightbox module for paths admin interface. This method can be used to render nodes, pages, web forms and more.

    Install the colorbox load module

    composer require 'drupal/colorbox_load:^1.2' Enable the module using drush command / Manually enable through drupal UI 

    Implementing a login popup using ColorBox Load module. drush en -y colorbox_load

    1.    Configure the ColorBox Load module by navigating to Configuration -> Ng Lightbox (Under Media). We can configure the paths for which we want to provide the ColorBox modal display, width of the ColorBox modal, class for the lightbox modal and renderer options. (Choose your option as desired).

           Configuring the ColorBox Load module

    2.    Now we can see the Drupal ColorBox modal implemented for the login page by clicking on the login button on the homepage.

    How to Integrate ColorBox with Drupal Views

    For some websites, we might need a feature that can display a ColorBox modal for a list of images. This can be done with the help of the Views module.
    1.    Go to structure -> views -> add view.
    2.    Add the image field to view and configure the formatter to ColorBox and other settings accordingly and then save the view.

            Adding Views

    3.    Now take a look at the view that you have just created (In my case I have created a view as a page). You can see a list of images and when you click on one of them, the individual image is shown in the ColorBox popup window.


    The need for more interactive and user-friendly websites have given birth to various tools that improve user experiences. With images and other rich media being one of the vital factors for a successful website design, ColorBox does an amazing job at esthetically presenting images and other media. Drupal integrates seamlessly with this jQuery plugin with the ColorBox Drupal module. We hope this tutorial on the Drupal ColorBox module has helped you get a deeper understanding of this beneficial module. Want to know how our Drupal experts leverage powerful modules like these in their projects? Contact us now, we’d love to hear from you.

    Drupal Planet Drupal 9 Drupal 9 Module Drupal Development Drupal Module Shefali ShettyApr 05, 2017 Subscribe For Our Newsletter And Stay Updated Subscribe

    Leave us a Comment

      Shefali ShettyApr 05, 2017 Recent Posts Image A Comprehensive tutorial on the ColorBox Module for Drupal 9 (And how to extend it) Image Why the AngularJS and Drupal Combination will make you rethink your web strategy Image How to toggle between Dark and Light Mode in Drupal 8 (or 9) based on user preference Want to increase your organic visibility with Drupal? TALK TO OUR DRUPAL SEO EXPERTS Featured Success Stories

    Know more about our technology driven approach to recreate the content management workflow for [24]


    Find out how we transformed the digital image of world’s largest healthcare provider, an attribute that defined their global presence in the medical world.


    Discover how a Drupal powered internal portal encouraged the sellers at Flipkart to obtain the latest insights with respect to a particular domain.


    Promet Source: Retooling Higher Ed Sites for the New and Next Normal

    Tue, 09/29/2020 - 04:49
    Covid-19 has presented higher education websites with distinct challenges. During a semester when it's iffy  whether students or faculty will be present on campus at all, a cohesive communications platform that offers easy access to all necessary updates, information, and resources is more important than ever before. Waubonsee Community College was ahead of the pandemic, reaching out to Promet Source for help in redeveloping its mywcc communications platform at the very start of 2020.

    undpaul: Managing web projects with Scrum

    Tue, 09/29/2020 - 01:00
    Overall goal of our projects is to create or enhance websites that exactly meet the specific requirements and expectations of our customers. More and more the path determines the success of the results. So we at undpaul decided some years ago to apply agile project management and now follow the Scrum framework.

    Debug Academy: A New Way to GovCon - A 2020 Recap

    Mon, 09/28/2020 - 16:25
    A New Way to GovCon - A 2020 Recap A new virtual experience with the same great outcome.

    This year was anything but ordinary when it comes to a lot of things, and Drupal GovCon was no exception. We enjoyed seeing the transition from a fully in-person to a fully online event, and how Drupal camps can still be successful no matter what curveballs are thrown at them. With that, we want to throw a big shout-out to everyone involved in putting together the camp this year and say cheers to another successful event.

    lindsey.gemmil… Mon, 09/28/2020

    Gábor Hojtsy: Testing Composer 2 RC1 with Drupal 9: huge memory and time savings; and what does it mean for Drupal

    Mon, 09/28/2020 - 15:46

    Drupal 8 and 9 core were already made compatible with Composer 2 back in May. Last week the Drupal package repository ( rolled out full support for Composer 2 as well. While Michael Anello did Drupal vs. Composer 2-alpha2 benchmarks in July and Malabya also did an even more detailed benchmark in July, various things have been improved in Composer 2 since July and the improvement should also show.

    Inspired by numbers posted by Konstantinos Skarlatos from a simple scenario to the #composer channel today, I went ahead and attempted to produce a reproducible scenario you can also try at home. I included all commands to copy-paste. There are no external dependencies other than a PHP executable on your command line and curl to download files as used. For reference, my PHP is as follows (definitely not the latest):

    $ php -v PHP 7.3.11 (cli) (built: Jun 5 2020 23:50:40) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies Set up the latest Composer 1 and 2 locally

    First let's grab the latest Composer versions locally. This will avoid any confusion as to which version is used when.

    $ curl --output composer-1.phar $ php composer-1.phar -V Composer version 1.10.13 2020-09-09 11:46:34 $ curl --output composer-2.phar $ php composer-2.phar -V Composer version 2.0.0-RC1 2020-09-10 15:39:45 Install Drupal 9 with create-project

    Make sure that we are not using cache and ask composer to profile itself. This got me two Drupal 9.0.6 copies, again to separate our testing environments properly.

    $ php composer-1.phar --no-cache --profile create-project drupal/recommended-project composer1site [...] [9.3MiB/41.02s] Memory usage: 9.35MiB (peak: 197.23MiB), time: 41.02s $ php composer-2.phar --no-cache --profile create-project drupal/recommended-project composer2site [...] [12.5MiB/18.29s] Memory usage: 12.48MiB (peak: 13.71MiB), time: 18.29s

    The time is cut in half but the peak memory usage had an even bigger drop to less than 7% of the Composer 1 memory peak with Composer 2.

    Adding and removing a Drupal module

    You only do site creation once for a site. Let's add and remove a Drupal module! Konstantinos tested with Metatag which sounds like a good one to do. While Metatag only has Drupal project dependencies, the savings are likely similar for projects with 3rd party dependencies.

    $ cd composer1site $ php ../composer-1.phar --no-cache --profile require drupal/metatag [...] [629.4MiB/65.35s] Memory usage: 629.36MiB (peak: 1557.29MiB), time: 65.35s $ php ../composer-1.phar --no-cache --profile remove drupal/metatag [...] [450.9MiB/47.98s] Memory usage: 450.85MiB (peak: 1377.67MiB), time: 47.98s $ cd .. $ cd composer2site $ php ../composer-2.phar --no-cache --profile require drupal/metatag [...] [13.7MiB/3.13s] Memory usage: 13.67MiB (peak: 14.23MiB), time: 3.13s $ php ../composer-2.phar --no-cache --profile remove drupal/metatag [12.1MiB/0.18s] Memory usage: 12.1MiB (peak: 12.49MiB), time: 0.18s

    Ok, that is pretty jaw dropping. Adding Metatag goes from 65 seconds down to 3 seconds. Removing Metatag goes from 48 seconds to 0.18(!) seconds. Memory usage goes down to 1% (one percent!), from a gigabyte and a half to 12-14 megabytes.

    What does this mean for Drupal?

    Given the explicit support on, you should be able to use Composer 2 for your Drupal site builds whenever you are comfortable, maybe already in the RC stage or later on as it gets stable. Assuming any composer plugins you need are compatible. Drupal sites are often using cweagans/composer-patches, which itself still needs a patch to get compatible.

    Not everybody is using composer at all to build sites. However, an increasing number of projects require external Composer dependencies to function. Based on last week's data from Ryan Aslett from the Drupal Association, 12% of projects directly have a third-party Composer dependency. Another 6% have a Drupal dependency that in turn has a third-party Composer dependency. So even if we only look at direct and one-level indirect dependencies, 18% of projects require Composer to be installed properly. I also looked at various segments of projects and the ones requiring Composer are very well distributed. 15.2% of the top 500 projects (by usage) require Composer while 16.2% of the top 5000 do. So if you are not yet using Composer to build your Drupal sites, it seems to be only a matter of time. The improvements in Composer 2 should help a lot with its adoption I think.

    These improvements will also be crucial for the Automated Updates initiative which has Composer 2 compatibility on their roadmap as well. Signature verification is only possible with Composer 2 and the lower memory and time requirements allow it to be run from web requests.

    Finally, the downloadable tarballs of Drupal core are built with Composer 1 currently to make it easy to transition from a tarball based site to a Composer site. Allow Drupal 9 (including dev builds) to use Composer 2, part 2 is open to move that to Composer 2. Unfortunately a sizable blocker to that is Composer's "prefer-stable" setting cannot be relied on to produce a stable release. That would need more discussion and a solid resolution to move forward. There is less than 3 weeks before Drupal 9.1 is locked down, so your feedback there would be more than welcome!

    Danny Englander: Drupal 8 & 9 Tutorial: a Method to Group Fields in Layout Builder Using Ctools Entity View

    Sun, 09/27/2020 - 10:00

    I've been building Drupal 8 sites with Layout Builder over the past year. One feature that I think is missing is the ability to group specific fields inside a wrapper for enhanced theming; a layout within a layout if you will.

    There are a few issues open in core for this feature but these seem to be just in the planning stage right now. There are some workarounds to achieve this feature.

    • Create a view with an argument that just renders the fields in context to the entity item they are a part of.
    • Use an entity view via the contrib. module, Chaos Tool Suite, AKA Ctools.

    It is the second solution above that I will write about here as it is my favorite one and one which a developer friend of mine told me about. The idea behind Entity View is that you add some fields ...

    OpenSense Labs: Layout Builder vs Paragraphs

    Sat, 09/26/2020 - 14:30
    Layout Builder vs Paragraphs Gurpreet Kaur Sat, 09/26/2020 - 19:00

    Websites have overpowered the world of businesses today. There aren’t many business people left who do not have or want an online presence for their business. And websites are just the way to accomplish that. Now, building a website is not complicated at all, with just one youtube tutorial, you can do that. The tricky part is ensuring that it meets all the standards that the end user will desire. Websites built using Drupal and all its accompaniments are often considered to be up to the user standards. 

    From world renowned privately owned enterprises to governmental organisations, Drupal has successfully served everyone. Drupal’s success is primarily attributed to the versatility and functionality it can provide to the web designers and content creators throughout the process of website development.

    Continuing on the same lines, today we will discuss two such features in great detail to make you understand their importance, use and workings. We are going to talk about Layout Builder module, one of the most sought after modules in recent times, and Paragraphs module. Let’s dive right in.

    The Seasoned Paragraphs  This is how the paragraphs module will segregate your content into different paragraph types.

    If you are reading this article, you must be familiar with the various modules of Drupal. You must also be familiar with the needs of websites and how complicated they can become. To satiate those needs, I will be telling you about one of the most convenient and user-friendly modules, which is Paragraphs.

    Paragraphs module is a great tool that gives a high degree of editing power to the end users of a website. It does so by letting the end users choose predefined paragraph types that are independent from one another. This allows the web builder to avoid putting all the information in one WYSIWYG body type.

    With this module, you can add a hero image that would be the banner of your webpage, you can add images and you can add grids as well. All of this can be done by simply selecting the types with the same name. Can website design become any more easy?

    Although there are no default Paragraph types, you can easily create as many as you want. 

    It is up to you to decide how many columns you want and where you want them. On top of that you also get to decide how much leeway you want to give to your end-users in terms of future edits.

    The Modern Layout Builder With Layout builder, you can add sections with each having a set of regions for the content to be placed thereby resulting in more flexibility than Paragraphs

    The other convenient and user-friendly module is Layout Builder. Layout builder is a multi-functional tool that allows the content creators the ability to make content appear on their website as they wish to. 

    Layout Builder has multiple settings that can be used to build pages from the ground up. Its highlighting feature is the visual layouts. When a layout is selected, if the web builder wants, he can implement the same throughout his website for consistency and brand image. If that is not what is desired by the web builder, he can also create customised templates for individual pages. This kind of ease in design is unfound in other options. 

    Layout builder has become increasingly popular amongst designers and writers, and the reason is the power of customisation it provides. The below video by Dries Buytaert will give you a glimpse of what that really looks like, all you have to do is drag and drop.

    How Advantageous Can Paragraphs and Layout Builder Modules Be?

    I have already mentioned that Paragraphs and Layout Builders are two most popular modules in Drupal. So, how can I say this? I have reasons, validations and explanations for my claim, and all of them can be characterised as their advantages. People only make things popular because they like, and likability and advantageousness go hand-in-hand. So, let us delve right into them.

    Paragraphs  Layout Builder 
    • No limits for Paragraph types
    • Grouping and reusing of Paragraph types
    • Flexible content model 
    • Simple and clean structure
    • Multilingual support for content 
    • Build from scratch 
    • Control over the layouts you want
    • Use of block types
    • Better structures for content 
    • Minimal coding required 
    • Enhanced authoring experience 
    Paragraphs and Its Merits 

    Paragraphs come with an array of features that only enhance its beneficial aspects. This may seem like a simple tool, but it has the ability to make your website design as appealing as it can get. 

    Forget limits 

    Let us start with the most helpful merit and that is Paragraph’s limitlessness. There is no limit as to the number of configurations you can create using Paragraphs. You want 20 different paragraph types scattered throughout your webpage, go for it!

    Group and reuse 

    Not only can you group various fields of your content into new complex elements, you can also reuse the components you have already created.  Can you possibly tell me that this does not fascinate you?

    Flexible to the core 

    Moving on, a website is constantly under construction, there is always going to be something or the other that needs to be updated, corrected or added. Most of the time these changes are not necessarily huge, and you do not need to change the entire layout. The advantage of Paragraphs is that it provides a great deal of flexibility in the content model, so that minor changes can easily be made by the content authors with ease.

    Simple, yet impactful 

    Paragraphs are often considered to be too plain and bland. Many regard this as a disadvantage, however I tend to disagree here. Yes, paragraphs are simple, but that is a benefit because simplicity means few clicks. The result; you do not need to be an expert to use this module, a content editor with minimal experience in Drupal can also use it with the least amount of effort. 

    Its intuitiveness helps the web authors and builders to add pop-ups and quotes and easily rearrange them. On top of this, the simplicity of Paragraphs also means that your design will not seem cluttered, resultantly, your site will not slow down in its performance. Now, you tell me how can simple be bad for you, when it is actually avoiding a mess? 

    Multilingual Setup 

    Websites are becoming more multilingual in the present, so the setup of multiple languages in the content becomes somewhat of a necessity. Here, the paragraph module comes quite handy as it works within a multilanguage setup. 

    Layout Builder and Its Merits

    So far, you must have been impressed with the advantages of paragraphs, now prepare to be dazzled by the umpteen merits of the layout builder.

    Builds from scratch 

    The best feature of a layout builder is that it gives the developer the potential and resources to build something from the ground up. All you have to do is make custom block types, arrange them as you want and fill them up with content, pictures or videos and you are done.

    Lets you be in control

    With a layout builder, you will always be in control. I say this because customisation is ingrained in its formula. You can use it to make configuration of your liking, and if you want, you can implement your created template and use it throughout your website. The layout builder also allows you to build customised landing pages that will have your creative stamp all over it.

    Blocks all the way

    Blocks can be termed as the foundation of the layout builder, without them, it would be hard to imagine. Blocks are what help you get an idea of how your content would be displayed on the actual page. From globally available blocks suitable for all pages to uniquely build custom inline blocks made for specific pages, layout builder has your needs covered.

    Structures your information 

    Have you ever been to a website that had no structure at all? The information was all over the place and you couldn't tell where it began and where it ended? If you have, then you know how important structure is for a website. Layout builder helps you build a particular structure for your website that would organise your content appropriately. If you want e-form, customer testimonials and other such content information on one page, layout builder will provide a template that will segregate the information in a way that it does not look haphazard. 

    Less custom code 

    Layout Builder is popular because it mandates less custom code. This means that the module is less time-consuming and less complicated, once you become familiar with it. The use, maintenance and creation of content becomes easy with less code involved.

    Better authoring experience

    A website’s content can easily make or break it, so it has to be pitch perfect and in accordance to the needs of the site’s target audience. With a layout builder, you can be at ease with this aspect. It has proven to enhance the authoring experience of content creators by providing an improved interface to effectively communicate data about everything the author wants to.

    Are Any Limitations Holding Them Back?

    With the number of benefits you have read above for both paragraphs and layout builder, you might be inclined to think that they could not possibly have any demerits. Unfortunately, they do lack in some aspects. 

    Paragraphs Layout Builder 
    • Not a core module
    • Becomes messy with intricate layouts
    • Dependency on developers.
    • Cannot simply drag and drop sections
    • May not connect nodes
    • Template combinations may become problematic 
    • May be difficult to achieve consistency with the customised layouts
    • Needs time to learn and adapt 
    • Needs to be customised with the use of other modules 
    Challenges of Paragraphs module

    Starting with paragraphs, its drawbacks are not necessarily drawbacks, they are more like functional mismatches to your needs as a web developer. Let us find out how.

    Not part of Drupal core

    Unlike Layout Builder, which was made a part of Drupal core ecosystem in Drupal 8.7, the paragraphs module is not part of the Drupal core. Although it does not come as default in Drupal, it is still quite popular. Being a contributed module, you would have to separately install it.

    Can only handle simplicity 

    Paragraphs were intended to make website design simpler for the non-technical folks. The problem with simplicity is that it cannot handle intricacy. So, when your content is anything but simple, paragraphs become messy and the output is just not upto the mark. With more nested paragraphs, the editing experience may slow down. Also, to ensure that the paragraphs are being displayed as preview, you have to always customise the Form display. If you do not do that, you will end up with a mega-form. 

    Dependence on web developer  

    Paragraphs also do not provide free reins to the content author. He would have to be heavily reliant on the developer for setting up even the tiniest of changes.

    No drag and drop 

    The ease of picking up a section from one part of the layout and dropping it in a different part is unfound here.

    Challenges of Layout builder module

    While the problem for paragraphs was its simplicity, the problems for layout builder stem out of its complexities. Let us understand how.

    Challenges with nodes

    Every blog, article, forum topic and even pages are stored as nodes in Drupal. Now, when a web builder makes new content, most often, he or she would relate it with an old piece of information. With layout builder, you may notice that block content is not entirely connected to nodes.

    Challenges with combinations 

    The templates in a layout builder can be used any way the designer wants to. He or she can make a number of combinations with the templates. However, when a custom-made layout is used with a template-based one, it becomes quite tricky to get right.

    Challenges with consistency 

    With layout builder, you can implement one layout throughout your website with ease. Although it is true, when customised layouts are the centre of attention for the entire website, it may be difficult to enforce sitewide consistency.

    Challenges with control 

    This is going to a little sound paradoxical, the layout builder provides more control to the content editors as opposed to paragraphs. When you do not trust your content creators’ judgement implicitly, this can become problematic.

    Challenges with learning 

    The switch to layout builder comes with a learning curve for the content writers, which can take some time. This module does not operate with form-filling like others, so a change in the way the work is done becomes mandatory and time consuming. 

    Challenges with dependency on additional modules 

    The layout builder may need customisation and that can be achieved through the help of other Drupal modules. Block Blacklist and Layout Builder Restrictions aid in limiting the block type and layouts, while Layout Builder Modal aids in enhancing the user experience.

    Which Would Win the Race?

    Before I answer this, it is important to know that the selection of a module depends on the developer’s needs. So, the winner in this module race would vary in accordance to the needs and wants of the site and its developers, both the designer and the content author. Let us have a look at these needs.

    Paragraphs is suitable when Layout Builder is suitable when
    • You need to process content again;
    • You need to accommodate nodes;
    • You need nested paragraphs.
    • You need landing pages;
    • You need a customised web page;
    • You need to tweak the existing templates. 
    Paragraphs and reuse 

    The paragraphs module is ideal for situations that mandate simple solutions, with reuse being the primary answer. By reuse, I mean using the existing content again, while making changes in the website. With paragraphs you can use the earlier content in an entirely new webpage with ease. You can also use the same content in accordance to the nodes.

    Apart from this, when nested paragraphs are of the essence for your content, paragraphs are bound to become your best friend. 

    Layout Builder and customisation 

    The suitability of layout builder varies a great deal from paragraphs primarily because reuse is not a term this module uses much. It is all about the new energy.

    Whether you want to create new landing pages with a variety of blocks, views and fielded content structured like grids or you want to customise a page with a layout that you created yourself and is one of a kind, layout builder will help you. 

    Apart from creating completely new pages from the ground up, layout builder is also perfect for tweaking the existing pages with templated layouts. 

    You have to remember that both of these modules are configurations, they will not make the content for you, they would simply arrange it. So, when you make your choice ensure that you have a pre-formed vision and awareness of the layout you want for your pages. Once you have that the choice would become very easy for you. If the choice is still difficult for you, know that you can use the combination of both of these in your content configuration, so you do not really have to decide.

    The Bottom Line 

    Both these modules are quite amazing at the work they do for your websites, so choosing the better one out of the two is somewhat tricky. Of course, like I have told you that your need plays a pivotal role in this decision. However, ending this article without a clear winner would make it seem somewhat incomplete and I do not want that. 

    So, for me layout builder is the better choice and I will tell you why. The kind of intricacy layout builder offers and the control I would get for layouts for each page, that too with consistency, makes the layout builder the one for me. 

    Apart from these two, Gutenberg is also gaining some traction as a flexible module. However, it stores the content in a large body field and this often compromises the structure of the content.

    I also want to mention one more fact and it is that flexibility often comes with a price. Having a really flexible content can often impede with the accessibility of  your website as your content may lose its semantic markup. Also make sure to add metadata to your content in addition to flexible content components..

    All in all, Drupal allows you to create websites and their content in a well-structured manner and despite what module you choose, the end result is always going to be satisfactory. Contact us at to get the best of both the worlds in your next Drupal project.

    blog banner blog image Drupal module layout builder paragraphs Drupal Website Design Blog Type Articles Is it a good read ? On

    OSTraining: OSTips - How to Create New Date & Time Formats in Drupal

    Fri, 09/25/2020 - 16:10

    I don't know about you, but as a site builder when I add a date field to a content type in Drupal, and I tell it I do NOT want the time just the date and then I go to a node, and I enter the date, and it shows me both the date AND the time... it kind of drives me crazy!

    How do we fix it? In this video, I'm going to show you how to create new date & time formats in Drupal sites, so you don't have to worry about getting a time and a date when you only want the date.  And, as a bonus, you'll get it in the format that you want.

    Let's get started!

    OpenSense Labs: The unlikely Drupalists: An electrical engineer who became a frontend developer

    Fri, 09/25/2020 - 12:39
    The unlikely Drupalists: An electrical engineer who became a frontend developer Tuba Ayyubi Fri, 09/25/2020 - 17:09

    Sometimes the Road of Life Takes an Unexpected Turn and You have No Choice but, to Follow it to End Up in the Place You are Supposed to Be.
    - Anonymous

    A thought that’s crossing my mind while I type this is I never expected myself to be here as a writer. For me, since childhood, I have always been told that I’d end up being a doctor. And I always thought I would. But as I grew up, I realized that it wasn’t what I actually wanted at all. Life did take an unexpected turn and I am where I should be today. Something like this hits each one of us at a point in life. 

    At OpenSense Labs, we have Lakshay, who started off working as an Electrical engineer and went on to become an Acquia-certified front end developer. Let’s look at his experience with OSL and Drupal! 

    Tuba: So Lakshay, I heard you pursued electrical engineering. Tell me about your education.

    Lakshay: I switched to three different schools in the last 3 years of my school life. I wanted to start something of my own while I was in high school but my parents always told me I lacked experience. Although I studied electrical engineering, I have had a lot of interest in developing websites for a very long time.

    Tuba: How the shift to web development finally happened and how did it all begin at OpenSense Labs?

    Lakshay: A very old friend of mine was already working with OpenSense Labs. He told me that he was working with a web development company and asked me to come and join them. So, I gave it a shot and joined OSL. When I reached there, I had no idea what I had to do, because everybody there was a professional developer. So I joined them as an intern and started watching tutorial videos and studying how to build a website and then tried coding it and showing my work to senior pros like Vinit and Pritam at the end of the day. After 3 months of the internship, I was hired as a full-time front end developer. A year later, I was an Acquia-certified front end specialist. I was promoted to the position of a senior frontend developer. Since then a lot of interns have worked under me and I’ve trained them sharing whatever I learned during my early days as an intern.

    Tuba: That’s amazing! How is your experience with Drupal?

    Lakshay: It’s been 3 years now and the experience so far has really been great. The Drupal community is really amazing. I’ve attended many camps where I got a chance to interact with people working across the globe.

    I got to learn about different emerging technologies and how Drupal is rising with these technologies thereby embracing innovation always. I’ve presented sessions in DrupalCamp Delhi 2019 and DrupalCon Amsterdam 2019

    Tuba: Do you think you made the right decision?

    Lakshay: I definitely think I made the right decision. While I was working in the electrical industry for 6 months, it felt like a job, but working here felt like something that I willingly wanted to do. I’m following my passion, working with Drupal.

    Tuba: That’s great! Thank you for your time Lakshay. It’s been great talking to you. I hope people are inspired to make decisions and accept the turns that life takes as you did. 

    These turns can be the most challenging thing to experience, but it is the starting point of something great in your life. There is always light at the end of the tunnel, take your time to find it! The journey, I promise, will be way better than the destination. Good luck!

    blog banner blog image Drupal Frontend developer Blog Type Articles Is it a good read ? On

    Centarro: Latest Commerce API release adds support for on-site payments

    Wed, 09/23/2020 - 19:45

    Our Drupal contributions and client engagements this year have let us continue to expand JSON:API support in Drupal Commerce. We released the first alpha version of the Commerce API module earlier this year and have been constantly working on it since then, resulting in the module's 1.0-beta4 release last week.

    What's new in the latest release?

    One feature that has been heavily requested is the ability to use on-site payment gateways like Braintree or Stripe in a decoupled context, and guess what? This is now possible since the latest release! Furthermore, "manual" payment gateways (i.e "offline" payments such as cash on delivery...) are now also fully supported.

    Great! But... how does this work?

    The frontend application is responsible for collecting (usually through a gateway's JS library) and submitting a "payment_instrument" to the backend. The payment instrument instructs the Drupal Commerce backend how to process a customer's payment through the specified payment gateway.

    This payload for Braintree demonstrates the payment instrument format:

    { "payment_instrument":{ "payment_gateway_id":"braintree", "payment_method_type":"credit_card", "payment_details":{ "card_type":"Visa", "payment_method_nonce":"xxxxxxxxxx", "last2" => 18, } }

    Note that the expected "payment_details" differs for each payment gateway.

    The "payment_instrument" is submitted by performing a "PATCH" request to the /jsonapi/checkout/{commerce_order} resource.

    Read more

    Four Kitchens: Drupal 10 Is Coming, and Much Sooner Than Expected—But That’s Not a Bad Thing

    Wed, 09/23/2020 - 18:09

    Working in digital design and development, you grow accustomed to the rapid pace of technology. For example: After much anticipation, the latest version of Drupal was released this summer. Just months later, the next major version is in progress.

    At July’s all-virtual DrupalCon Global, the open-source digital experience conference, platform founder Dries Buytaert announced Drupal 10 is aiming for a June 2022 release. Assuming those plans hold, Drupal 9 would have the shortest release lifetime of any recent major version.

    For IT managers, platform changes generate stress and uncertainty. Considering the time-intensive migration process from Drupal 7 to 8, updating your organization’s website can be costly and complicated. Consequently, despite a longtime absence of new features, Drupal 7 still powers more websites than Drupal 8 and 9 combined. And, as technology marches on, the end of its life as a supported platform is approaching.

    Fortunately, whatever version your website is running, Drupal is not running away from you. Drupal’s users and site builders may be accustomed to expending significant resources to update their website platform, but the plan for more frequent major releases alleviates the stress of the typical upgrade. And, for those whose websites are still on Drupal 7, Drupal 10 will continue offering a way forward.

    The news that Drupal 10 is coming sooner rather than later might have been unexpected, but you still have no reason to panic just yet. However, your organization shouldn’t stand still, either.

    Image via The End for Drupal 7 Is Still Coming, but Future Upgrades Will Be Easier

    Considering upgrading to Drupal 8 involves the investment of building a new site and migrating its content, it’s no wonder so many organizations have been slow to update their platform. Drupal 7 is solid and has existed for nearly 10 years. And, fortunately, it’s not reaching its end of life just yet.

    At the time of Drupal 9’s release, Drupal 7’s planned end of life was set to arrive late next year. This meant the community would no longer release security advisories or bug fixes for that version of the platform. Affected organizations would need to contact third-party vendors for their support needs. With the COVID-19 pandemic upending businesses and their budgets, the platform’s lifespan has been extended to November 28, 2022.

    Drupal’s development team has retained its internal migration system through versions 8 and 9, and it remains part of the plan for the upcoming Drupal 10 as well. And the community continues to maintain and improve the system in an effort to make the transition easier. If your organization is still on Drupal 7 now, you can use the migration system to jump directly to version 9, or version 10 upon its release. Drupal has no plans to eliminate that system until Drupal 7 usage numbers drop significantly.

    Once Drupal 10 is ready for release, Drupal 7 will finally reach its end of life. However, paid vendors will still offer support options that will allow your organization to maintain a secure website until you’re ready for an upgrade. But make a plan for that migration sooner rather than later. The longer you wait for this migration, the more new platform features you’ll have to integrate into your rebuilt website.

    Initiatives for Drupal 10 Focus on Faster Updates, Third-Party Software

    In delivering his opening keynote for DrupalCon Global, Dries Buytaert outlined five strategic goals for the next iteration of the platform. Like the work for Drupal 9 that began within the Drupal 8 platform, development of Drupal 10 has begun under the hood of version 9.

    A Drupal 10 Readiness initiative focuses on upgrading third-party components that count as technological dependencies. One crucial component is Symfony, which is the PHP framework Drupal is based upon. Symfony operates on a major release schedule every two years, which requires that Drupal is also updated to stay current. The transition from Symfony 2 to Symfony 3 created challenges for core developers in creating the 8.4 release, which introduced changes that impacted many parts of Drupal’s software.

    To avoid a repeat of those difficulties, it was determined that the breaking changes involved in a new Symfony major release warranted a new Drupal major release as well. While Drupal 9 is on Symfony 4, the Drupal team hopes to launch 10 on Symfony 6, which is a considerable technical challenge for the platform’s team of contributors. However, once complete, this initiative will extend the lifespan of Drupal 10 to as long as three or four years.

    Other announced initiatives included greater ease of use through more out-of-the-box features, a new front-end theme, creating a decoupled menu component written in JavaScript, and, in accordance with its most requested feature, automated security updates that will make it as easy as possible to upgrade from 9 to 10 when the time comes. For those already on Drupal 9, these are some of the new features to anticipate in versions 9.1 through 9.4.

    Less Time Between Drupal Versions Means an Easier Upgrade Path

    The shift from Drupal 8 to this summer’s release of Drupal 9 was close to five years in the making. Fortunately for website managers, that update was a far cry from the full migration required from version 7. While there are challenges such as ensuring your custom code is updated to use the most recent APIs, the transition was doable with a good tech team at your side.

    Still, the work that update required could generate a little anxiety given how comparatively fast another upgrade will arrive. But the shorter time frame will make the move to Drupal 10 easier for everybody. Less time between updates also translates to less deprecated code, especially if you’re already using version 9. But if you’re not there yet, the time to make a plan is now.

    The post Drupal 10 Is Coming, and Much Sooner Than Expected—But That’s Not a Bad Thing appeared first on Four Kitchens.

    Drupal blog: A successful Google Summer of Code – thanks to our student, mentors and Drupal community!

    Wed, 09/23/2020 - 16:10

    Google Summer of Code (GSoC) is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3 month programming project during their break from school or college. In the 16th year of the program, 1106 students from 65 countries have successfully completed Google Summer of Code in 2020, including Drupal!

    The Drupal Association’s Community Liaison, Rachel Lawson, caught up with those taking part in GSoC on Drupal related projects this year, to find out how things went, what they learned along the way, and what their future may hold.

    You are invited to watch our “Community Chat”, with Vishal Chaudhary, Shawn McCabe, and Ryan Szrama.

    The Savvy Few: Accessing the current node ID in Drupal

    Wed, 09/23/2020 - 15:03

    From time to time you just need the node ID of the current node to get things done. In Drupal 7 you simply used the arg() function to do this, this approach no longer works for Drupal 8 and onwards because arg() is deprecated.

    Drudesk: Drupal 10 release is planned: what does it mean for website owners?

    Wed, 09/23/2020 - 13:00

    Drupal keeps evolving in order to give you even more advanced digital capabilities.

    We love to share useful content about upgrades with you — like the blog post about Drupal 7 to Drupal 8/9 Module Upgrader.

    Time flies fast, and there is already a Drupal 10 release planned. What does all this mean for your website? Let’s take a closer look.

    Ny Media: How to trigger an order state transition event subscriber programmatically

    Wed, 09/23/2020 - 09:44
    How to trigger an order state transition event subscriber programmatically eirik September 23, 2020

    Here at Ny Media we are specialists in developing highly customized Drupal Commerce solutions. One of the recurring themes of a tailor-made e-commerce solution is to integrate some sort of order export towards the ERP solution that the client in question uses. And a very common way for us to do that is to hook into commerce order state transitions.

    Typically a subscriber would make sure the actual export is queued through Drupal's queue system (or through Advanced Queue). This makes it possible to have exports that can retry, delay execution and generally be reliable and fault-tolerant.

    However, this also involves integration towards third parties. No matter how fault-tolerant your integration is, you can not guard against all kinds of error in a third party application. Which is why from time to time I find myself needing to trigger these transitions again, for example to re-queue the order export. So here is an annotated code example with how one can achieve this:

    <?php // Replace this with the order id in question. $order_id = 123456; // If you want to do this within a class, probably use dependency injection // instead of the Order class directly. The same goes for the services we are // about to load statically from the service container. /** @var \Drupal\commerce_order\Entity\OrderInterface $order */ $order = Order::load($order_id); // This service is the event subscriber. We want to trigger the event // subscriber only, and not dispatch the event from the event emitter so all // subscribers can react to it. /** @var \Drupal\nymedia_order_export\EventSubscriber\NymediaOrderExportSubscriber $order_export_event_subscriber */ $order_export_event_subscriber = \Drupal::service('nymedia_order_export.event_subscriber'); /** @var \Drupal\state_machine\WorkflowManager $workflow_plugin_manager */ $workflow_plugin_manager = \Drupal::service('plugin.manager.workflow'); // The type of order workflow you are using might vary from your site. See // below for a note on how to find out. /** @var \Drupal\state_machine\Plugin\Workflow\WorkflowInterface $workflow */ $workflow = $workflow_plugin_manager->createInstance('order_fulfillment'); // The transition in question will also vary based on your site. For a note on // how to find out, read below. $transition = $workflow->findTransition('draft', 'fulfillment'); $event = new WorkflowTransitionEvent($transition, $workflow, $order, 'state'); // Now trigger the event. The method here will be the one you have indicated // will respond to the event. For example, if your event subscriber service // has this in its public static function getSubscribedEvents: // '' => ['onPlace'], // (the example is taken from this class itself), then you probably want to // invoke the method ::onPlace, like we are doing here. If you are looking for // another transition, or your class has a different method as a responder for // the place transition event, then you probably want to adjust this // accordingly. $order_export_event_subscriber->onPlace($event);

    As stated in the code above, there are some things that might not be obvious how you find out. Let's start with the order workflow ID.

    How to find the workflow ID of an order type

    To find out what kind of workflow you are using, you take a look at the order type for the order in question. On this particular site, there are 2 order types. The one that I had to re-queue is of the type "default". So I edit that order type, which can be found at

    In there we can see that you can select the workflow for the order. And in the select dropdown, I can see that the ID for the chosen one is "order_fulfillment":


    Another way to see this is to look at the configuration YML file for the default order type. It will look something like this, and in my case is called "commerce_order.commerce_order_type.default.yml":

    uuid: 2a999511-7dbb-4a44-9599-6bad702ff032 # ... Content edited out for clarity. label: Standard id: default # Here is the id of the workflow again: workflow: order_fulfillment # ... rest of the file. How to find state IDs for the workflow transition

    In my example, I wanted to get the transition where an order goes from "draft" to "placed". How did I know these IDs, and how did I know which ones to use?

    To answer that, we should look up the definition of the workflow we have chosen. A workflow will most often be defined in a file called modulename.workflows.yml. In our case, we are actually using one of the workflows provided out of the box with Drupal Commerce, so the file to look at is commerce_order.workflows.yml. In here our workflow is defined as follows:

    order_fulfillment: id: order_fulfillment group: commerce_order label: 'Fulfillment' states: draft: label: Draft fulfillment: label: Fulfillment completed: label: Completed canceled: label: Canceled transitions: place: label: 'Place order' from: [draft] to: fulfillment fulfill: label: 'Fulfill order' from: [fulfillment] to: completed cancel: label: 'Cancel order' from: [draft, fulfillment] to: canceled

    We can see it has 4 states, and 3 transitions. The one we want is the one that is triggered when the user completes their purchase, and this is the transition with the ID "place". To find it, I used the state it was supposed to transition from and the state is was supposed to transition to, which you can see is "draft" and "fulfillment".

    As you can see, the framework of Drupal Commerce makes it possible for us to create advanced types of integrations, which are fault-tolerant, flexible and scalable. If you are looking for a partner to develop a Drupal Commerce site with customized integrations, contact our team of experts, ready to create solutions for you, regardless of integration types, order types or workflow types.

    OpenSense Labs: Success stories on decoupled Drupal

    Wed, 09/23/2020 - 07:15
    Success stories on decoupled Drupal Tuba Ayyubi Wed, 09/23/2020 - 11:45

    'History is important, but what we do today matters the most, and we realize that.'

    At OpenSense Labs, we make sure you move on from the old glitches you've faced with your website and its performance and give it better and smoother user experience. We use decoupled Drupal to give your website versatile and structured content that the web experiences need. 

    Brands these days communicate with their customers, not only through the websites but also through multiple touchpoints. Decoupled Drupal serves content through an API to be consumed by other mediums like mobile applications, kiosk displays, IoT, wearables, etc. Headless Drupal is not a new phenomenon, but with the rising digital era, it is getting more and more important. You can either go for a progressively decoupled approach or fully decoupled approach based on your project requirements and we have successfully launched websites using both the approaches.

    Let me take you through the websites created and revamped by us using decoupled Drupal. 

    Paramount software solution

    Paramount software solutions, being one of the leading IT Service providers in infrastructure management, application, blockchain, architecture, etc, protects your investments and enhances your productivity. It provides dependable and integrated business solutions for small and large enterprises. 

    Paramount Software Solutions wanted to build a portfolio website that would act as the gateway to its impeccable services. We built the site using Drupal’s powerful capabilities keeping in mind, rich user experience, and streamlined content management.

    The need for a headless web application for Paramount software solutions was why Drupal was chosen in the first place.

    Simplified content workflow, high web performance, high-level security, and SEO were taken into consideration for building the website. After doing a detailed analysis and taking a lot of feedback from the clients, OpenSense Labs decided to develop this website as a fully decoupled application.

    With Drupal, we made sure that the security of the website remains top-notch.
    JSON:API and JSON:API Extras modules were used to gain a full rest API for the Drupal application and it was ensured that the resource properties like alias fields, API path, etc could be altered easily. 

    The RESTful Web services module was used to provide customizable and extensible RESTful API of data governed by Drupal. 

    HTTP basic authentication was used to offer the functionality of authenticating username and password.

    The full case study of Paramount Software Solutions is available on


    AgWeb is the most influential web-property of Farm journal, which is one of the leading business information and media companies. AgWeb is an online platform for farmers to stay informed about the news of crop and livestock farming, live future trading data, market assessment, ag policy, weather forecast, and more.

    AgWeb wanted to enhance its website and needed a solution to keep up with the changing landscape of web technologies. This required a complete migration of their old .NET based legacy website into the state-of-the-art CMS of Drupal and then retain the wonderful search engine rankings gathered by it over the years.

    The main objective here was to enhance user engagement and brand identity. In this process, a lot of feature upgrades had to be done to make it simpler for future development.

    By choosing Drupal 8, AgWeb could tailor its media solutions. It became easy to create a listing with the assistance of views and enhance speed, scale, and stability. 

    We planned the project in sprint-based development cycles and for the successful migration of content from the old .NET website to Drupal 8, the Scrum process was applied. 

    Progressively decoupled blocks were used to build features like search and crop comments. We were able to improve the on-site search with the help of React and Elasticsearch

    Drupal 8 gave the website a modernized look which resulted in higher user management. Drupal's support assured that the page load time of the website is much lesser than the old one. The website's Google rankings accelerated with the help of SEO enhancements.

    The full case study of AgWeb is available on

    Produce Market Guide

    The PMG is also a product of Farm Journal. It is a resource that produces commodity information, data analysis, and trends. This platform shared information on fresh fruits and vegetables and is also the industry's leading source of information and news.

    There were not many features required in the architecture, as the PMG website was already based on Drupal. So, the joint client-vendor system decided to progressively decouple the search functionality. This new search feature was built using React and elastic.

    Drupal was chosen because of its flexibility. The customer already had prior experience with Drupal. And the built-in API-first support and easy third-party integration added to the many reasons why Drupal should be used again.

    They wanted us to build search applications with facets and track user activities for personalized and smooth user experience.

    Elastic backend architecture was developed using the ElasticSearch Connector module. Then, the biggest challenge was to add the SearchKit and React in the same search. SearchKit was used to design and develop the front end, the logic, and the project structure.

    The new PMG website now takes less time to load than before. The project did not even take a month to complete. We followed the principles of Scrum and Agile by arranging themselves according to their needs.

    The full case study of Produce Market guide is available on


    Decoupled Drupal has helped websites in many ways and we love creating and revamping websites using it. It gives a content-rich experience, with a great presentation layer. 

    If you love what we have done to these websites, and wish to have the same experience for yours, contact us at

    blog banner blog image Drupal Decoupled Drupal Blog Type Tech Is it a good read ? On

    MidCamp - Midwest Drupal Camp: “Who in the world am I? Ah, that's the great puzzle.”

    Wed, 09/23/2020 - 02:21
    “Who in the world am I? Ah, that's the great puzzle.” Help us out!

    What do you want to see at MidCamp 2021?

    Share your thoughts!

    Last week, 12 folks (including one brand new face) joined our first MidCamp 2021 planning meeting. The intent of our meeting was to begin discussions for a format for 2021, but almost like clockwork, our discussion quickly came back to the classic existential question: “What are we doing here?”

    You might be thinking: “Uh, what? Why is a reliably delivered event now in its seventh year and with a sizable incumbent organizing team questioning their existence?” 

    Well, we’d pose to you: “Why not?”

    I’ve played various roles on the MidCamp team since our inception at Drupal Camp Fox Valley 2013 and from the beginning our team has been dissatisfied with the status quo. From early efforts—like blind session selection and walking lanes, to early iterations of the Drupal Recording Initiative, to live captions as a service—the MidCamp team is always trying to be one step ahead… “trailblazing” if you will, which was my old Boy Scout troop’s motto.

    So after we, hand-in-hand with NERD Summit, set the early standard for virtual Drupal events in March of 2020, of course our team wouldn’t be satisfied with “just another Zoom conference.”

    There are lots of interesting ideas floating around in this space now: all new sessions, all BoFs, un-conferences, substituting monthly meetups for a yearly event, virtual sightseeing. This all leads back to: Why should MidCamp exist in 2021? What do we add to the conversation?

    Here’s what we know:

    • We will not be hosting a physical event in March of 2021.
    • We are known for the care we take in crafting Drupal events for humans.
    • We are not satisfied with the status quo and seek to continue being pioneers in the events space.
    • Contribution beyond the Drupal space is essential for Drupal’s vitality, now more than ever.
    • While we welcome all, MidCamp’s goal is to serve Chicago-area Drupalists first.

    Here’s what we don’t know:

    • Does the world need another virtual conference?
    • What does being a “regional camp” mean when events are globally available?
    • Is it better to have more speaking opportunities or more focused content?
    • How can we (or can we at all) recreate the human-centric experience that we all look forward to each year without being together IRL. 

    If you’ve got this far, we’d love for you to share your answers and help shape MidCamp 2021.

    Many thanks,

    Avi Schwab
    MidCamp 2021-2022 Lead

    Aten Design Group: BADCamp 2020

    Tue, 09/22/2020 - 19:00
    BADCamp 2020 Mckenna Andreas Tue, 09/22/2020 - 12:00 Events Drupal

    Bay Area Drupal Camp has gone — wait for it — 100% virtual! BADCamp is a community run celebration of open-source software with a keen focus on learning and inclusivity. Every year this event brings Drupal users, developers, marketers, and content specialists together from all over the country for high value talks, summits and trainings.

    While you’ll have to forego the trip to beautiful Berkeley, California this year, the good news is that registration is free and the 2020 session lineup is as packed as ever. Mark your calendar for this October 14th - 17th, and get ready to join Aten, the Bay Area Community, and your colleagues and peers from across the country in three major session tracks: Drupal for Beginners, Advanced Drupal, and Marketing & Communications.

    Aten is excited to sponsor this year’s Higher Education Summit, and for our team to contribute a few sessions of their own, detailed below. Register for BADCamp 2020 today!

    Friday, October 16th Managing People: The Art & The Science, 1 PM PST

    Project Managers are tasked with organizing client schedules, timelines, meetings, internal resources and much, much more. Every one of a PM’s tasks overlap in a central — and often complex — practice: managing people. Join Janice Camacho, Project Manager, as she explores the art of meeting each individual where they’re most comfortable, and the science of why they’re comfortable there. In this session you’ll learn how to get out of your own way and build the healthy, confident project teams that support strong, long-term client relationships.

    True Life: I’m an introvert in an extrovert’s world, 2 PM PST

    Do you shy away from speaking up in a crowded room? Do you prefer to maintain a carefully guarded bubble of personal space? Does the prospect of addressing an audience make you perspire and/or shake? Introverts exist in the world of Digital Project Management, too. Gasp! And — perhaps contrary to intuition — they bring a unique set of strengths and abilities to the table, much like their extraverted counterparts. Join Kacie Miner, Digital Project Manager, as she shares her experience of being an introvert in the DPM space. In this session you’ll learn:

    • Strengths, abilities, and positive attributes that introverts bring to the table
    • Ways to adapt your personality to the job at hand without changing who you are
    • Strategies that will set you up for success instead of causing you to overthink
    • Tips and tools to know where you lie on the extrovert scale, and knowing how to recover
    • How to develop your own toolkit for being fully prepared when put on the spot
    Layout Building in Drupal, 3 PM PST

    The Layout Discovery API has dramatically changed the way Drupal 8 websites are designed, built and maintained. Solutions like Layout Builder, Entity Reference with Layout, and Layout Paragraphs have added a new dimension of content presentation on top of traditional content management. With these tools content editors have more control over their online presence than ever before — but this newfound flexibility isn’t without its own challenges. Join James Nettik, Front-end Developer, as he covers the essentials of layout building in Drupal 8. This session will cover:

    • An overview of the tools available today and their pros and cons
    • How to begin working with the new Layout Discovery API
    • Tips to keep the authoring experience as intuitive as possible
    • Solutions to common questions and pitfalls while designing and building

    Don’t miss your opportunity to learn the latest in Drupal, network with fellow professionals, and attend in-depth technical and management training. Register for BADCamp 2020 today. We’ll see you there!