Drupal Planet

Specbee: Exposing Your API in Drupal 8 - A brief tutorial

1 week 5 days ago
Exposing Your API in Drupal 8 - A brief tutorial Sahana N 30 Mar, 2021 Top 10 best practices for designing a perfect UX for your mobile app

Drupal 8 brought about significant architectural changes offering modern techniques to build digital experiences. REST API was one of them and it came shipped in Drupal 8 core. A RESTful API is an API that conforms to the architectural style of REST (representational state transfer). It accesses and uses data via HTTP requests to GET, PUT, POST and DELETE data types. 

In this post, you will be learning more about exposing your API in Drupal 8.

HTTP methods used in REST API

GET : This method is used to read the data from server.
POST : This method is used to create data on a server.
PATCH : This method is used to update the data on the server.
DELETE : This method is used to delete the data from the server.


The above image describes how REST API requests and gives the response to a client. Initially the client sends the request using HTTP methods. REST API interacts with the database and sends the response in JSON or XML formats.

Now let’s see how it take place in Drupal.

Drupal Modules to Expose your API

Mentioned below are some Drupal core and contributed modules that can help in exposing your APIs in Drupal.

    1. HAL

The HAL module is specifically for JSON or XML, and it provides the serialization plugin.
    2. HTTP Basic Authentication

The HTTP basic authentication module provides an authentication plugin which allows us to control access to our API resources based on the HTTP method.

    3. RESTful Web Services

The RESTful web services module handles the resources plugin system as well as defining initial resource routes. A good example of resource plugin can be found in the DB log module which provides an API endpoint for watchdog entries.

Resource plugin is responsible for retrieving the data from the database.

    4. Serialization

The serialization module is responsible for deserializing and serializing request response data.
    5. REST UI

Rest UI is a helpful module which exposes our RESTful web services configuration via the admin UI. This way we can configure our API endpoints by editing the YML files.

REST Response - How It Works


This image describes the pipeline of the REST response.

According to the image, first the client sends a request, and the request goes to the request handler. The Request Handler is responsible for accepting the request.

The request handler interfaces with the REST module and is responsible for the requests. The requests are then sent to deserialize to normalize the data. 

Then deserialize sends to the request handler. The request handler matches the up the resource with the appropriate resource handler. 

Again, request is sent to the Resource plugin. The resource plugin takes the data from incoming request and retrieves the valid information from the database.

Then the resource plugin returns the data to the request handler and again acts with the serializer before sending as response.

How to configure the REST API in Drupal using Core Modules:

Here are 4 easy steps to configure REST API in Drupal using core modules:

Step 1: Initially, you need to install the core modules which are HAl, Http Basic Authentication, REST Web Services, and serialization module.

Step 2: Next, you need to download the REST UI module and you need to enable the module.


Step 3: Next, you need to configure the REST API endpoints as required. To configure, go to Configuration -> REST -> then click on edit of the content row.


Step 4: When you click on edit, you will get the edit window. Configure as required then save the configuration.



If you want to get the response of a particular node, you need to send the request using the postman app with URL - hostname/node/nodeid?_format=json. (If you don’t have the Postman app yet, you can either download it from here or get the web version.)


Drupal 8 allows developers to build APIs easily to allow content to be exposed to other softwares without writing any code. Using the modules (core and contrib) mentioned in the blog, you can easily build and expose your API in Drupal 8. Want to know how we make the best of Drupal to build compelling digital experiences? Talk to us today!

Drupal 8 Drupal Development Drupal Planet Drupal Tutorial 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 Exposing Your API in Drupal 8 - A brief tutorial Image The Most Effective Methods to Overcome Software Vulnerabilities Image Building Micro-sites in Drupal using the Groups Module Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

A Drupal powered multi-site, multi-lingual platform to enable a unified user experience at SEMI.


Discover how our technology enabled UX Magazine to cater to their massive audience and launch outreach programs.


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


Tag1 Consulting: Decoupled Drupal: Past, Present, and Future - Part 2

1 week 6 days ago

Decoupled Drupal is now a fixture of the Drupal community and ecosystem, but it has roots in key software concepts like the separation of concerns. Today, decoupled Drupal is commonplace across the Drupal world, not only at the highest echelons of enterprise implementations of Drupal but also among smaller consultancies beginning to get their feet wet with headless CMS architecture.

Read more [email protected]… Mon, 03/29/2021 - 06:03

Morpht: Layout Paragraphs: A new way to manage Paragraphs

2 weeks 2 days ago

It seems that with each passing year there is a new paradigm for how content can be arranged and organised in Drupal. Over the years a number of approaches have moved in and out of being in vogue: Panels, Displya Suite, IPE, Bricks and Paragraphs to name a few. Some change has been positive, providing leaps forward in flexibility or control. Other developments have not lived up to their promise.

In February 2021 I presented a new module, Layout Paragraphs, to the Sydney Meetup. The slides and video have been provided below. This presentation demonstrates Layout Paragraphs in action and how offers some advanced layout options for Paragraphs. Conceptually it is similar to Layout Builder in many respects, however, it performs its magic on the Node Edit page, integrating with the natural content editing environment for site editors.


