Planet Drupal

Did you know that according to WebAim, a whopping 98% of the top million homepages on the web today present some sort of barrier to accessibility? This has serious implications for the 1 in 5 people worldwide living with some form of disability. Building a more accessible, inclusive web is truly everyone's business.

There's a ton of information out there on web accessibility, and it isn't always clear where to start and what you should be focusing on.

We've put together a simple, straightforward, informative guide to help designers, developers, and anyone working with a Drupal website navigate the ins and outs of the accessible web. Head over here to download your copy. It's free!

Ebook Chapters 1. Why web accessibility matters

Find out why making your website accessible should be a business priority.

2. What is web accessibility?

Learn about the key principles of accessibility and what standards and guidelines currently exist.

3. Assistive technologies you can start using today

Spend some time in the shoes of a user with a disability to experience first-hand why accessibility is so important, and whether your website really works for everyone.

4. Why Drupal is great for building accessible sites

The Drupal CMS comes with robust accessibility features out of the box. Find out how switching to Drupal can help your accessibility journey.

5. 18 tips for making your website WCAG compliant

Start making simple changes with a big impact today.

6. Tools for checking website accessibility

You're not alone! Discover some must-have accessibility testing tools.

7. Drupal modules for web accessibility

Need even more features? Explore our favourite Drupal modules that extend the CMS's accessibility capability even further.

Download Your Copy!

Click here to get your free copy of Building a More Inclusive Drupal Website: Your Accessibility Guide.

+ more awesome articles by Evolving Web

The answer is... it depends on who is doing the updating.

You are updating the contrib code base

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

At Morpht, we have been busy experimenting and building proof-of-concept personalisation features on Drupal 8. We started off with content recommendations as one of the cogs in a personalisation machine. Recombee stood out as a great AI-powered content recommendations engine and we decided to develop some contributed modules to integrate it with Drupal.

We have implemented three modules which work together:

  • Search API Recombee indexes content and pushes it across to Recombee.
  • Recombee module tracks users and displays recommendations.
  • JSON Template module defines a plugin system for transformers and templates and controls how JSON can be transformed client side.

The video below is a demonstration of these three modules and how they combine to deliver a power recommendations system capable of providing content to anonymous and logged in users alike. 

Download the slides from the presentation
(PDF 785KB)

Let's talk

Find out how personalisation can help you increase audience engagement and lift user experience.

Contact us

Different options of decoupling Drupal Shalini Rawat Mon, 08/10/2020 - 17:36

In this world of growing interfaces and APIs, content plays a significant role and great user experiences begin with great content. Certainly, wearables, conversational interfaces, IoT, and more have begun to establish the changes in how we experience the internet, making alterations in the digital marketplace. Therefore, to keep up the pace, organizations need to adopt front-end technologies such as AngularJS, React JS, etc. that can deliver the content at a fast speed. Decoupled Drupal (or headless Drupal) is one such solution that has been gaining ground lately and is being considered as a holy-grail that exhibits innovative strength to produce exceptional digital experiences. 


The role of the website is not limited to the creation of the content. In other words, the website is responsible to deliver the content in a user-friendly manner across all devices. Keeping this responsibility in mind, more and more websites are opting for a decoupled approach and preferring a strong content store in Drupal And probably that is why you are here. However, the most complex question remains - how to decouple Drupal. Therefore, in this post, we will be gaining more insight into different ways of implementing decoupled Drupal.

Ways to Decouple Drupal

In a traditional web project, Drupal is used to manage the entire content and to present it. Since Drupal is a monolithic system, therefore it maintains entire control over the presentation as well as data layers. Traditional Drupal has been an excellent choice for editors who wish to take full control over the visual elements on the page. Not to mention, traditional Drupal open door to access features such as in-place editing and layout management. 

There are certain factors that are required to be considered by a technical decision maker before thinking to implement the Decoupled approach. These factors are the implications whether the effort to decouple Drupal is the perfect fit for your organization or not. Therefore, let’s take a look at the factors that should be a part of the decision making process.

  • First things first, do you have separate backend and front-end development resources? 
  • Are you building a native app and want to use Drupal to manage your content, data, users, etc.? 
  • Do you envision publishing content or data across multiple products or platforms?
  • Is interactivity itself a primary concern?
  • Does working around Drupal’s rich feature set and interface offer more work in the long run?
  • Do you want the hottest technology?
  • If your organization complies with the above mentioned factors, the organization is ready for the decoupling process. 