Layout Paragraphs offers a new way forward for the following reasons:

  • Editing happens on node edit, rather than the layouts page. Better for editors.
  • Paragraphs can be placed into Layout regions to bring more flexibility to Paragraphs. This is similar to what Bricks was doing.
  • Nicer UI for Paragraph selection.
  • Nicer UI for Paragraph display - no need for Preview view mode any more.
A bit of history

It is worth reviewing a little history to see where Layout Paragraphs fits in. The presentation takes a look at some of the popular combinations over the years and gives them over all scores, weighted by functionality and editor experience. Here is a spoiler of what is covered in the video:

Recipe Year Score Pure template 2010 65 Display Suite 2010 58 Panelizer 2012 69 Panelizer and Paragraphs 2014 73 Panelizer and IPE 2016 39 Panelizer, Bricks and Paragraphs 2017 63 Layout Builder and Blocks 2018 70 Layout Builder and Paragraphs 2019 78 Layout Builder, Layout Paragraphs, Paragraphs 2021 81


The scores were calculated from a weighted average of various aspects of the techniques: flexibility, control, editor experience, etc. Watch the video for the details.


You can see that Layout Paragraphs is the latest in the line of approaches and that it is scoring quite well. A recioe based around Lout Builder, Layout Paragraphs and Paragraphs seems to work quite will. Layout Builder remains the domain of the sitebuilder, using it to define the basic layouts for the page. With Layout Paragraphs, a new set of simpler layouts can be used by the editor for their paragraphs.

I think that the approach holds a lot of promise moving forward and it is good enough for Morpht to be considering it as a standard part of our editor toolkit. All up we have found the module to be usable and a definite improvement on editor experience. We are adopting it into projects where we can.

Watch the video and let us know what you think in the comments below.

Watch the video


Evolving Web: How to Design a Site Search Experience Users will Love

2 weeks 3 days ago

When someone comes to your website with an information need, they have two options: they can either use the site’s navigation to get where they need to go, or they can use the search function. We’re going to focus on the latter for this article.

Many of us do dozens or even hundreds of searches per day without even thinking about it: searching for an email, searching for that song on Spotify, figuring out what to make for dinner, looking up a contact on your phone, finding a word on this page. 

We just expect search to work—but that’s easier said than done.

One of the tenets of design is to make things simple. When building a search interface, the goal is to make the interface as simple as possible, while ensuring that users can actually find what they’re looking for. 

Before we get into specific design tips, let’s take a few seconds to think about how different users might interact with site search.

Information-seeking needs and behaviours

The type of information need a user has and how that user intends to retrieve said information will affect how they interact with a website’s search engine. 

There are four main types of information need:

  • Exhaustive research: “I need to know everything about this topic”
  • Exploratory seeking: “I need to find a few good things”
  • Known-item seeking: “I’m looking for this specific thing”
  • Refinding: “I need this specific thing again”

When it comes to information-seeking behaviours, we can split searchers into four categories:

  • Retrievers know both what they need to find and how to find it. If they’re looking for a specific document on a site, they’ll simply type the document’s title into the search bar and expect it to be the top result.
  • Adventurers have a more general idea of their information need and waiting for something to catch their attention 
  • Wanderers are unable to precisely define their information need 
  • Explorers know exactly what piece of information they need, but they don’t know where or how to look for it

Every search interface will be used by each of these searchers, so keep them top-of-mind as you design. 

📅 Free webinar: Designing a user-centric search experience (March 31, 2021). Sign up now!

Now, here are some key steps that’ll help you build out a solid search experience for your site.

  1. Define your user personas
  2. Map out your users’ search journeys
  3. Conduct user testing with real-life scenarios
  4. Scope the search functionality
  5. Incorporate incentives to search
  6. Design the results
  7. Add extra features
  8. Tweak the boosting
1. Define your user personas

We won’t get into the nitty-gritty details here, as you most likely already know who your personas are (and if not, we’d recommend taking the time to think about this before proceeding).

Personas—who your users are, how they think, what their habits look like—are the first step in most UX processes, and site search design is no different. Well thought out audience research will guide almost every decision you make throughout your search project.

2. Map out your users’ search journeys

Conduct user journey mapping exercises to gain insights on how a typical user would interact with the search.

Consider your personas and the types of searchers listed above. Who is using your search interface in each of these ways, and how should search fit into the larger user experience?

Be sure to consider these key variables that influence each search operation:

  • The user’s level of familiarity and comfort with search interfaces
  • The type of searcher (wanderer, explorer, adventurer, retriever) and their information need
  • The type of information being searched (content/page type)
  • The amount of information that needs to be retrieved

Another thing to keep in mind is the fact that searching isn’t always a straightforward, one-time process. On the contrary, browsing and searching often go hand in hand when a user is trying to fulfill an information need. The Wikipedia page about Cognitive models of information retrieval provides a succinct overview of these types of behaviours, if you’re interested in learning more.

3. Conduct user testing with real-life scenarios

Pick a few real use cases for the search interface and use them throughout the design, development, and QA process. When you conduct user testing, provide your subjects with a scenario-based goal and observe how they go about reaching it.

For example, if you’re testing the search functionality of a university website, you could ask your user something like “You’re getting ready to apply to the MA program in Film Studies. What documents do you need to include in your application?” or “You’re thinking about applying to this school as a non-resident. What fees can you expect to pay?”.

A few tips for carrying out user testing for search:

  • Work in pairs: one test subject with one member of the research team. One-on-one testing will provide the most valuable information.
  • During the test scenario, ask the subject to narrate their thought process out loud and take notes accordingly
  • Be ready to ask the test subject for any clarifications you might need as soon as the scenario is complete, so that it’s still fresh in their mind
4. Scope the search functionality

Start to plan out how the search interface would fit into the overall experience. Are there search pages embedded within specific sections of the website? Or a single search interface that the user is always directed to? Sometimes users want to focus on finding one thing (e.g. a directory of doctors or experts) and sometimes it’s more useful to allow them to expand their search to the entire website.

People have been searching for information online for quite some time now, which means users have all sorts of assumptions and expectations about search interfaces. Here are a few common ones that are useful to have in mind:

  • “I just need to type in some keywords and the search engine will do the rest”
  • “Using this search box will search the entire site”
  • “If I type in 'syllabus', the results will also find pages titled 'course list'”
  • “I don’t have time to learn which of these search forms to use”
5. Incorporate incentives to search

The easiest way to invite users to search is to put a big search box on the homepage. Sometimes providing “suggested search” terms helps users get started, or prompting them what to type using a search suggestion. But you can also invite users to search by embedding a search form into other areas of the site, maybe pre-filtered based on the topic they’re exploring.

One thing to keep in mind is that users don’t typically have the motivation to actively figure out your search system. Give them a simple box, and support other information needs by being ready to offer users more options when they’re ready to consider them.

6. Design the results

The first thing to figure out is whether you want to divide or group the results by the form (e.g. the content type or media type). And then what will each result look like? How can you make the results engaging so the user has a better idea of what to click?

If you’re showing ten results on the page, you’re making the user do the final filtering manually, so make their life easier with richer results. And figure out what filter they will use most often and focus on this information (for example, events can prominently display the date and destinations can be displayed on a map).

A couple more tips:

  • Identify the taxonomy-type filters and make sure the content has this data. Remember that in Drupal, you can combine multiple vocabularies into a single filter. 
  • Faceted search makes your filters more useful, because they will adjust based on all the other search criteria. This prevents the user from finding a dead-end in their search.
7. Add extra features

If you’re using Drupal and Elasticsearch or Apache Solr, it’s fairly simple to add more functionality to your search experience.

Here are just a few extensions that can make your site search more powerful:

  • Auto-complete
  • Highlighting
  • Infinite scroll
  • Search term correction (spell check)
  • Fuzzy search 
  • Document search
8. Tweak the boosting

Drupal’s Search API module allows you to easily adjust how each field is weighted when building the search results, which is referred to as “boosting”.

📚 Read next: Cludo + Drupal = Instant User-Friendly Search

Boosting lets you tell the system things like:

  • If a word is in a page’s title, it’s more important than the same word but in the body text
  • The more recent a page is, the more important it is
  • Prioritize results according to file type, in the following order: PDF -> .docx -> JPEG
  • Pages with more views have a higher priority

This will enable you to provide more relevant and accurate search results to your users. 

Join us live for more search insights

Site search is a complex beast, and each of the above points could easily have been its own article.

If you’d like to dive a bit deeper into site search UX best practices and case studies, be sure to sign up for our upcoming webinar, Designing a user-centric search experience. See you March 31!

+ more awesome articles by Evolving Web

eiriksm.dev: Help! All my users were migrated with the wrong language!

2 weeks 3 days ago

One of the things a website owner expects when they launch their new Drupal 8/9 website is that their Drupal 6/7 users are still there, and can still log in using the same credentials.

Luckily, the migrate framework and ecosystem makes this very easy for us in Drupal 8 and beyond. However, from time to time a developer might find themselves in a situation where they forgot to migrate something. Like for example the language of the user. This is especially awkward if your site is mainly in one language, and now all of the users are suddenly sent English emails, even if they are translated into the language of the website.

One way to fix this would be to fix the migration and then re-run it. However, if you discovered this after launch, your users might have changed their email or their password, and would probably not appreciate it if their changes disappeared. So we need to update the actual language fields instead, keeping the changes in emails and passwords and other fields.

So I was tasked with fixing up this site and its users, now that everyone had their language set to English, when the site itself only was selling products to Norwegian customers, and had no English interface. To fix this I wrote this quick script, which I then run with drush. One way to do that is to save this script as a file called fix-users.php and then run it using the command drush scr fix-users.php.

Here is the script, for future reference, and for saving you some minutes if you just had this very problem.