There are two approaches for decoupling drupal depending on the preferences and requirements. These include progressively decoupled, and fully decoupled.

Source: Drupal.orgProgressively Decoupled Drupal

Progressively decoupled Drupal is required when an additional layer called JavaScript is used to deliver a highly interactive end-user experience. In progressively decoupled Drupal, a JavaScript framework is used as a layer on top of the existing Drupal front end. The former is responsible for nothing more than rendering a single block or component on a page or it may render everything within the page body. The progressive decoupling model lies on a spectrum; the less of the page committed to JavaScript, the more editors can take control over the page through Drupal's administrative capabilities.

Fully Decoupled Drupal

Fully decoupled Drupal can be implemented in two ways, namely Fully decoupled app and Fully decoupled static site. 
Fully decoupled Drupal web app involves a complete separation of concerns between the presentation layer and all other aspects of the CMS. In this approach, the CMS becomes a data provider, and a JavaScript application along with server-side rendering is held responsible to render and markup, communicate with Drupal via web service APIs. Despite the unavailability of key functionality like in-place editing and layout management, fully decoupled Drupal app captivates the attention of developers who want greater control over the front end and who are already experienced with building applications in frameworks such as Angular, React, Vue.js, etc. 

On the contrary, JAMstack (JavaScript, APIs, Markup) offers an alternative to the complexities of JavaScript development. It helps in building fully decoupled Drupal static sites. The prime and obvious reason behind the idea is improved performance, security, and reduced complexity for developers.

Front end technologies

In the world of software development, whatever is built around falls into two categories: front-end technology and back-end technology. Front-end technology is everything that is seen by the user and the process that is happening in the background. On the contrary, all the behind-the-scenes activity that is responsible to deliver data and speed to run a screen is considered back-end technology. 

The development of front-end technology is crucial for any business application that wants to succeed and sustain itself in the digital marketplace. It is possible to have the most structured back-end programming to strengthen your application, however, the front-end is what people see and mostly care about.

Therefore, for your consideration, we have rounded up the best front-end technologies that a front end developer can use with Drupal to derive the best outcomes. 


React

React is a JavaScript library that is used to create interactive user interfaces (UIs). It is one of the most powerful and highly used front-end technologies, supported and maintained by the tech giant Facebook. The React holds the capability to split the codes into components to further enable developers with code reusability and fast debugging.  The appellations produced are SEO friendly and highly responsive.
Some of the prominent websites and web applications that use React as front-end technology include Airbnb, Reddit, Facebook, NewYork Times, BBC, etc.

Why connect with Drupal?

  • The combination of React and Drupal can be used to create amazing digital experiences. However, it is quite challenging to know how to leverage the strengths of both react and Drupal.
  • The one-way data flow of React helps in shaping the web page in accordance with the data that is sent from Drupal's RESTful API.

Gatsby

Gatsby is basically an open-source, modern website framework that helps build performance into every site by leveraging the latest web technologies such as React and GraphQL. Moreover, Gatsby is used to creating blazing-fast apps and websites without needing to become a rockstar. It uses powerful pre-configuration to build a website that uses only static files for incredibly fast page loads, service workers, code splitting, etc.
 
Why connect with Drupal?

  • There is no better option than Gatsby to create an enterprise-quality CMS for free, paired with great modern development experience. Not to mention, it offers all the benefits of the so-called JAMstack, like performance, scalability, and security.
  •  Static site generators like Gatsby can do fireworks by pre-generating all the pages of the website, unlike dynamic sites that render pages on-demand, thereby reducing the need for live database querying. As a result, performance is enhanced and overheads are reduced. This enhances the performance and brings down the maintenance cost.

Angular

Angular is an open-source, JavaScript front-end technology. Ever since the advent of this technology in 2009, it has been continuously gaining immense popularity for the advantages that it delivers to the businesses. Angular is supported by a large community and maintained by the tech giant Google. This open-source is readable and constant and enables businesses with various high performing apps.
Paypal, Gmail, and The Guardian are some of the examples that use Angular as the front end technology.

Why connect with Drupal?

  • The powerful combination of Drupal with Angular will allow you to move display logic to the client-side and streamline your backend, thus resulting in a super speedy site.
  • HTML never goes out of date and is always demanded by web developers and designers because of its simplicity, clarity, and intuitivism in its code structure. Angular makes use of HTML to define user interfaces, hence letting the organizations build interactive web applications that are highly functional and hard to break.

Vue

Vue is a JavaScript library that is used for developing distinct web interfaces and to create single-page applications. The core library of Vue solely focuses on the view layer, therefore providing convenient integration with other libraries and tools to achieve the pre-decided or desired outputs. Vue is not just a technology rather it is a proud ecosystem that is easily adaptable as it is lightweight. 

Why connect with Drupal?

  • With Drupal and Vue combination, developers have an upper hand to request and store Drupal content as data objects with the help of the official Vue-Resource plugin.
  • When combined with Vue, Drupal becomes competent to exhibit its magic at the back-end while the compelling features of the Vue handle the client-side. Vue’s component system is one of the powerful features that allow large-scale application building, comprising small and self-contained reusable components.
Decoupled Drupal ecosystem

The world of Decoupled Drupal is a compendium of a myriad of unique modules and features that can help transform the way you retrieve and manipulate information. Amongst which Rest, JSON: API, and GraphQL are the most important as well as the common modules when it comes to decoupled Drupal implementation.  So, let’s take a birds-eye view of each one of them-

RESTful Web Services

Web Services holds the responsibility to allow other applications to read and update information on your site via the Web. REST is one of the ways of making Web Services available on your site. Unlike other techniques, it encourages developers to rely on HTTP methods (such as GET and POST) to operate on resources (data managed by Drupal). RESTful web services is a module that provides a customizable, extensible RESTful API of data managed by Drupal. The module enables you to create an interaction with any content entity (nodes, users, comments) as well as watchdog database log entries. 

JSON: API

JSON: API is designed with an intent to minimize the number of requests as well as the amount of data that is transmitted between clients and servers. And guess what, this efficiency comes without any compromise relating to readability, flexibility, or discoverability. The moment you enable the JSON: API module is the moment you immediately gain a full REST API for every type in your Drupal application. JSON: API works on the principle that the module should be production-ready ‘’out of the box". To clarify, the module is highly inflexible in nature, wherein everything is pre-fixed. Be it about the location where the resources will reside, or what methods are immediately available on them. JSON: API leaves access control to Drupal Core's permissions system. 

GraphQL

The GraphQL Drupal module is used to raise a query or mutate (update/delete) any content or configuration using the official GraphQL query language. This particular module is considered as an extremely powerful tool which opens the door for Drupal to be used in a multitude of applications. Also, plays a crucial role in tools like GraphQL to implement auto-completion. This module can be used as a foundation for building your own schema through custom code or you can use and extend the generated schema using the plugin architecture and the provided plugin implementations form the sub-module.

In addition to these, the shift of responsibility has given rise to the development of some other modules to better serve the content and data. Let’s take a glance at them.

  • You can use Webform REST module to retrieve and submit web forms via REST.
  • If you wish to extend core's REST Export views display to automatically convert any JSON string field to JSON in the output, REST Export Nested module is the best option. 
  • Overriding the defaults that are preconfigured upon the installation of JSON: API module sounds easy with the JSON: API Extras.
  • For easy ingestion of content by other applications, Lightning API provides a standard API that primarily makes use of the json:api and OAuth2 standards via the JSON: API and Simple Oauth modules.
  • To build an integration between GraphQL and Search API modules, GraphQL Search API module can be useful.
  • Subrequest module tells the system to execute several requests in a single bootstrap and then return all the things.
  • Contenta JS module is necessary for Contenta.js to function properly.
  • There is an OpenAPI module in Drupal that can integrate well with both core REST and JSON: API for documentation of available entity routes in those services. 
  • Schemata module that provides schemas can be used for facilitating generated documentation and generated code.

Check out more such modules in the decoupled Drupal ecosystem here

Conclusion 

To conclude, decouple Drupal is an interesting approach that can help you build feature-rich interactive websites or build content hubs. There is a lot of talk about headless Drupal in the market and there is no doubt why companies are going gaga over it. In today’s world, end-users look forward to highly interactive websites that can pop out results in a jiff. Moreover, content needs to be made available at all touch-points in harmony. The decoupled Drupal solves these problems by creating different layers for presentation and data.