<?php use Drupal\user\Entity\User; // This finds all of the UIDs on the site. $uids = \Drupal::entityTypeManager()->getStorage('user')->getQuery() // If you run this script with drush somehow, you need to add this flag to // make sure you can load all users, not only the ones you have access to as // user id 0. ->accessCheck(FALSE) ->execute(); // I want to set the language to "nb" for all of the users. "nb" means Norwegian // - Bokmål. Maybe you want another code? $language_to_change_to = 'nb'; foreach ($uids as $uid) { $user = User::load($uid); // User 0 and user 1 are special. Don't change them. if (!$user || $user->id() < 2) { continue; } // We change all of these fields, but for different reasons you might want to // only change one or two? $language_fields = [ 'langcode', 'preferred_langcode', 'preferred_admin_langcode', ]; foreach ($language_fields as $field) { if (!$user->hasField($field)) { continue; } $user->set($field, 'nb'); } $user->save(); }

With that out of the way, let's finish this article with an animated gif called "migration".

Droptica: How to Control URL Addresses in Drupal. The Pathauto Module Overview

2 weeks 3 days ago

A good CMS can be recognised by how it deals with the URL addresses of individual subpages. Convenient linking attracts users from search engines and has a significant impact on SEO. In this article, I'll introduce you to the Pathauto Drupal module, which is used to automate the creation of page aliases.

With this module, you can easily configure efficient, maintenance-free aliases for your content, including taxonomy terms and user pages.


The first version of Pathauto was released in February 2006 as an add-on to Drupal 4. Stable 1.0 version was released for Drupal 5 in 2007. The current code of this module from the 8.x-1.x branch is the result of a long evolution involving many members of the Drupal.org community.


The figures from the official statistics speak for themselves – the Pathauto module is used by over 640 thousand pages. And 32% of these are built on Drupal 8 and 9. We’re dealing here with one of the "essentials", installed immediately at the stage of creating new projects.

Module's creators

The module is currently being maintained by four developers:

Since the beginnings of the Pathauto module, over 100 people have been involved in its development, creating a total of almost 1,600 commits. The tremendous contribution of the community is further evidenced by over 3,000 reported tasks and bugs on Drupal.org. Unfortunately, many of these remain unresolved.

Purpose of the module

With bare Drupal, you can create URL aliases for individual subpages, but you have to do it manually. If you don't fill in the field with the alias, the new content will have standard, inconvenient addresses like /node/123 or /taxonomy/term/456.

The Pathauto module automates the addition of aliases by generating them according to the template with tokens specified by you. For example, static pages may have a title derivative address (/foo-bar), and taxonomy terms may contain a vocabulary name (/vocabulary-name/foo-bar).


You can download the module from Drupal.org or join the project by running the following command:

composer require drupal/pathauto

After launching Pathauto, go to its settings by selecting Configuration → Search and Metadata → URL Aliases → Patterns.

Module's use

Pathauto offers a broad range of settings for the methods of generating aliases. It also allows you to carry out mass operations on already existing content. I'll briefly describe below the most important options available.

URL address templates

The basic functionality of the Pathauto module is creating URL address templates, i.e. strings of characters containing tokens. Individual aliases are generated based on them when content is being saved.

I'll explain it using the example of a blog. If you want your posts to be available under the address http://example.com/2021/foo-bar.html%20 containing the year of publication and the title, go to the panel Configuration → Search and Metadata → URL Aliases → Patterns and add a new template for the appropriate content type:

Try to create a new blog post now. It should get the address /2021/foo-bar.html. Note that you can still overwrite its URL alias, however by default it is generated automatically:


Page titles usually contain spaces and special characters. Pathauto module automatically converts them to the ASCII format separated by dashes. Then, a title like "How to Make Crème Brûlée?" will be replaced with a simpler version – "how-to-make-creme-brulee". The settings for this conversion can be found in the "Settings" tab.

I suggest that you leave most of these options at the default position, but pay special attention to the "Strings to Remove" field. It contains strings of characters that will be removed from the address, including numerous English prepositions and articles. If you create a blog post titled "A Guide To Drupal", you'll end up with an address like /2021/guide-drupal.html, which is not always the desired result.

The other settings allow for very detailed customisation of transliteration in aliases, which is useful for multi-language support. Here you can, for example, decide on how to handle punctuation.

Mass generation of URL addresses

By default, Pathauto only generates aliases when the content is being saved. This means that if you change the URL template, the modification will not be reflected immediately in the aliases on the entire page. Also, after adding a new template, all its content will not get a new URL address immediately.

When creating large websites, it is often necessary to quickly regenerate aliases for the existing content. This is done with the "Bulk Generate" function, which enables mass operations on URL addresses.

Be very careful not to accidentally overwrite the existing aliases with newer versions. Here I would recommend installing the Redirect module, which saves the redirects between the old and new subpage addresses.

Removing aliases

The Pathauto module also has an advanced panel for removing aliases. Be very careful when using it. Any changes introduced here are irreversible. You'll probably need the "Only delete automatically generated aliases" option to prevent deleting manually overwritten aliases.

Hooks and integrations

Pathauto from the 8.x-1.x branch allows you to handle any kind of entities with plugins like @AliasType, and also provides some simple hooks:

  • hook_pathauto_is_alias_reserved() - blocks the creation of an alias if it is reserved by another module. In such a case, a number will be added to the alias (e.g. /foo-bar1).
  • hook_pathauto_punctuation_chars_alter() – it is used to add new punctuation settings.
  • hook_pathauto_pattern_alter() - allows you to modify the URL address template.
  • hook_pathauto_alias_alter() - allows you to change the alias after generating it.

When creating your own Drupal modules, you should think about adding an optional configuration for Pathauto to them. This is quite a common practice, for example in the Group module. As a result, the user receives default, ready-made alias templates.

Dealing with URL addresses in Drupal

Pathauto is an extremely powerful module that is used in most of our Drupal development projects. It keeps URL addresses consistent and frees editors from having to manually form aliases. Its usefulness is confirmed by hundreds of thousands of installations reported in the official statistics. I definitely recommend getting better acquainted with its abilities.

DDEV Blog: Get started with local development for Drupal

2 weeks 4 days ago

This week in the Drupalverse we are attending MidCamp! We’re in-kind sponsors offering a series of workshops to help you improve your skills with local development as well as some prizes for the raffle. MidWest Drupal Camp traditionally takes place in Chicago, but in March 2020 the organizers made a rapid shift to a virtual event, for which we are very grateful. The camp focuses on bringing...


Golems GABB: Google Tag Manager (GTM): how it works and why you need it

2 weeks 4 days ago
Google Tag Manager (GTM): how it works and why you need it Editor Wed, 03/24/2021 - 17:53

Today, successful digital marketing would be impossible without various tracking codes or tags. However, it can be overwhelming to find your way through the ocean of tags for various tracking purposes. Luckily, there is a smart free tool by Google that can help you manage all tracking codes in the same place and its name is Google Tag Manager (GTM for short).

How does this all work? Read on. Our team is starting a series of articles about Google Tag Manager. In this specific article, you will discover what Google Tag Manager is, what makes it different from the well-known Google Analytics tool, what key components GTM has, and why use GTM. Next, we will add exciting insights into the best practices of using Google Tag Manager and e-commerce tracking with GTM.

Tag1 Consulting: AFT's Share My Lesson: Part 3 - Building on Success, and What’s Next

2 weeks 4 days ago