However, it is equally important to dig in certain minute downsides to it as well and carefully consider them before taking the decoupled path.

Got a question? Feel free to ping us at hello@opensenselabs.com and our experts will help you embark on your Drupal project.

blog banner blog image Drupal Decoupled Drupal Progressively decoupled Drupal Fully Decoupled Drupal JSON API GraphQL REST API RESTful Web Services OpenAPI Contentajs React Vue Gatsby Angular JAMstack Blog Type Articles Is it a good read ? On

Slow or intermittent connections are an all-too-common case that many users face when attempting to work with applications. Offline-enabled applications are a particularly challenging use case because they require synchronization and a local understanding of data.

Read more preston Mon, 08/10/2020 - 06:59

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

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

Important Dates

Nominations open: 10 August 2020

Nominations close: 27 August 2020

"Meet the Candidates" begins: 28 August 2020

"Meet the Candidates" ends: 13 September 2020

Voting opens: 14 September 2020

Voting closes: 30 September 2020

Announcement of winner: 30 October 2020

What does the Drupal Association Board do?

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

Who can run?

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

How do I run?

Candidates are highly encouraged to:

  1. Watch the latest Community Update Video

  2. Read about the board and elections
  3. Read the Board Member Agreement

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

Who can vote?

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

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

How do I vote?

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

Elected board member special responsibilities

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

What should I do now?

Self-nomination is open! Please do read further:

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

The Promote Drupal initiative is looking for input from decision makers who play a role in selecting the content management system (CMS) or digital experience platform of choice for their organization. We want to better understand the pain points and the key decision criteria evaluators use in selecting a content management system.

We’ve put together a survey that you can share with your network. We encourage you to invite Drupal end-users as well as any contacts who have selected a different technology for their website. We’ll share the results with the community in the form of an anonymized report, and use the feedback to improve marketing materials for Drupal.

Here’s a quick message you can use to promote the survey to your contacts:

Fill out this quick survey from the Promote Drupal Initiative to tell us how you select which technology platform for your website.

The survey only takes 5 minutes, and you might learn a thing or two about your own decision-making criteria in the process. Whether or not you’ve decided to build your website with Drupal, your input would be incredibly valuable.

Why Are We Doing This?

The survey feedback will greatly facilitate the work of the Promote Drupal initiative. It will help us create more relevant resources and on-boarding materials for those evaluating Drupal.

Every voice matters! We want to get the perspective of evaluators who are looking at Drupal from technical and marketing perspectives and are able to provide honest and actionable insights. We would love to hear from as broad an audience as possible so that we can make the evaluation process more accessible to decision makers with expertise in different areas.

What is Promote Drupal?

The Promote Drupal initiative creates branding and marketing materials to spread the word about Drupal, drawing on the expertise of agencies and Drupal users around the world. If you would like to contribute to the Promote Drupal initiative in any way, you can check out some of our past projects (e.g. the pitch deck with over 70 Drupal case studies).

You can publish a case study, help with translating materials, or help us design resources. The best way to start, is to join the #promotedrupal channel on slack.drupal.org and get the conversation going there.

Read our roadmap to understand how this work falls into priorities set by the Drupal Association with direction and collaboration from the Board and community. You can also review the Drupal project roadmap.

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

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

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

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

Highlights Looking for the TLDR? 

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

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

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

Improving Drupal 9 Performance with modules, best coding practices and the right server configuration Pradosh 11 Aug, 2020 Top 10 best practices for designing a perfect UX for your mobile app

You could have the most powerful server with memory in heaps but is that enough to ensure a high-performing website? With Drupal, scaling the website in harmony with your business growth is easy. In fact, that is what Drupal is great at. However, a sudden rise in web pages, functionality and content could impact its performance. Drupal 9 is here now and is all geared-up to take on this challenge like a pro! It comes with the goodness of Drupal 8 minus the old code which makes it leaner, cleaner and more powerful. Explore more on Drupal 9 performance improvement techniques that absolutely work.

Performance of the website is the key to business success. Slow loading websites could be harmful for businesses. A website with better performance helps in better SEO, improve visitor’s conversion rate and provides better user experience to the visitors which collectively help in the growth of the business. While slow loading websites do quite the opposite and become the reason for the business failure.

 