In our final episode with the American Federation of Teachers Director of Share My Lesson and eLearning, Kelly Booz, you’ll find out the goals that the Share My Lesson team aimed for with the updated version of their website. Many of these goals have the intention of helping SML users find what they need, or in some cases, who they need. Accessibility is a key factor for SML, from mobile support, to responsive theming, to better usability for everyone. Other improvements like better curation and search capabilities aim to improve the user experience for everyone - from website administrators, to teachers looking for lessons, to homeschooling families. Join Tag1 COO Peta Hoyes, and Managing Director Michael Meyers as they talk with Kelly about the success of the updated Share My Lesson, and where the website is going next. * Part 1 - Building the Largest Online Repository for Lesson Plans * Part 2- Rapid Growth, and Challenges Faced _For a transcript of this video, see [Transcript - Kelly Booz, Share My Lesson part 3](/transcript-kelly-booz-share-my-lesson-part-3 "Transcript - Kelly Booz, Share My...

Read more [email protected]… Wed, 03/24/2021 - 12:58

OpenSense Labs: Major Drupal Distributions in 2021

2 weeks 4 days ago
Major Drupal Distributions in 2021 Akanksha Mehta Wed, 03/24/2021 - 18:00

Distributions are pre-made bundles of utility tools that greatly simplify web developers' work by cancelling out the time spent on creating Drupal websites from scratch. These are complete Drupal copies that consist of Drupal core along with some additional software such as a theme or an installation profile, with a specific purpose in mind.

There are two kinds of distributions -

(A) Full featured distributions that provide everything that you will require for specialised use cases.

(B) Other Distributions comprising quick start tools to simplify the work of developers starting to build a website. 

Why use Drupal Distributions?

Drupal distributions are an extremely convenient way of starting a website, as one does not need to build everything from scratch. 

  • Launching your website becomes a matter of hours instead of weeks. 
  • You don't need a resource with a specific skill set for the different elements of your website.
  • Maintenance on the site becomes even easier as the whole set of modules and on site components can be upgraded in one single Drupal update. 
Major Drupal Distributions 

Let's have an overview of some of the top Drupal distributions and the function that they serve. 

For starting a new Drupal Website
  • Commerce Kickstart is a great distribution for businesses looking to get started with Drupal Commerce, being great for creating online stores. Customised templates, themes and modules in this distribution are specifically set to create an e-commerce website with ease. The new Commerce Kickstart 2.x also provides a demo store to serve as a starting point for new websites, fully stacked with features like search configuration, promotions engine, analytics and reporting tools, marketing tools, payment options and a lot more. 
  • If you are about to work with a lot of repetitive work, consider working with Varbase. Its underlying idea is DRY (Don’t Repeat Yourself), as it automates a bulk of your work through the use of a vast majority of modules, features and configurations.                                                             
  • One of the best Drupal Distributions that can be used as a base for a Drupal site is Panopoly. It is designed to be a general foundation for site building and also to act as a base framework upon which to build other distributions and components. Open Atrium, Open Church, and Web Experience Toolkit are some major public distributions that are using Panopoly.
  • Base can also be used for a simple installation procedure in a new website. In addition, if you want to relieve yourself of the burden of detecting initial configuration settings, go in with Hostmaster (Aegir) distribution as it does the job for you. DevShop Devmaster can also be used to develop and host Drupal sites.
  • If your website is potentially scalable and you want a distribution that supports the idea, Drutopia would be a wise choice as it supports multiple other distributions. It needs to be built using Composer. Scalability is also provided by Drustack’s highly customisable environment. 
If you’re dealing with Media and Publishing

Thunder and Lightning are distributions meant for the media and publishing industry. Thunder consists of a lot of handpicked publisher centric modules meant for professional publishing. It also offers custom regulations and makes it easy to install and use new functionalities, hence keeping up with adaptability and personalization. Along the same lines, Lightning aims to empower developers and editorial teams to create professional authoring experiences by providing a framework that is both lightweight and documentation friendly for a smooth publishing process. Using Composer is recommended to build the codebase for a project based on Lightning.

For official usage
  • Brainstorm is a distribution best suited for corporate use by companies that wish to display their best features and services to the customers. With its engaging User Interface, it enhances the User Experience manifold. Hence, Brainstorm is perfect for making a good first impression, as one can also upload their portfolio and create blog posts on the site, thereby putting their best foot forward. It performs well across mobiles, laptops and tablets owing to its adaptive and responsive design.

Similar distributions that provide for a digital display of a corporate’s services are Multipurpose Corporate Profile, Corporate Profile and Commerce Profile. Along similar lines, if your company is looking to recruit, the Recruiter distribution is perfect to set up a recruitment platform.                                                                        

  • While Droopler is also meant to provide an enterprise with an all inclusive and attractive corporate website, an additional feature of Droopler is that it can also be used with Drupal commerce to kickstart a related project. It also provides custom theming and colour palettes to suit one's requirements.
  • If you are a startup or a small business, Druppio might be a better choice for you owing to its modern flat design and easy configuration. Seeds is a great starter kit for small and medium enterprises too.  
  • If you have an active client base your business interacts regularly with, you could utilise OpenideaL, which is described as an innovation management system to share strategic decisions regarding one’s future products and services with the clients.
For People’s Participation
  • Open Atrium is one of the best Drupal Distributions if you’re looking for something meant for collaboration and engagement of the community to develop solutions and discuss issues together. In addition to this, Open Atrium also helps systematise bug resolution and other tasks by providing features like document and event management, issue tracking, media management and also a work tracker to monitor everyone's tasks - hence leading to a transparent work culture and accelerated organisational growth. 
  • As Drupal is a community driven software, user engagement holds a significant place in the functioning of the platform. Open social creates digital spaces that enable the members of the community to use the distribution's out-of-the-box feature for knowledge sharing, and discussing ideas and solutions. Open Social is used by governments, NGOs and a number of big and small organisations. Extensions to the distribution that expand the use case even further our Real Time Chat, Webinar, Native App, Forms and Surveys, etc.
  • Alternatively, you could also use Open Outreach for public engagement, as it comes loaded with features like event calendars, image and video sharing, and contact management for better collaboration.
  • If the focus is on a productive social engagement, OpenLucius is a great distribution for the purpose with its utility features like social intranet, collaboration toolkit, document management system, real time chatting, notebooks, etc.The usage for OpenLucius is open to both formal and informal sectors.
  •  If your social or official setup requires frequent conferences, Conference Organising Distribution is great for the purpose as it comes loaded with features like event suggestion, selection and scheduling for the event - and social networking for afterwards.
  • For systematic community engagement, the Local Baha'i Community Website Incubator can be used. Its in built features include a multi user site, wherein each member can have their own profile, a WYSIWYG (What You See Is What You Get) editor, a news column and an events calendar. 
For hospitality purposes

Easy Booking offers the user to set up a website that includes every feature that is needed to manage a hotel, inn or a hostel online. Functional both from the owners’ end and towards the visitors' convenience, Easy Booking offers a bunch of options to the guests to facilitate a good User experience like contacting hotel administration, following the hotel's newsletter, or simply being acquainted with all the special offers and discounts. 

For online education
  • The ongoing pandemic has made online learning the new normal, and Opigno is a distribution that works towards bringing to life this new reality. It contains all the features required to create engaging learning paths by first assessing the innate knowledge of the users, and then monitoring their achievements by using reporting dashboards. While ensuring skill addition, Opigno also awards certificates to legitimise the acquired knowledge. Opigno is, hence, a great distribution for universities and e-learning organisations. 
  • Vardoc is another distribution meant for knowledge seeking purposes. It is built using Varbase, and is perfect to host a huge amount of content arranged in a structured manner, streamlining the content in an easily navigable layout. 
Specialised for Governmental organisations
  • deGov is a Drupal distribution meant for addressing the needs of government organisations at different levels. It is used for managing the working of official websites and publishing information. It also provides for citizen engagement portals and civic issue tracking portals for greater transparency.
  • While deGov was developed keeping in mind the needs of the German government, the distribution aGov was created according to the guidelines of the Australian government with the purpose of smooth transition of Federal, State and Local government agencies' websites to Drupal while retaining complete control of their codebase and choice of hosting provider. GovCMS was also created for the Australian government for ensuring a seamless workflow within the government's digital functioning.  
  • Another distribution meant to simplify the working of the public sector is Dimpact WIM. It is used by a municipality to state an online presence and to remain connected to other municipalities of certain regions in The Netherlands, in order to discuss queries and solutions among themselves. This is aimed towards bringing out an integrated public framework. Drupal voor Gementeen is also used by the Dutch government for the same purpose.
  • Also aiming at transparency and citizen participation in organisations is OpenPublic. Open Public makes it convenient for open governments to function with features focusing on providing open government requirements, such as improving citizen services, providing public access to data and providing a public forum for two way communication with agencies, without compromising accessibility, security, or usability. 
For an engaging and innovative website
  • Web Experience Toolkit is a distribution meant to create innovative websites that are usable, accessible and interoperable. It is led by the Government of Canada for free use by its departments, and even external web communities. 
  • Speaking of innovative websites, a responsive, clean and trendy website template is provided by BigVideo Installation profile. The X-factor in this distribution, however, is the ability to attach videos to the background of the site. 
Other important Distributions  
  • OpenChurch is a much thought about distribution that eases the working of churches and ministries by providing them a bunch of utility organisational and developmental tools online. Among the various features of OpenChurch are a blog page, bulletin board, events calendar, and a gallery for uploading pictures on the site. One can also easily integrate the rest of their social media with the website. 
  • farmOS is quite a popular distribution for record keeping and management of farm activities. The modules included in this distribution are efficient in managing all tangible objects in an agricultural farmland - like trees, animals, crops, etc. The functionality of farmOS can also be extended using additional modules
  • Crypto is a distribution for analysing live market market data of over 800 crypto currencies. It uses react.js to list top 4 currencies and coin listing, extracting data from a headless Drupal website. 
  • OpenFed is a distribution created by the Belgian Federal Public Service Policy and Support, as part of the Fast2Web offering. Major functionalities include advanced search, modules for customising layout and modules for enhancing security. 
  • Apigee Developer Portal Kickstart is used to build new Developer portals for Apigee, a platform for managing several APIs. 

All in all,distributions are a great way to simplify one’s work. They also make it much easier to stay up to date with the ongoing trends and developments all around the world.

blog banner blog image Drupal distributions Varbase Panaoply Commerce Kickstart Thunder Brainstorm Profile DeGov Lightning OpenSocial Opigno LMS Blog Type Articles Is it a good read ? On

MidCamp - Midwest Drupal Camp: Register for MidCamp and WIN!

2 weeks 5 days ago
Register for MidCamp and WIN!

As if learning all about the Drupal Community, Contribution and participating in an Unconference weren’t enough, we’re pleased to also offer you the chance to win some prizes! The goal of MidCamp is to bring everyone along for the ride, whether you’re just getting started with Drupal, you’re continuing to iterate and learn, or you’re a subject matter expert sharing your knowledge. We hope some of these prizes help you on your journey, wherever it may take you!

Each morning, we’ll be drawing registered attendees’ names to win fabulous prizes. First-time attendees and new community members will have extra chances to win!

Thanks to our sponsors DDEV and GitKraken for donating the prizes. Here are some of the things you might win:

Register now, it’s not too late!

Specbee: Building Micro-sites in Drupal using the Groups Module

2 weeks 5 days ago
Building Micro-sites in Drupal using the Groups Module Maithri Shetty 23 Mar, 2021 Top 10 best practices for designing a perfect UX for your mobile app

There maybe times when you do not want certain pages of your website to look like the rest. You might want a different theme, a unique menu or a distinct layout altogether. That’s when you will want to create Micro-sites. Micro-sites are small sites that can be subsets of your main site or have a completely different domain/subdomain. Mainly used for discrete marketing campaigns, events or products, micro-site marketing is a great tool to promote focused campaigns.

With Drupal 8 (and 9) you can build micro-sites within your existing setup using the Group module. You can have a separate set of users, permissions, and pages within that setup. Let’s learn more about this amazing module and how you can create micro-sites using the Group module.

Creating micro-sites using the Group module for Drupal

The latest version of the Group module was released in Drupal 8.8 and is compatible with Drupal 9 as well. It enables you to build discrete collections of content and users on your Drupal site. You can also setup access control for these collections. Group module is not only useful to create micro-sites but can be used whenever a site needs to create content that needs to be accessed only by certain user groups.

Installing the Group Module

Follow the below steps to install the Group module for Drupal 8 (or 9).

Step 1: Use this command to install the module

composer require 'drupal/group’ 

Step 2: Enable the Group and Group Node module

Working with the module

Once the module is installed you will see Groups in the administrative menu.


Under Groups, you need to create a Group type for your micro-sites. Group types are basically types of divisions for your website. In our case the group-type is a Micro-site.

After adding the group type you can add fields to your micro-site. You will see 3 extra tabs in this group type - Content, Roles, Permissions.


In the same above image, you can see a content tab where you can add content types to your micro-site (these are content types that we have created in our main site).

Now, you can also create separate roles for the micro-sites.

After adding a separate role to the micro-site, you can add permissions to that particular role by clicking on Edit permissions. You can set the permissions as per your requirement.

Next, you have a permission tab where you can add permissions to anonymous users and other micro site members. After configuring your group type, you can now add the group to that particular group type.

Now while editing your group you will see many other tabs apart from View, Edit and Delete.


Now, go to the Members tab where you can add members to the group. These are the members who can perform actions on this particular group. (Note: by default, admin will be a member of the group. You can disable this functionality in the group type configuration.)

Go to the Nodes tab to add content to the group.

All entities: This lists all the nodes and users in that particular group.


Adding menus to Micro-sites

Install Group Content Menu using this command then enable the module.

composer require 'drupal/group_content_menu'

After installing this module, you will see Group Content Menu types under Structure. Create a group content menu type for your micro site.

Place this menu type in the block layout where you want to display it.


Configure the block to display in the micro site.

Now in the group type content tab you will get the Group menu. Install that to display menus in your micro-site.

Now you should be able to see group menu in your groups.

In group menu you need to create a name for the Menu set.

After adding the menu set, you can now add menus.

Now clear your cache and check the group. The menu will be displayed wherever you have placed it in your block layout.


Creating micro-sites is a great way to build separate identities for your brand. It is an effective marketing strategy that is being leveraged by all kinds of businesses today. Drupal offers a fantastic module to help businesses build micro-sites efficiently - the Group module. Learn more about how our Drupal experts can help you leverage the best features of Drupal for your next project. 

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

Leave us a Comment

  Shefali ShettyApr 05, 2017 Recent Posts Image Building Micro-sites in Drupal using the Groups Module Image Improving Drupal's Layout Builder Experience Image How to perform Automated Backups on a Drupal 8 (or 9) Website Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

A Drupal powered multi-site, multi-lingual platform to enable a unified user experience at SEMI.


Discover how our technology enabled UX Magazine to cater to their massive audience and launch outreach programs.


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


Web Wash: How to Replace Files in Drupal

2 weeks 5 days ago

Drupal doesn’t support the ability to replace existing files. You can create and delete files, but you can’t replace a file without using a module. If you try to upload a file with the same name Drupal will append “_0”, “_1”, etc… to the filename and increment it.

Luckily two modules can help with replacing files, and they’re called Media Entity File Replace and File Replace.

What is the main difference between Media Entity File Replace and File Replace?

Both modules will replace “files” whilst retaining the original file’s filename by performing an “overwrite” function in the backend. In Drupal, an uploaded “file” can be a “media entity” or a “file entity”.

As the module names suggest, the main difference is that Media Entity File Replace works at the media entity level, whereas File Replace works at the file entity level.

Drupal.org blog: Live deployment previews are now available for Contrib + a special ask for your support

2 weeks 6 days ago

In November of 2020, shortly after launching Drupal.org's new issue forks and merge requests workflow, we announced another new feature: live deployment previews of Drupal Core issues, powered by Tugboat.qa - the same service that underlies SimplyTest.me.

Generating an automatic preview based on an open merge request is a huge boon to Drupal contributors, allowing them to preview the changes without having to set up a local dev server to deploy the changes to. It also makes it much easier to perform usability and accessibility reviews, as the visual impact of the changes is more readily visible.


This screenshot demonstrates where the previews appear in a contrib issue.

As we publish this, there are nearly 200 core issues that have preview ability to help accelerate the review process and increase the velocity of core contribution.

We're thrilled to announce that these same deployment previews are now available for contributed modules and themes on Drupal.org as well.

If you maintain a project on Drupal.org, enabling these previews is as simple as adding a tugboat.yml file to your project. Just follow the steps provided in our documentation. If you have feedback about the feature or would like to learn more, join the Tugboat Community Slack.

We hope the new feature makes contribution an even more rewarding experience.

Special request: Asking for your support for Ben Chavet

Ben Chavet is a long-time Drupal Community member part of the extended Lullabot family, and one of the leads of the Tugboat.qa project. He worked very closely with the Drupal Association team in order to bring these live deployment features to the community. Now he needs your help. Ben is in intensive care with a very serious case of COVID-19, and his family needs your support. We appreciate your giving spirit to support one of our own.

43 minutes 44 seconds ago
Drupal.org - aggregated feeds in category Planet Drupal
Subscribe to Drupal Planet feed