There are many things that affect the website performance. Some of them are:

•    Your service provider (Hosting, DNS etc.)
•    Number of requests to the server
•    Technical issues or bad programming practices
•    Caching technique
•    Improper server configuration
•    Heavy image and video files

Drupal 9 Core and Custom Modules to boost Performance 

There are many available contributed and core modules in Drupal 9 which can be helpful in improving your website’s performance. By following certain coding practices and with proper server configuration, you can drastically improve the site performance.

Core Modules
  •    Big Pipe

The Drupal Big Pipe module makes things faster without extra configuration. It comes packaged with Drupal core. It improves frontend perceived performance by using cacheability metadata and thus improving the rendering pipeline.

•    Internal Dynamic Page Cache

This Drupal 9 module helps to cache dynamic content. It is helpful for both anonymous & authenticated users. This module is not available in Drupal 7. Pages requested by users are stored the first time they are requested and can then be reused when the same page is further requested.


•    Internal Page Cache

The Internal Page Cache module helps to cache data for anonymous users. This module is available in core and is enabled by default. 

Configuration Path:  admin/config/development/performance

Here you can clear cache, set browser and proxy cache maximum age and enable / disable aggregation settings.

                     Internal Page Cache Module  Contributed Modules
  • Advanced CSS/JS Aggregation

    The Advagg module comes packed with many other submodules, such as -
  • AdvAgg Cdn: Helps to load assets (CSS/JS) from public CDN
  • AdvAgg CSS/JS Validator: Validates CSS and JS file
  • AdvAgg External Minifier: Minifies Javascript and/or CSS with a command line minifier.
  • AdvAgg Minify CSS : Helps in minify css files with 3rd party minifier
  • AdvAgg Minify JS : Helps in minify js files with 3rd party mi
  • AdvAgg Modifier : Allows one to alter the CSS and JS array. (May have compatibility issue)
  • AdvAgg Old Internet Explorer Compatibility Enhancer

Configuration Path: /admin/config/development/performance/advagg

This module also supports file compression techniques like gzip and brotli. This module helps in reducing the number of http requests, thus improving the site performance significantly.

  • Blazy

The Drupal 9 Blazy module provides lazy loading of images to save the bandwidth and avoid higher bounce rates. Lazy loading is a technique that loads images only when in the visible area to the user. This multi-serve technique saves time and data. 

Configuration path: /admin/config/media/blazy

Here you can enable/disable Blazy, configure placeholder effect and can also set the offset which determines how early the image will be visible to the user.


                              Blazy module
  • CDN

The Drupal 9 CDN module helps in easy integration of CDN in Drupal websites. It helps to serve static content from the CDN server to increase the speed of content delivery. Other than that, this module is also easy to configure.

Configuration path: /admin/config/services/cdn

           CDN Module Settings

Here you can enable/disable the CDN, provide mapping URL and check/uncheck forever file caching.

Performance Improvement with Best Coding Practices
  • Using isset() over array_key_exist()

isset() method is significantly faster than array_key_exist(). The main difference between isset and array_key_exist is that array_key_exists will definitely tell you if a key exists in an array. Whereas isset will only return true if the key/variable exists and is not null. For more information on this check here for benchmark comparison.

  • Using entityQuery()

entityQuery() depends on a storage controller to handle building and executing the query for the appropriate entity storage. This has the advantage that any query run through entityQuery() is storage independent. So, if you’re writing a contributed module or working on a website where it might be necessary to move to an alternative entity storage in the future, all your queries will transparently use the new storage backend without any changes needed. entityQuery() can be used whether you’re writing queries by hand in custom code or via the entityQuery() Views backend.

  • Using loadMultiple() method instead of looping

If you have 10 nids (node ids) and you’re looping through it to load each node, you are making 10 queries to the database. While using loadMultiple() it is reduced to just one database query. 

 

  • Caching

Using Cache API in Drupal 9 you can cache the renderer, response array or object. There are three renderability caching metadata available in Drupal 9.

  1. Cache tags

    The Cache tags are used to cache data when it depends upon Drupal entities or configurations. Syntax for this is cache-item:identifier e.g. node:5, user:3.
  2. Cache context

    Syntax:
    •    periods separate parents from children
    •    a plurally named cache context indicates a parameter may be specified; to use: append a colon
                    Example: user.roles, user.roles:anonymous, etc.
  3. Cache max-age        

          Cache max-age is used to cache time sensitive data.

  • Queue worker / Batch

To process large amounts of data without php time out, batch processing or queue worker can be used. Items in queue worker runs only when the cron runs and it runs for a small amount of time. There are two types of queue workers: reliable and unreliable. Reliable queue worker ensures that the item in the queue runs at least once, whereas an unreliable queue may skip items due to memory failure or for other interruption. Batch processing processes the items till all the items finish in the batch conditioned so that no error should occur during the processing without waiting for the cron run.

Improving Performance with better Server Configuration
  • Using Nginx instead of Apache

Nginx and Apache, both are widely used web servers. Nginx has an edge over Apache on performance benchmark. It is also faster and more efficient than apache. Nginx performs 2.5 times faster than Apache according to a benchmark test running up to 1,000 simultaneous connections.

  • HTTP/2.0 over HTTP/1.1

HTTP/2.0 supports multiplexing, that is unlike HTTP/1.1 which blocks other resources. If one resource cannot be loaded, HTTP/2.0 uses TCP connection to send multiple streams data at once. HTTP/2.0 uses advanced header compression techniques than HTTP/1.1

Nginx configuration for HTTP/2.0 server { listen 443 ssl http2; //http2 settings ssl_certificate server.crt; ssl_certificate_key server.key; }
  • Serving Compressed Content
Compressing responses often significantly reduces the size of transmitted data. However, since compression happens at runtime, it can also add considerable processing overhead which can negatively affect performance. Nginx configuration to serve compressed content: server { gzip on; gzip_static on; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_proxied any; gzip_vary on; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; ... }
  • MariaDB instead of MySQL

mariaDB has improved speed as compared to MySQL. It provides faster caching and indexing than MySQL. It is almost 24% faster than MySql in this case. There are other key metrics also where mariaDB is better than MySQL. So, MariaDb is preferred over MySQL in terms of performance.

  • CDN

CDN stands for content delivery network. It is a cluster of servers spread across the globe (a.k.a., points of presence, or PoPs), which works together to deliver the content faster. CDN stores the cached version of the site content and delivers the content from the nearest available server. Some of the popular CDN providers are Cloudflare, Amazon cloudfront, Google cloud cdn etc.
 

Drupal 9 is persistent on continuous innovation and carries forward significant features from Drupal 8. The codebase is now cleaner and more lightweight. It’s compatibility with the latest modern web technologies and libraries have enabled organizations to build better, more powerful digital experiences. However, applying and leveraging the best of the techniques, modules and coding practices can help maximize your efforts in performance improvement for a Drupal website. At Specbee, we are committed to providing our customers with high-performing websites only. Contact us today to know how we can help you with your Drupal project.

Drupal Planet Drupal Development 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 Improving Drupal 9 Performance with modules, best coding practices and the right server configuration Image Top Drupal 8 (and 9) Modules for Intuitive Website Navigation Image Drupal Pathauto Module - A Brief Tutorial on how to Automatically Generate Bulk URL Aliases in Drupal 8 Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

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

link

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.

link

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

link

Since the start of lockdown in March, you’ve probably seen way more live streams on social media than you ever had before. These are taking places on platforms like YouTube, Instagram, and Facebook Live.

We recently got a question at a training from an attendee whose organization has been doing more live streams on Facebook. They also use Drupal’s built-in Media module and were wondering how they could embed their recorded live streams from Facebook onto their Drupal site. In today's tutorial, I outline two different methods for pulling this off.

Method 1: Basic HTML Embed

This method isn’t integrated with Drupal’s Media module. The video won’t appear in your Media Library and can’t be referenced and re-used through your site.

However, if you’re looking for a quick solution and don’t need all the magic that Media offers, this might be a good route.

  1. Go to the video on Facebook
  2. In the top-right of the page, click the three dots to reveal the drop-down and click Embed
  3. Copy the HTML code
  4. Go to your WYSIWYG editor field, click View Source, then paste the HTML code.
Method 2: Drupal Media Module and Remote Video

Out of the box, Drupal ships with the Media module, which has a few different Media Types, including:

  • Audio
  • Document
  • Image
  • Remote video
  • Video

The difference between Remote video and Video is that the former are videos hosted on third-party platforms, like YouTube and Vimeo. In fact, out of the box, Drupal Media can have a URL from either of those two sites and be playable. Unfortunately, we have to do some work to get other platforms to be playable.

I’ll be showing a module called Media Entity Facebook to get Facebook videos to be embedded. But first: make sure you’ve already enabled the built-in Media module.

OK, let’s go.

Note: the embedded YouTube tutorial was recorded on July 13, 2020. On July 17th, a release of the Media Entity Facebook module was released and this is the recommended solution. You can skip to the 9:05 mark to jump straight to the process of configuring this module.

1. Get the Media Entity Facebook module for Drupal

First, download and enable the Media Entity Facebook module.

2. Create a new Media Type

After enabling, we can create a new Media Type that uses Facebook as a Media source:

  • Go to /admin/structure/media
  • Click Add media type
  • Give it a name and a description, then choose Facebook from the Media Source drop-down
  • Click Save

3. Create or modify a media field to handle the Facebook video media type

Now that we have a new Media Type, we can create a field (or modify an existing field) on a content type to use it.

  • Add a new field to your content type 
  • Choose Media from the Field Type drop-down and name your field
  • In the list of Media Types, choose the new Facebook media type that you created in the previous step.

4. Change the input widget

After adding a new Media field, the default method of adding the content is via the autocomplete widget. This is silly, and we are going to change this widget to something more sensible.

Go back to editing your content type and click on the Manage form display tab. Find the field field that uses your Facebook video embed and change the widget to use Inline entity form - Simple. This will let your users simply paste the URL of the Facebook video.

Now, when you add content, you can give your media entity a name and paste in just the URL of the Facebook video (not the embed code).

As for your content type, by default it will display several fields you may not need, such as Authored by, Authored on, URL alias, and Published. In the Manage form display menu of your media type, you can drag these fields to the Disabled section.

5. Change the display of field

After saving our content, by default this module just shows the Facebook URL and not the embedded video. To get it to display as an embedded video, we have to change the display type of the Media entity itself:

  • Go to /admin/structure/media/manage/name_of_your_media_type/display
  • Change the format of your field to Facebook embed
  • Click Save

And now, your content should have the Facebook video embedded.

Wrap-Up

The video tutorial and the directions above showed the Media Entity Facebook module being used on a content type. That said, nothing prevents you from creating a new Media Type and using it in Paragraphs.

In fact, that’s exactly how I use it on one of my personal sites. I record live streams and at the end of the week, I post all of the videos recorded into a blog post which is based in Paragraphs. Here you can learn all about the Moon, from embedded Facebook videos.

+ more awesome articles by Evolving Web

What our clients are saying

...continued to monitor it closely and is still always available to help me if I have any questions
...your punctuality, your casual and open personalities, and both your hard copy and online portfolios speak very highly of you and your business as well
I would highly recommend her for any position requiring IT design and development
I have seen the first layouts and they are awesome...
...a pleasure to work with, combining patience (for my busy schedule and at times overwhelmed brain) with her strong motivation and energy to keep me going
...provided us with excellent, expert service in a professional and personable manner.
I would highly recommend her for any position requiring IT design and development
" PDI provides us prompt, effective and efficient service in maintaining our Drupal based website."
...we just want you to know that we are appreciative!
...able to take my abstract ideas and add their expertise to bring them to life in a way that was better than I could have imagined!
...I have no doubt we will have the best site in the 2010 election of any PA candidate
I'm so happy we chose to work with PEERLESS Design.
I love directing our customers to our new site knowing that they are going to be able to find exactly what they are looking for...
I had a very tight deadline and budget, and they met it, seemingly with ease.
... they also made suggestions which showed me that they fully understood what I wanted to accomplish.
...dedicated, competent and driven to get the job done and done well.
...took my less than mediocre site and completely revamped it into a beautiful, professional, and easy-to-navigate site
A great experience and a much improved website.
...very responsive to our questions and needs
I realized that I had picked the right company to work with soon after beginning a project with Peerless Design, Inc.
...creative, independent, responsive...
Thanks so much for everything!
...can do anything any other designer can do and generally quicker, cheaper and better.
...able to translate technical information in an accessible way...
... incredibly impressed with what you brought to the table