Drupal Planet

Subscribe to Drupal Planet feed
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 7 hours 53 min ago

OpenSense Labs: Breaking Down the Concept of Distributed Content Management System

July 23, 2018 - 19:04
Breaking Down the Concept of Distributed Content Management System Akshita Mon, 07/23/2018 - 17:34

Advances in technologies have brought us to the situation where huge amounts of ever-flowing media content need to be routinely stored, encoded, and exchanged. Heading an organization – such as a multinational/regional media organization – with the complex content creation and publication needs while also keeping a track of the content can be a difficult task.

Networked storage and exchange of data allow content to be distributed across a network making the task of content management all but impossible to deal without a content management system.

Considering the popularity of Drupal as the CMS, in this article we will explore how Drupal can help in providing and managing the modern digital experience with a Distributed Content Management System. 

Understanding the Concept

To develop a better understanding of the distributed content management system, let’s understand with an example of a national daily which also publishes content in different regional languages. 

What is Distributed Content Management System?

Let’s call this media house - One India News. Further, it has 6 different regional websites. Similar to many media institutions, the website channels are split into multiple categories (let’s say 5) and each of those categories further houses a number of sub-sections.  

Some of the regional websites may only have 2 to 4 categories depending on the demand, but others may have upwards of 10 with each category having an editorial team of its own.  

And let’s not forget that each of those regional websites are handled by a number of different editors for each category and channel. Toss in the requisite assortment of vote cards, topic cards, photo collage - you can see how quickly the web presence gets complex!  

“Management of Distributed Content revolves around efficiency and control.”

At this scale, we’re likely dealing with multiple websites, all of which have requirements around content. This has now become the perfect usecase for Distributed Content Management!

 

Use Case 1: Publishing Workflows For Individual Websites

Consideration of a content approval workflow is a critical part of the content strategy for any organization that employs Distributed Content Management. For the main website of One India News, the strategy is simple. A central editorial team with defined roles and distributed content production would suffice.

Publishing workflows must be tailored not only to the media houses but to each channel and team that’s in charge of their regional website. Content to be published on the homepage of the website will likely require significantly more oversight than in the humor or offbeat channel. 

The Distributed Management of Content or The Management of Distributed Content

The Distributed Management of Content deals with the workflow involved in the content creation with a decentralized approach.

The Management of Distributed Content works around dealing with existing content from a variety of sources, involving input (from other websites/sources), output (to other websites) or both. 

By implementing Distributed Management of Content, organizations can eliminate the time and opportunity for error introduced when users enter content in multiple places. Unlike the first concept, the goals for Management of Distributed Content are generally around efficiency and control. 

Use Case 2: Sharing Content Out - Centralized Content On A Distributed Web Platform

Even the most decentralized media house have content that is centrally produced. In some cases, it may be easiest to just hyperlink to that content in its original location; however, consider, a news story of national importance published on the main website. That story may be reposted in its entirety in all the other regional websites. 

Copying and pasting become a less efficient option when the content is further distributed - more so when you consider the possibility of edits and possible unpublishing. 

Use Case 3: Sharing Content In - Decentralized Websites As Points Of Origin

Another interesting use case presents itself when we consider distributed websites as the starting point for content creation. Most media houses maintain a central calendar of events, such as festivals and political events. 

In a well-formed distributed content model, with an appropriate CMS like Drupal, the same metadata that allows visitors to filter events - audience, department, program - can be easily used to syndicate those events to various other websites.  

Unfortunately, the same level of consideration is not always given to everyone outside the subset team with appropriate permissions. 

Content managers who are generally empowered to manage their own content may not have the same access to do so, or, in cases where they do have permission, find themselves needing to enter content into an entirely different website system to get it published to their site. 

But why should this be the case?  By extending the same technologies that allow websites to receive events from a central calendar, we can enable content managers to publish events to the calendar from within the same website they usually manage. (The same content approval and publishing workflow considerations apply, of course.)

Centralized Content Management Distributed Content Management 
  • All content funnelled through one group
  • Small individual workgroups responsible for respective areas
  • Central rules and procedures to ensure rules are followed 
  • The responsibility of individual groups to oversee content quality
  • One person authority - who is responsible for the rules and implementation
  • Each group may have one or more lead approvers. Workgroups leads handle process and rules
  • Advantage -  Resulting process control without confusion
  • Advantage - Responsibility and the workload are distributed
  • Disadvantage - May result in a bottleneck
  • Disadvantage - Individual groups can interpret rules differently
Use Case 4: Multichannel Brand Content

Single-source content syndication also provides an opportunity for media companies like One media looking to promote their brand across multiple mediums. Many companies choose to employ standalone, all-in-one news providers such as ANI, rather than integrating a category for each of the news providers. 

This makes a tremendous amount of sense: these organization systems when merged with the own CMS can provide a number of compelling results such as quicker results and faster news publishing. 

By programmatically receiving the content from a content repository the organization can eliminate the risk of delayed news and lose the audience. 


Use Case 5: Content Delivery To Validated Audiences

In an attempt to decentralize content over the years, media organizations now allow users to add stories to the website. 

How they access, validate, identify the users is another key consideration for the company’s Distributed Content Management strategy. 

A common approach is to segregate guest editor content into different regional “portals” - websites that require editor to create accounts and login to see the information for their country or part of the world.  

To overcome the challenge of validating these accounts, companies often integrate with an Identity Provider (IdP) such as SAML 2.0 Single Sign On easy configuration & active support, in your Drupal website. 

At the far end of the Distributed Content Management spectrum are systems that need to publish consistent, controlled content to websites with no possibility for discrepancies across multiple sites.  

Drupal allows Distributed Content Management strategy to be applied to large volumes of content to facilitate efficient workflow. Specifically, the system allows different content and editors to be part of the same system without much replication. 

Finally, the modular design of the Drupal architecture allows both stand-alone and distributed realizations so that the system can be deployed in a variety of applications. Connect with us, drop a mail at hello@opensenselabs.com or tweet us @OpenSenseLabs. 

blog banner blog image Content Management System Distributed Management of Content Content sharing Decentralized Websites Drupal CMS Content Creation Content Marketing Distributed content management Blog Type Articles Is it a good read ? On

OpenSense Labs: Devising content strategy for higher education websites with Drupal

July 23, 2018 - 17:51
Devising content strategy for higher education websites with Drupal Shankar Mon, 07/23/2018 - 16:21

Betterment is just another form of change which brings with it a lot of goodness. Higher education sector strives hard to cultivate ingenious qualities into the mammoth amount of aspiring students who come to their premises to gain superabundance of knowledge. In this digital age, the website of an institution is the gateway for the prospective student to explore more about the universities. It is significant to devise a content strategy for higher education websites to improve the digital user experience for their online visitors.

In an earlier blog, we threw light on Drupal’s efficacy in devising the content strategy for the websites. In this blog post, we will emphasise on improvising content strategy for higher education websites with Drupal.

Understanding the needs of your Higher Education website 1. Outreaching the prospective audience

Omnichannel A/B testing and Google Analytics reports can help in understanding your audience. Agreed! It is much easier than talking to each individual on the campus. As a matter of fact, having a conversation with the people on campus and by continuing to have them would actually help in learning the intrinsic details about your needs and opportunities thereby addressing them in the best way possible.

2. Assessing the needs

Now that you understand your needs and opportunities, it’s time to reflect back on analysing them. You have to see what works for you and what doesn’t. Also, you should validate where the potential is and where the pain is. By assessing such factors, you can have a clear picture of where you want to go and what’s needed to be done to get there.

  • Understand where your institution is headed at a high level and what’s on the to-do list. Fruitful online presence should comport with the priorities of your leadership group.
  • Take a note of your resources by understanding how big is your staff and their job roles. Gauge whether professional development is needed to bring people’s skills up to date. Also, you need to check what your budget looks like, how the staff members are spending their time currently, how much time can they spare for a web redesign effort, and whether new hires would be required or not.
  • Gather information about your sources. These can include catalogues, view books, events calendar, social media or any other such sources for which you are not directly responsible but have a huge potential and are pivotal for bringing value to your website.
  • Analyse the feedback from your users to see what they think about the website. Primarily, the users constitute front-end users (target audiences) and back-end users (content editors). Compile the comments submitted by the front-end users via email in the past year or two and set up internal meetings to collect opinions. Your back-end users are equally important and you should definitely do the same with them.
  • Map key content to your strategy. This includes your homepage, the virtual tour, your admissions page, news page etc. to your high-level institutional goals.
  • Identify opportunities for integration and alignment like pulling social media content onto your landing page, or verifying whether your maps and directions page consists of a callout to sign up for a campus visit.
  • Sort out your process of content auditing and its governance by having a robust system of the content workflow. Know who your content editors are, identify gaps in content workflow, and understand the roles and responsibilities defined for content producers. Gauge whether you have a training and documentation readily available. Identify what third-party content sources or systems are your content team using, and gauge how the internal communication process is working out for your content team.
3. Evaluating your content needs
  • Use analytics tools of your choice to gather relevant data like user flows, usage trends, top referrers, popular pages etc. It is even more important to configure conversion goals, campaign tags, and other such relevant metrics so that you can track your site usage even better.
  • Audit your top competitors’ websites to understand some key context thereby evaluating your own web presence.
  • Adopt usability testing to measure the user experience of your website. It helps in testing the efficacy of your calls-to-action, messaging, imagery, and navigation by devising a short test and governing it to members of your key audiences.
  • Gauge whether your website complies with ADA Accessibility for higher education or else you could be losing important members of your community who are unable to access your website.
  • Check whether your website is optimised for search engines and whether internet users can finding you in the first place.
Three-pronged approach
  • Motivation can a crucial factor when re-evaluating your segmentation strategy. While segmenting the audience on the basis of demographics or user behaviour is significant, it is also pivotal to understand what motivated them to inquire about your university.
  • Do look at content possibilities for different segments of your audience based on demographics, motivation and preferred communication channel. This is vital for identifying new prospects and maintaining relationships with your established supporters.
  • Always test within your audience. You should specifically focus on the flexibility and online components of the website with the audience.
 
Why is Drupal 8 a big boost for the essential needs of your Higher Ed website?

Higher education institutes need a website that is not only informative but impressive and ultimately converts potential students.

Source: Drupal

Drupal, an open source CMS, can work wonders for creating digital experiences for engaging, enrolling and restrain students, faculty, and alumni. With Drupal’s innumerable benefits, you can tailor your higher education solution.

No wonder 4 out of 5 top-ranked universities in the world, according to QS World University Rankings 2018, are powered by Drupal. University Powered by Drupal Massachusetts Institute of Technology Yes Stanford University No Harvard University  Yes California Institute of Technology Yes University of Cambridge Yes

Here are the must-haves for an incredible online presence of a higher education institute:

Responsive web design approach

Your website should adopt responsive web design approach. By reformatting images and page layouts according to your visitor’s screen sizes thereby adjusting to mobile users. This debars the need for horizontal scrolling on a mobile device and improves user experience as a result.

Source: NeilPatel

Drupal is mobile-responsive and works astoundingly well across platforms ranging from laptops to smartphones. Its user-friendly UI allows administrators, both technical and non-technical ones, to efficaciously design pages, upload content, and govern it.

 

The University of Oxford, world’s 6th best university as per QS World University Rankings in 2018, has grown manifold over the years. With the proprietary CMS, that the website of the university was running on, nearing its end of life, the university chose Drupal as their preferred open source content management solution. Drupal helped in rejuvenating its outdated design and make it mobile responsive to meet the demands of the digitally advanced set of mobile users.

Content Governance

You should have student-focused content. Potential students aren’t that interested in the internal news of an institution. Instead, they would, obviously, be more likely wanting to know how your institution can help get them the degree they want and enjoy the process. For instance, you can have a blog section dedicated to successful students talking about campus life, academics, and extracurricular activities. You can also have videos where the students give tips for freshmen.

Creation and management of content is the field where Drupal is the dominant force. Developing digital content with rich media embeds is the hallmark of Drupal with its ultimate content editing module - CKEditor. Moreover, to edit the content in-place, Quick edits module is very useful. Embedding files in your posts, making file readable, enabling text field for storing captions on images, taxonomy fields for audio files etc can be managed by Media module.

 

The website of Harte Research Institute (HRI) was redesigned with the help of Drupal. This streamlined their content authoring process thereby giving total control to the HRI administrators. They could easily edit existing pages, publish entirely new pages, and make a great use of tags and taxonomies.

Multisite

Universities benefit a lot by deploying multisite for their online endeavours. It is also significant to make the right decisions before adopting multi-faceted websites depending upon whether you are a large university with a global presence or a city college.

The out-of-the-box multisite functionality of Drupal lets students, staff members and other users communicate via a single system. It allows you to serve many sites from a single Drupal codebase which minimises the overhead of handling code across multiple sites. This leads to amazing agility for launching new sites quickly.

 

The University of Minnesota replaced its existing Oracle Universal Content Management System with Drupal for its flexibility and centralised workflow. Drupal helped in swiftly spinning up new sites from a standard design set. They could create sub-sites for different departments that could work as part of a larger community and erase the need for independent sites. It also enabled them to easily deploy code alteration across platforms.

Multilingual capabilities

Your website should have multi-language support. International students are increasingly turning out to be an important segment of the audience. Speaking to them in their own language is hugely beneficial for enrolment growth.

International Students in U.S. Colleges and Universities and Share of Total Enrolment, (%), School Year (SY) 1949–50 to 2016–17
Source: Migrationpolicy.org

Drupal 8 has inbuilt support for over 90 different languages and was built with multilingual use cases in mind. Its four out-of-the-box modules for translating configuration, content, interface and language help in streamlining the development of multilingual sites. Multilingual sites come handy for maintaining international associations, organising global meets, etc.

 

The website of Georgetown University in Qatar was revitalised with the in-built multilingual capabilities and scalability of Drupal. It helped in developing a robust dual language website (English and Arabic) and governing over 2000+ pages and content types thereby giving flexibility to editors and users alike.

Web personalisation

The website should have personalisation capabilities. When the potential students would visit your site, they would expect your site to have content tailored especially for them. On the basis of attributes like profile, behaviour and the location of internet users, you can create dynamic and personalised content to provide them with the relevant website experience.

Source: Oho Interactive

Drupal can help immensely in personalising the content to provide the relevant website experience. For instance, Acquia Lift Connector module allows integration with Acquia Lift service which helps in the unification of content and the insight collected from several sources about the customers. This helps in delivering in-context and personalised experiences across platforms.

E-commerce system

There must be an e-commerce system integrated to facilitate the donation making process for your alumni and donors. Bolstering the campus commerce capabilities would also mean that online fees payment would be streamlined. With the rise in Massive Open Online Courses (MOOC), higher education community should invest in ecommerce-enabled course offerings.

The seven steps in securing a donation
Source: Universitiesuk.ac.uk

Drupal is a wonderful platform for setting up e-commerce system with its superb module - Drupal Commerce. To make it easier for your generous donors to donate through your website, Drupal Commerce, being an open source e-commerce framework, can be useful for integrating an ecommerce system.

  • Thermometer, Drupal module, helps in the creation of simple thermometer widget which is useful for fundraising goals.
  • Another module, CRM Core Donation lets you process online donations and track donation activity.
  • Also, Commerce Goal helps in providing a way to show progress towards a fundraising goal for donations and products.

 

University of Colorado’s dedicated website for fundraising campaign was developed on Drupal. Since the launch of the site, the university witnessed a stark rise in the online donations with the number reaching $1 million within the first month.

Collaboration features

Drupal has powerful collaboration features for back-end users to support internal academic and research items in addition to its forward-facing content like static pages, blogs, forums and course schedules. Staff members and students can access manuals, handbooks, procedural documents and research documents.

Search-friendly

You must have SEO tools. No matter in which country your institute is located, students will throng your website using a search engine. Therefore, it is of paramount importance that you rank higher on search engines like Google, Bing, Yahoo etc.

Graphical representation shows that online searches and college’s website are the most used medium for exploring the higher education website
Source: Search Engine Land

Drupal websites are great for SEO reasons as well. University websites can rank higher in the search engines with the help of a suite of Drupal modules. For example:

  • Real-Time SEO for Drupal module helps you in optimising the content to be published on your website with right usage of keywords, URLs, word count, ease of reading and page title.
  • Pathauto module generates URL/path automatically the content on your website like taxonomy, users, nodes, users etc which can also be manually altered. So, if a blog titled ‘Content strategy for higher education’ is being published, it will automatically create an SEO-friendly URL called ‘blog/content-strategy-for-higher-education’.

Drupal helped in the SEO optimisation of the website of Georgetown University in Qatar. It increased time-on-site and page view count and helped the site rank higher in the online searches thereby attracting new students and employee talents.

Digital marketing campaigns

Drupal offers a huge list of modules to do social media campaigns and email marketing.

  • Easy social module helps in adding a share button to the node to easily share content in social media.
  • Activity Stream module lets you stream all your social media activities at one place.
  • Organic groups module allows you to create and maintain your own groups where each group can have its own set of subscribers.
  • MailChimp module helps in the integration with MailChimp, email delivery service, for email marketing campaigns.
Taxonomy system

Drupal comes with an excellent taxonomy system that categorising your digital content into groups. This helps in easing off website content access for the online visitors. Relevant content is displayed to the visitors thereby streamlining site navigation.

Centralised authentication

Drupal uses LDAP(Lightweight Directory Access Protocol) and CAS(Central Authentication Service) which makes it easy to enable single sign-on for the websites. Higher education institutions can benefit enormously through single point access integrations. Users can safely access a multitude of services and resources using a single login.

Georgetown University in Qatar has a dedicated employee microsite for the internal audience. It can be accessed from any device using a Single Sign-On ID that is incorporated with external identity solution through Shibboleth authentication module.

Drupal community groups

Several Drupal Community Groups exist who are committed towards better higher education solution. Following are some of the examples:

User permissions

Drupal offers a plentitude of modules for managing access and sharing content across multiple sites and portals. With Content and User Access Control, site administrators can create privileges to provide unique user experiences and different access rights to professors, students, alumni and site visitors.

Some of the Drupal modules include:

  • Domain Access module allows you to share users, configurations and content across different groups of sites.
  • Workflow module helps in the creation of arbitrary Workflows and assigning them to Entities. For instance, a workflow with the states like Draft, Review and Published can be assigned to Story node type. Thus, only the users with ‘Editor’ permissions can set Stories to the published state.
  • Workbench Access module helps in creating editorial access controls. Editorial rights can be granted for a particular section of a content to a user account.
Security

Safeguarding personal information of students and faculty members is of paramount importance. Drupal is the best security-focussed CMS and is ideal for higher education institutions.

As a matter of fact, Open Source Software (OSS) is generally considered more secure than proprietary software. Drupal is no exception and its security team has been committed to timely security fixes.

According to Hacked Site Report 2017 by Sucuri, Drupal has far fewer vulnerabilities reported among the leading content management frameworks like Wordpress, Joomla and Magento.

Conclusion

Higher education institutes are the most sought-after places for gaining an abundance of knowledge. Students looking to make a mark by joining the perfect institute of their choice must know what they have in offer. Their websites should have an effective content strategy in place for students to understand as much as they can about the university. Drupal 8 offers a great platform for the building a website that is tailor-made for students. 

We provide services for Drupal Development and it is our strong suit since our inception as a company. Contact us at hello@opensenselabs.com to build a website for your Higher-Ed institute that is tailor-made for students, faculty members, alumni and anyone who wants to gain something from your site.

blog banner blog image Higher education Higher-Ed Higher Education websites Higher education institutions content strategy Drupal 8 A/B testing content editor University Mobile Responsive Multilingual Site drupal seo web personalisation Ecommerce platform Open Source Multisite digital marketing Blog Type Articles Is it a good read ? On

Agiledrop.com Blog: AGILEDROP: Top Drupal blog posts from June

July 23, 2018 - 17:22
Each month, we revisit out top Drupal blog posts of the month, giving you the chance to check out some of our favourites. Here’s a look at the top blog posts from June 2018.    First one on the list is Working together to promote Drupal by Dries. In this blog post, he explains why the Promote Drupal Initiative was launched, what is its goal and how we can all help.      We continue our list with Ode to the Drupal Association by Wim Leers from Acquia. This blog post is a simple big thank you to the Drupal Association for always being there for us.     The third spot is reserved for a… READ MORE

Mass.gov Digital Services: Our modern development environment at Mass.gov

July 23, 2018 - 17:01

I recently worked with the Mass.gov team to transition its development environment from Vagrant to Docker. We went with “vanilla Docker,” as opposed to one of the fine tools like DDev, Drupal VM, Docker4Drupal, etc. We are thankful to those teams for educating and showing us how to do Docker right. A big benefit of vanilla Docker is that skills learned there are generally applicable to any stack, not just LAMP+Drupal. We are super happy with how this environment turned out. We are especially proud of our MySQL Content Sync image — read on for details!

Pretty docks at Boston Harbor. Photo credit.Docker compose

The heart of our environment is the docker-compose.yml. Here it is, then read on for a discussion about it.

https://medium.com/media/fbc867b921322353081ee532b7d55cf0/href

Developers use .env files to customize aspects of their containers (e.g. VOLUME_FLAGS, PRIVATE_KEY, etc.). This built-in feature of Docker is very convenient. See our .env.example file:

https://medium.com/media/ab87671a5208a5fcb1a974d604e0ea3b/hrefMySQL content sync image

The most innovative part of our stack is the mysql container. The Mass.gov Drupal database is gigantic. We have tens of thousands of nodes and 500,000 revisions, each with an unholy number of paragraphs, reference fields, etc. Developers used to drush sql:sync the database from Prod as needed. The transfer and import took many minutes, and had some security risk in the event that sanitization failed on the developer’s machine. The question soon became, “how can we distribute a mysql database that’s already imported and sanitized?” It turns out that Docker is a great way to do just this.

Today, our mysql container builds on CircleCI every night. The build fetches, imports, and sanitizes our Prod database. Next, the build does:

https://medium.com/media/780e82c13c0ac1bdf181f4750cd8f36c/href

That is, we commit and push the refreshed image to a private repository on Docker Cloud. Our mysql image is 9GB uncompressed but thanks to Docker, it compresses to 1GB. This image is really convenient to use. Developers fetch a newer image with docker-compose pull mysql. Developers can work on a PR and then when switching to a new PR, do a simple ahoy up && ahoy down. This quickly restores the local Drupal database to a pristine state.

In order for this to work, you have to store MySQL data *inside* the container, instead of using a Docker Volume. Here is the Dockerfile for the mysql image.

https://medium.com/media/eaa473e8cf2173bc84d489061a986a77/hrefDrupal image

Our Drupal container is open source — you can see exactly how it’s built. We start from the official PHP image, then add PHP extensions, Apache config, etc.

An interesting innovation in this container is the use of Docker Secrets in order to safely share an SSH key from host to the container. See this answer and mass_id_rsa in the docker-compose.yml above. Also note the two files below which are mounted into the container:

https://medium.com/media/4408d6b3b75b87ae3221a60d7a0d656a/hrefhttps://medium.com/media/3d3504fc38cc71e2deaec58802ee9927/hrefTraefik

Traefik is a “cloud edge router” that integrates really well with docker-compose. Just add one or two labels to a service and its web site is served through Traefik. We use Traefik to provide nice local URLs for each of our services (www.mass.local, portainer.mass.local, mailhog.mass.local, …). Without Traefik, all these services would usually live at the same URL with differing ports.

In the future, we hope to upgrade our local sites to SSL. Traefik makes this easy as it can terminate SSL. No web server fiddling required.

Ahoy aliases

Our repository features a .ahoy.yml file that defines helpful aliases (see below). In order to use these aliases, developers download Ahoy to their host machine. This helps us match one of the main attractions of tools like DDev/Lando — their brief and useful CLI commands. Ahoy is a convenience feature and developers who prefer to use docker-compose (or their own bash aliases) are free to do so.

https://medium.com/media/bb5cd5f672948ca0ca0f0f053aeea03f/hrefBells and whistles

Our development environment comes with 3 fine extras:

  • Blackfire is ready to go — just run ahoy blackfire [URL|DrushCommand] and you’ll get back a URL for the profiling report
  • Xdebug is easily enabled by setting the XDEBUG_ENABLE environment variable in a developer’s .env file. Once that’s in place, the PHP in the container will automatically connect to the host’s PHPStorm or other Xdebug client
  • A chrome-headless container is used by our suite which incorporates Drupal Test Traits — a new open source project we published. We will blog about DTT soon
Wish list

Of course, we are never satisfied. Here are a couple issues to tackle:

Our modern development environment at Mass.gov was originally published in MA Digital Services on Medium, where people are continuing the conversation by highlighting and responding to this story.

DrupalEasy: Necessity is the Mother of Mastering Drupal

July 23, 2018 - 02:10
A Drupal Career Online Case Study

 

A lack of off-the-shelf eCommerce software products that could meet the unique needs of her family’s biotech manufacturing company was a real issue for Lisa Streeter. “We’re not a big enough company to afford large, custom database solutions, so we needed to figure out how to do everything in-house,” she explains. (Lisa’s work responsibilities included everything computer-related, and “some other stuff.”) That’s how it started, but instead of just a solution, Lisa Streeter wound up with a whole new, fulfilling career.

Her initial quest for a database solution quickly began to grow her fascination in web development (primarily eCommerce,) and lessen her interest in the family business. “I like the idea that in web development, you’re actually building something, architecting information rather than just analyzing it,” she explains. She fine-tuned her focus, and after discovering Drupal, began to seek an effective way to become proficient.

“I don’t remember exactly how I first learned about Drupal Career Online. I didn’t know anybody who did anything with Drupal, so in the beginning I was just trying to figure out how I could learn Drupal," she explained. She tried some self-teaching methods, but those were not providing her a clear and effective path forward. DrupalEasy was regularly popping up in Google searches and referenced on sites like Drupal.org. “Early on it made my short list of potential “good places to learn Drupal” and then it was just a matter of finding the right time,” she recalls.

It turned out the time was the Fall 2017 session, and according to Lisa, that’s when her interest took a fast track, “I started really getting Drupal. It was a transformative experience.” She dove into the curriculum, participated in class, and DrupalEasy matched her with Matt Glaman from Commerce Guys as her mentor.  From there, her path became clear and direct. “DCO was just the right level of time commitment and intensity for me. It demanded enough of my time and effort to really accelerate the pace of my Drupal learning,” she explained. “At the same time, while I needed to give the class my full attention, it didn’t completely take over my life like going back to school full time would have,” she added.

The online, live instruction by an expert in Drupal and training was a great fit for Lisa. “Mike is an exceptional teacher who helped me really “get” what Drupal is all about, how to do things and think about solving problems in the “Drupal way.” This was something I wasn’t able to learn on my own from books, screencasts, or trial-and-error,” she recalled.   She also appreciates the small class size and Mike’s personal commitment to everyone enrolled. She explained, his “personal interest in getting to know every student individually made the class seem tailor made for me, even as I could see that it was also meeting the needs of my classmates in different ways,” she continued.

Mike Anello, (@ultimike) has been a part of the Drupal project for more than 12 years, and developed and has been delivering Drupal career training since 2011 via live in-person and online sessions and contracted programs with organizations needing to train their development teams in Drupal. His curriculum has become the model for the development of several other long-form training programs. He keeps alumni connected and engaged in learning through the DrupalEasy learning community, which evolved from his weekly online office lab hours. According to Lisa, “When you take the DCO course, you definitely feel like Mike is personally invested in the success of each and every student.”

With her interest in ecommerce in mind, Mike connected her with mentor Matt Glaman, a Drupal project maintainer and one of the Commerce Guys.  “For me, this resulted in a perfectly matched mentor, one who challenged me to tackle harder problems than I would have thought possible,” she said.  Matt recognized Lisa’s passion and talent, shared his insights with Commerce Guys partner Ryan Szrama, and then according to Lisa, “It all happened pretty quickly! “ The DCO ended just before Christmas, and she was offered a position on January 16th.

This fast track is a result of Lisa’s passion and Commerce Guys confidence in her abilities and training. She explained, “Ryan decided that he’d rather not hire me as a “Junior Developer”, even though there was an expectation that I’d be learning and working to improve my Drupal skills. Instead, I was hired as a “Drupal Developer,” with the understanding that I’d take responsibility for my own progress.”  It appears she has done just that, since in addition to serving as a developer, she recently was given the opportunity to be “Documentation Lead” (in addition to continuing dev work.)

Six months into her new career, Lisa is clearly fulfilled.  She recounts, “Before I started at Commerce Guys, I was worried about whether I could really handle a real, professional job (working for someone other than my family) while also being a stay-at-home mom.  But Commerce Guys has been a perfect fit in that respect. Many of my coworkers also have young children - everybody at Commerce Guys has been very gracious and understanding about my time.”

In addition to her documentation responsibilities, Lisa is currently doing site building, writing custom code and site administration. She also works on Drupal Commerce and related contrib module issues. “I write patches, including automated test code. Someone from the team reviews my code and gives me helpful feedback, which is also a really great way to learn and improve my coding skills, with the bonus that I’m directly contributing to the Drupal community,” she explains.

“The best part about my new career is that I have a “career.” For years, I’ve had an ambiguously defined job at my family’s company. I didn’t report to anybody, and nobody reported to me; I just “fixed” lots of random problems...I had to invent my own job title. So being able to say now that, “I’m a web developer” is pretty awesome!  

She also loves being part of a team, she explains “After so many years of working independently, it’s great to have job that involves a lot of collaboration, especially when the people I work with are so talented. And being part of the Commerce Guys, an organization that strives to make an impact with the software it creates, I have a sense of greater purpose.”

Even with all of her success, she highlights that she is still learning.  “In DCO, Mike talked about how he’s continually working to improve his own skills and how that’s something you need to enjoy doing to succeed as a web developer. I’m finding that to certainly be true for me. It’s just a really good feeling to be able to look back a month or 6 months and see how much I’ve learned and improved since then,” she explains.

Visit our web site to learn more about Drupal Career Online, attend an upcoming Taste of Drupal free mini webinar, and check out our career resources for information on web developer and Drupal-specific careers. 

Brian Osborne: Adding MySQL UTF8MB4 support to hundreds of Drupal 7 multi-sites

July 22, 2018 - 04:45

Unicode characters encoded using UTF8 can technically use 1 to 4 bytes to represent a single character. However, older versions of MySQL only provided support for storing UTF8 encoded characters that used 1 to 3 bytes. This was enough to cover the most commonly used characters, but is not suitable for applications that accept user input where any character can be submitted (like emojis, which use 4 bytes). Newer versions of MySQL provide a character encoding called utf8mb4 to fix this issue.

Zhilevan Blog: Drupal Entity cheat sheep

July 21, 2018 - 10:37
As I've explained Short trip on Entity API in Drupal 8  Entity is the most important thing in Drupal 8, Almost, everything is Entity. So for a Drupal developer, it should be good to have a cheat sheet of Entity API instead of googling every time he/she need something, and of course, after a while, they saved in the long-term memory of Developer. Let's jump into summarized Drupal 8 Entity API.

Ashday's Digital Ecosystem and Development Tips: Workflow Management with Drupal 8

July 21, 2018 - 02:33

Did you know that setting up a content workflow is included in Drupal 8 core? It can be easily set up by simply turning on the Workflow and Content Moderation modules. The Workflow module gives you the ability to define a workflow and the Content Moderation module sets up a simple workflow for drafts and the ability to create more content moderation workflows.

OPTASY: 10 Essential Modules to Start Building Your Drupal Site from Scratch: Toolkit Must-Haves

July 20, 2018 - 21:28
10 Essential Modules to Start Building Your Drupal Site from Scratch: Toolkit Must-Haves radu.simileanu Fri, 07/20/2018 - 14:28

So, you've installed your version of Drupal and you're now ready to actually start building your website. What essential tools should you keep close at hand, as a site builder? Which are those both flexible and powerful must-have modules to start building your Drupal site from scratch?

The ones guaranteeing you a website that:
 

  1. it integrates easily with all the most popular third-party services and apps
  2. is interactive and visually-appealing, irrespective of the user's device
  3. is a safe place for your users to hang on, interact with, shop on, network on...
  4. is conveniently easy for content managers and admins to handle
     

Luckily, there are plenty of modules, themes and plugins to overload your toolbox with:

Specbee: Why will Migrating to Drupal 8 be the most brilliant decision you have ever made.

July 20, 2018 - 20:08

Change can be hard and terrifying, especially at its inception. Yet, a change is what allows you to grow, evolve and progress.

I know it can get painful to take a decision as big as a migration of your Drupal 7 or 6 content management system – the one that you knew and have loved, but once done, you will know you have made the most brilliant decision, ever! Don’t just take my word for it, get hold of Drupal 8’ers (yeah, it can be a term!) and ask them. As you read on, you will know how Drupal 8 migration can play a key role in the success of your business.

It has been a while, about three years now, since Drupal 8 has made its entry into the field. The best of the Drupal community toiled for 4 years to produce this masterpiece of a CMS and finally announced its arrival in November 2015. Since then, more than 150,000 websites have migrated to Drupal 8, only to find a higher performing, robust and a more flexible solution. If you’re not ready to take the plunge yet, maybe these reasons will help you dive in.

OpenSense Labs: Run to Glory: The Drupal Effect on High Performance Websites

July 20, 2018 - 18:06
Run to Glory: The Drupal Effect on High Performance Websites Shankar Fri, 07/20/2018 - 16:36

Usain Bolt, in his last appearance at the World Track and Field Championships in 2017, stood third by a narrow defeat in the 100m race leaving behind a yawning gulf. Bolt finished the race just a hundredth of a second later than his fellow competitors.

Every (nano)second counts!


Such is the importance of speed that even a three-time Olympic gold medallist, Usain Bolt, had to bear the brunt of those nanoseconds. Someone might ask “How do I get started learning about web performance?

Visualise that it is the Mega Book Sale Day and the bookworms are thronging the best performing online stores that are selling the books of renowned authors. Coping with such a colossal turn-up, a site with much faster page load speed would be preferred over the ones that are a bit sluggish. Drupal offers a superb platform for an effective website performance optimisation thereby making it faster and user-friendly.

The Significance of Website Performance Optimisation

Web performance optimisation involves monitoring the performance of web application analysing and assessing it, and identifying the best practices to improve it.

Web applications are a combination of server-side and client-side code. To improve the web performance, both the sides need to be optimised.

The client-side optimisation relates to the initial page load time, JavaScript that runs in the browser, downloading all of the resources etc. that are seen in the web browser.

The server-side optimisation relates to database queries and other application dependencies to check how long it takes to run on the server for executing requests.

Performance optimisation is significant because of the following factors:

User retention

BBC found that they are losing out of 10% of users for every extra second their website took to load. Also, DoubleClick by Google found that if the web page took more than 3 seconds to load, 53% of mobile site visitors tend to abandon the page.

 

We all strive to make our users engage in a meaningful interaction with what we have built for the web.

So, if it is an online store, you would like to see a prospective audience turning into buyers. Or if it is a social networking web application, you would want your online visitors to get ensconced in an arresting interaction with one another. High performing sites play a vital role in engaging and retaining users.

An increase in user retention by 5% can result in increased profits by up to 95%.

It costs 5 to 25 times more to attract new customers. So, even a 5% enhancement in customer retention can lead to increased profits of 25%-95%.

By redesigning their web pages, Pinterest combated a 40% reduction in perceived wait times and witnessed a 15% increase in their search engine traffic and sign-ups.

COOK, a provider of high-quality frozen meals, was able to address the average page load time and cut it down by 850 milliseconds which resulted in 7% in conversions, 10% increase in pages per session and 7% decrease in bounce rate.

Improved Conversions

User retention ultimately leads to better conversion rates. Slow sites can have huge repercussions on the business revenues. Better performance of sites can be highly profitable to shore up revenues.

Source: Hubspot

According to 2016 Q2 Mobile Insights Report by Mobify, 1.11% increase in session-based conversion was seen for every 100ms decrease in homepage load speed. Moreover, a 1.55% increase in session-based conversion was noticed for every 100ms decrease in checkout page load time. The outcome was an increase in the average annual revenue by approximately $530,000.

Also, AutoAnything revved up their sales by 12-13% after decreasing their page load time by half.

User experience

When sites ship tons of code, underwhelming performance persists as the browsers chew through megabytes of it on snail-paced networks. 

Source: Impactbnd

Even the devices with limited processing power and memory can find it hard to cope up with the modest amount of unoptimised code. With poor performance taking centre stage, application responsiveness and availability diminishes.

Better optimised code lead to high functioning and better-performing sites which in return alleviate the digital user experience.

Strategising the web performance

Formulation of strategies to improve web performance can be done in two ways:

Bottom-up strategy

Also known as performance-by-design, the bottom-up strategy is the preferred approach to integrate performance as a core development principle. In this strategy, the performance optimisation principles are framed, applied and maintained. This is done right from the application design phase. 

The key stages that are involved in this approach are stated below:

  • Performance principles are laid out.
  • The key pages/transactions are identified, optimised accordingly, and then performance principles are executed.
  • Performance SLAs (Service Level Agreement) are monitored and maintained.

Here's a chart by Infosys which explains it best: 

Key stages involved in bottom-up strategyTop-down strategy

If an existing application needs to be optimised for performance, top-down strategy comes into play. This is a preferred option only when the legacy applications are being optimised for high performance. Also, this is not cost effective and the optimisation options are limited.

Steps involved in this strategy are as follows:

  1. Factors that are contributing to the page performance are assessed using tools like PageSpeed Insights, WebPageTest etc.
  2. Activities that would lead to maximum performance improvements are optimised.
  3. Other optimisations with subsequent releases are iteratively implemented.

In addition to these strategies, one must consider an important methodology called ‘Performance Budgeting’. It means setting a performance threshold that you aim to stay within. You can safeguard your site speed and detect any regression in the performance by setting up a performance budget to ensure continual eye on performance.

This is how we do it!

Expected load time and Google page speed score, as shown below, is the core of our perpetual and iterative development process.

The above chart shows that, while applying performance budgeting methodology, we take note of:

  1. Average load time of 2 seconds or less
  2. Defined maximum limit on page size and number of HTTP requests
  3. Verification of all server site tuning for an efficient and responsive site
  4. Google page speed performance grade of above 90
  5. Implementing performance optimisation
How to Speed up My Drupal Website Performance?

How to speed up my Drupal website performance? Drupal is loaded with an enormous amount of features which, when implemented smartly, can lead to superfast page loads. There are several techniques to make your website faster by leveraging the amazing features of Drupal.

Keeping your site and modules updated

Outmoded modules can deter your efforts in speeding up your website. Thus, it is important to update every module enabled on your Drupal site.

Uninstalling unused modules

Like those outdated modules, it is significant to keep a tab on least used or no longer used modules. The number of Drupal modules installed on the site is directly proportional to the time taken for code execution which affects page load time. Uninstalling unwanted modules can alleviate execution time.

Moreover disabling the modules also adds to the execution time of the code. So, a complete removal by uninstalling the unused modules can speed up the Drupal site.

Optimising Cache

Optimisation of native cache system ensures that all the web page components are stored in an easily accessible location after a user visits your site for the very time. So, whenever the user visits your site again, the page elements are loaded from the cache which leads to increased page load speed.

Drupal has the provision of advanced caching with a great set of modules:

  • Internal Page Cache module helps in caching the web pages for anonymous users to increase the speed for subsequent users.
     
  • Dynamic Page Cache module caches web pages for the anonymous and authenticated users and is recommended for the websites of all screen sizes.
     
  • BigPipe module allows your users to quickly see the unchanged, cacheable page elements while the personalised content is exhibited next. This technology was inspired by Facebook. Drupal 8’s much improved render pipeline and render API is of huge help.
     
  • Redis module helps in integrating Drupal with Redis key-value store thereby providing a robust cache system for static pages.
     
  • Varnish module lets you integrate Drupal sites with an advanced and fast reverse-proxy system - Varnish cache -  to serve static files and unknown page-views quicker and at high volumes.
Optimising database

Website coding is not the sole thing that can be optimised. Optimising database by regularly cleaning up the data and removing the unwanted piece of information.

Memcache API and Integration module, help in the integration of Drupal and Memcached. It stores your data in active memory for a limited period of time thereby making it faster to access. 

So, instead of making queries to the database constantly, the information is readily available. Such a system also works on the shared web hosting plans.

Incorporating a Content Delivery Network (CDN)

Components like CSS, JavaScript and media are hosted by CDN and served to the online visitors from the nearest location. This can help in mitigating the page load time by rapidly delivering web page components.

Drupal module, CDN, helps in the integration of Content Delivery Network for Drupal websites. It changes the file URLs so that files like CSS, JavaScripts, images, videos, and fonts are downloaded from the CDN instead of your web server.

Optimising bandwidth

Aggregating all CSS and JavaScript files to make them load together is what bandwidth optimisation refers to. Such a parallel processing ensures that all the page elements can be seen by the users almost immediately.

Optimising images

Drupal 8 core is loaded with image optimisation feature to set the compression ratio of the images and fine-tune the page performance.

Moreover, the size of the images for screen sizes of different devices can be optimised in Drupal 8 to enhance the page load speed.

Handling 404 errors

Whenever something on the website breaks to cause a 404 error, it can lead to sluggishness. For instance, a failed image can damage the performance of the site. Drupal 8 provides a module called Fast 404 which utilises the resources better and whitelists files and verifies pathways of problem.

Managing the use of CSS and JavaScript

CSS and JavaScript provide wonderful methods for customisation and flexibility. But, too much of good things can be troublesome for your websites. Avoiding excessive use of CSS files and JavaScript use and keeping the code to a minimum can improve performance.

Advanced CSS/JS Aggregation, Drupal module, can help in keeping a tab of your front-end performance by aggregating CSS and JavaScript files to improve speed.

Using lazy loading

Lazy or on-demand loading is a perfect way to optimise your site’s performance. In this method, you split your code at logical breakpoints and then load it once the user has done something that requires a new block of code.

Basically, in traditional websites, all the images and content are preloaded into the web browser when someone accesses the site. Lazy loading loads these elements as soon as a user scrolls to view a content.

Blazy, Drupal module, provides the functionalities of lazy loading and multi-serving the images to save bandwidth and server requests.

Better web hosting

It is of consummate importance that, while implementing every possible tips and trick and utilising the Drupal’s amazing features, you chose the best web hosting provider that will decide your site’s ultimate speed, stability and security.

Case Study

The Drupal website of the Farm Journal’s MILK was optimised for high performance and better search engine rankings with a help of carefully drafted audit report by Opensense Labs.

In this section, we will focus on how we used our Drupal expertise to resolve the performance issues.

Project highlights

Previously segregated CSS and JS files cached separately which escalated the page load time. We aggregated all these files and put them in one place which assuaged the page load time.

Moreover, we used Advanced CSS/JS Aggregation Drupal module to minify CSS, JS and HTML and reduce load time.

In addition to these, we enabled Redis, used as a database, cache and message broker, so that it can be used as the backend instead of MySQL. This allowed cached items to be retrieved swiftly and improved performance.

Project outcome

On testing the performance metrics on tools like PageSpeed Insights and Pingdom, we witnessed significant improvement.

PageSpeed Insights

  • Result on handheld devices
Pre-implementation (Live Instance)

 

Post-implementation (Live Instance)

 

  • Result on Desktop
Pre-implementation (Live Instance)

 

Post-implementation (Live Instance)

 

Pingdom

Pre-implementation Pingdom Score (Live Environment)

 

Post-implementation Pingdom Score (Live Environment)

 

Conclusion

Speed can be the determining factor in the amount of time an online user spends on your website. It’s important that you remove the sluggishness from your website and inculcate betterments in its performance. Drupal 8 can help by incorporating wonderful features to make your site a high performing space.

Feel free to reach us at hello@opensenselabs.com for developing a high performing Drupal website.

blog banner blog image Performance Optimisation Web Performance Performance Budgeting Website Performance Optimisation User Retention Conversion Rate User experience Page Load Speed Page Load time Blog Type Articles Is it a good read ? On

Drop Guard: Multi User - Invite your team to Drop Guard!

July 20, 2018 - 18:00
Multi User - Invite your team to Drop Guard! We happily announce our Multi User - Invitations feature! Our users needed an option to add more team members with tailored access rights for a specific project.  So we created the “Invitations” section in our menu bar on the left. By entering this page, you will be able to invite other team members or view the invitation for yourself. You can assign specific projects to a team member, be it developer, support manager or project manager; as well as you can give your customer read access to the customer’s project without exposing your other projects. This access policy feature provides new possibilities for an open and understandable workflow with Drop Guard.  Drupal Planet Drupal announcements Business

Drop Guard: Modules overview - get detailed information about all modules

July 20, 2018 - 17:34
Modules overview - get detailed information about all modules What modules do I use? How often are they used in my project? In which projects? Which version exists? Is it the same version as on drupal.org? Might a specific module be a threat for my project(s)? These and many more questions will be answered within one click on our “Modules overview page” on the left in the menu bar. Check out this short post to learn more about our new feature! Among other reasons, this feature was requested by our users as they also want to track whether a module is quite relevant for a project or less critical within an update process. Drupal Planet Drupal features announcements

Drop Guard: We said "yes"! Our founding of App Guard GmbH

July 20, 2018 - 17:30
We said "yes"! Our founding of App Guard GmbH What happened?  We founded an independent company, including the Drop Guard service! Learn more about the App Guard GmbH journey so far in this announcement post. But first, where did we came from?  Drop Guard was built by the German Drupal company Bright Solutions in 2014, after the idea was born to optimize the internal update process as much as possible - no more wasted time on updates, no fear of Drupalgeddon, no annoying update tasks. 
The platform service was optimized and adapted continuously besides other projects of the company, until Manuel Pistner, CEO of Bright Solutions, decided to form a team for this project, that already counted important customers. 
Drupal Planet Drupal Business announcements

Appnovation Technologies: Expert Corner: Workspace Upgrade Path

July 20, 2018 - 14:00
Expert Corner: Workspace Upgrade Path Millwood's Musings We've taken some time recently to discuss how we're going to handle the upgrade from the Workspace contrib module to the Workspace core module, once it's released. In our setup we have around 20 sites, each with 4 (or more) environments, all with Workspace installed, syncing content between each environments (and sometimes b...

Agiledrop.com Blog: AGILEDROP: Our blog posts from June

July 20, 2018 - 07:38
You have already seen what Drupal blogs were trending in the previous month, and now it is time to look at all our blog post we wrote. Here are the blog topics we covered in June.   The first blog post was Drupal and the Internet of Things. Unless you’ve been living under the rock these past few years, you might have heard of the term ‘The Internet of Things’. If you’ve always wondered what the Internet of Things is and you know what Drupal is, you should read this blog post.   The second was an Introduction to Drupal Commerce. Drupal and Commerce. These are two words that aren’t usually… READ MORE

Drupal blog: How Drupal continues to evolve towards an API-first platform

July 20, 2018 - 02:10

It's been 12 months since my last progress report on Drupal core's API-first initiative. Over the past year, we've made a lot of important progress, so I wanted to provide another update.

Two and a half years ago, we shipped Drupal 8.0 with a built-in REST API. It marked the start of Drupal's evolution to an API-first platform. Since then, each of the five new releases of Drupal 8 introduced significant web service API improvements.

While I was an early advocate for adding web services to Drupal 8 five years ago, I'm even more certain about it today. Important market trends endorse this strategy, including integration with other technology solutions, the proliferation of new devices and digital channels, the growing adoption of JavaScript frameworks, and more.

In fact, I believe that this functionality is so crucial to the success of Drupal, that for several years now, Acquia has sponsored one or more full-time software developers to contribute to Drupal's web service APIs, in addition to funding different community contributors. Today, two Acquia developers work on Drupal web service APIs full time.

Drupal core's REST API

While Drupal 8.0 shipped with a basic REST API, the community has worked hard to improve its capabilities, robustness and test coverage. Drupal 8.5 shipped 5 months ago and included new REST API features and significant improvements. Drupal 8.6 will ship in September with a new batch of improvements.

One Drupal 8.6 improvement is the move of the API-first code to the individual modules, instead of the REST module providing it on their behalf. This might not seem like a significant change, but it is. In the long term, all Drupal modules should ship with web service APIs rather than depending on a central API module to provide their APIs — that forces them to consider the impact on REST API clients when making changes.

Another improvement we've made to the REST API in Drupal 8.6 is support for file uploads. If you want to understand how much thought and care went into REST support for file uploads, check out Wim Leers' blog post: API-first Drupal: file uploads!. It's hard work to make file uploads secure, support large files, optimize for performance, and provide a good developer experience.

JSON API

Adopting the JSON API module into core is important because JSON API is increasingly common in the JavaScript community.

We had originally planned to add JSON API to Drupal 8.3, which didn't happen. When that plan was originally conceived, we were only beginning to discover the extent to which Drupal's Routing, Entity, Field and Typed Data subsystems were insufficiently prepared for an API-first world. It's taken until the end of 2017 to prepare and solidify those foundational subsystems.

The same shortcomings that prevented the REST API to mature also manifested themselves in JSON API, GraphQL and other API-first modules. Properly solving them at the root rather than adding workarounds takes time. However, this approach will make for a stronger API-first ecosystem and increasingly faster progress!

Despite the delay, the JSON API team has been making incredible strides. In just the last six months, they have released 15 versions of their module. They have delivered improvements at a breathtaking pace, including comprehensive test coverage, better compliance with the JSON API specification, and numerous stability improvements.

The Drupal community has been eager for these improvements, and the usage of the JSON API module has grown 50% in the first half of 2018. The fact that module usage has increased while the total number of open issues has gone down is proof that the JSON API module has become stable and mature.

As excited as I am about this growth in adoption, the rapid pace of development, and the maturity of the JSON API module, we have decided not to add JSON API as an experimental module to Drupal 8.6. Instead, we plan to commit it to Drupal core early in the Drupal 8.7 development cycle and ship it as stable in Drupal 8.7.

GraphQL

For more than two years I've advocated that we consider adding GraphQL to Drupal core.

While core committers and core contributors haven't made GraphQL a priority yet, a lot of great progress has been made on the contributed GraphQL module, which has been getting closer to its first stable release. Despite not having a stable release, its adoption has grown an impressive 200% in the first six months of 2018 (though its usage is still measured in the hundreds of sites rather than thousands).

I'm also excited that the GraphQL specification has finally seen a new edition that is no longer encumbered by licensing concerns. This is great news for the Open Source community, and can only benefit GraphQL's adoption.

Admittedly, I don't know yet if the GraphQL module maintainers are on board with my recommendation to add GraphQL to core. We purposely postponed these conversations until we stabilized the REST API and added JSON API support. I'd still love to see the GraphQL module added to a future release of Drupal 8. Regardless of what we decide, GraphQL is an important component to an API-first Drupal, and I'm excited about its progress.

OAuth 2.0

A web services API update would not be complete without touching on the topic of authentication. Last year, I explained how the OAuth 2.0 module would be another logical addition to Drupal core.

Since then, the OAuth 2.0 module was revised to exclude its own OAuth 2.0 implementation, and to adopt The PHP League's OAuth 2.0 Server instead. That implementation is widely used, with over 5 million installs. Instead of having a separate Drupal-specific implementation that we have to maintain, we can leverage a de facto standard implementation maintained by others.

API-first ecosystem

While I've personally been most focused on the REST API and JSON API work, with GraphQL a close second, it's also encouraging to see that many other API-first modules are being developed:

  • OpenAPI, for standards-based API documentation, now at beta 1
  • JSON API Extras, for shaping JSON API to your site's specific needs (aliasing fields, removing fields, etc)
  • JSON-RPC, for help with executing common Drupal site administration actions, for example clearing the cache
  • … and many more
Conclusion

Hopefully, you are as excited for the upcoming release of Drupal 8.6 as I am, and all of the web service improvements that it will bring. I am very thankful for all of the contributions that have been made in our continued efforts to make Drupal API-first, and for the incredible momentum these projects and initiatives have achieved.

Special thanks to Wim Leers (Acquia) and Gabe Sullice (Acquia) for contributions to this blog post and to Mark Winberry (Acquia) and Jeff Beeman (Acquia) for their feedback during the writing process.

Lullabot: Introducing Contenta JS

July 19, 2018 - 22:37

Though it seems like yesterday, Contenta CMS got the first stable release more than a year ago. In the meantime, the Contenta CMS team started using Media in core; improved Open API support; provided several fixes for the Schemata module; wrote and introduced JSON RPC; and made plans to transition to the Umami content model from Drupal core. A lot has happened behind the scenes. I’m inspired to hear of each new instance where Contenta CMS is being used both out-of-the-box and as part of a custom decoupled Drupal architecture. Both use cases were primary goals for the project. In many cases, Drupal, and hence Contenta CMS, is only part of the back-end. Most decoupled projects require a nodejs back-end proxy to sit between the various front-end consumers and Drupal. That is why we started working on a nodejs starter kit for your decoupled Drupal projects. We call this Contenta JS.

Until now, each agency had their own nodejs back-end template that they used and evolved in every project. There has not been much collaboration in this space. Contenta JS is meant to bring consistency and collaboration—a set of common practices so agencies can focus on creating the best software possible with nodejs, just like we do with Drupal. Through this collaboration, we will be able to get features that we need in every project, for free. Today Contenta JS already comes with many of these features:

  • Automatic integration with the API exposed by your Contenta CMS install. Just provide the URL of the site and everything is taken care of for you.
    • JSON API integration.
    • JSON RPC integration.
    • Subrequests integration.
    • Open API integration.
  • Multi-threaded nodejs server that takes advantage of all the cores of the server’s CPU.
  • A Subrequests server for request aggregation. Learn more about subrequests.
  • A Redis integration via the optional @contentacms/redis.
  • Type safe development environment using Flow.
  • Configurable CORS.
undefined

Watch the introduction video for Contenta JS (6 minutes).

Videos require iframe browser support.

Combining the community’s efforts, we can come up with new modules that do things like React server-side rendering with one command, or a Drupal API customizer, or aggregate multiple services in a pluggable way, etc.

Join the #contenta Slack channel if this is something you are passionate about and want to collaborate on it. You can also create an issue (or a PR!) in the GitHub project. Together, we can make a holistic decoupled Drupal backend from start to end.

Originally published at humanbits.es on July 16, 2018.

Dries Buytaert: How Drupal continues to evolve towards an API-first platform

July 19, 2018 - 18:06

It's been 12 months since my last progress report on Drupal core's API-first initiative. Over the past year, we've made a lot of important progress, so I wanted to provide another update.

Two and a half years ago, we shipped Drupal 8.0 with a built-in REST API. It marked the start of Drupal's evolution to an API-first platform. Since then, each of the five new releases of Drupal 8 introduced significant web service API improvements.

While I was an early advocate for adding web services to Drupal 8 five years ago, I'm even more certain about it today. Important market trends endorse this strategy, including integration with other technology solutions, the proliferation of new devices and digital channels, the growing adoption of JavaScript frameworks, and more.

In fact, I believe that this functionality is so crucial to the success of Drupal, that for several years now, Acquia has sponsored one or more full-time software developers to contribute to Drupal's web service APIs, in addition to funding different community contributors. Today, two Acquia developers work on Drupal web service APIs full time.

Drupal core's REST API

While Drupal 8.0 shipped with a basic REST API, the community has worked hard to improve its capabilities, robustness and test coverage. Drupal 8.5 shipped 5 months ago and included new REST API features and significant improvements. Drupal 8.6 will ship in September with a new batch of improvements.

One Drupal 8.6 improvement is the move of the API-first code to the individual modules, instead of the REST module providing it on their behalf. This might not seem like a significant change, but it is. In the long term, all Drupal modules should ship with web service APIs rather than depending on a central API module to provide their APIs — that forces them to consider the impact on REST API clients when making changes.

Another improvement we've made to the REST API in Drupal 8.6 is support for file uploads. If you want to understand how much thought and care went into REST support for file uploads, check out Wim Leers' blog post: API-first Drupal: file uploads!. It's hard work to make file uploads secure, support large files, optimize for performance, and provide a good developer experience.

JSON API

Adopting the JSON API module into core is important because JSON API is increasingly common in the JavaScript community.

We had originally planned to add JSON API to Drupal 8.3, which didn't happen. When that plan was originally conceived, we were only beginning to discover the extent to which Drupal's Routing, Entity, Field and Typed Data subsystems were insufficiently prepared for an API-first world. It's taken until the end of 2017 to prepare and solidify those foundational subsystems.

The same shortcomings that prevented the REST API to mature also manifested themselves in JSON API, GraphQL and other API-first modules. Properly solving them at the root rather than adding workarounds takes time. However, this approach will make for a stronger API-first ecosystem and increasingly faster progress!

Despite the delay, the JSON API team has been making incredible strides. In just the last six months, they have released 15 versions of their module. They have delivered improvements at a breathtaking pace, including comprehensive test coverage, better compliance with the JSON API specification, and numerous stability improvements.

The Drupal community has been eager for these improvements, and the usage of the JSON API module has grown 50% in the first half of 2018. The fact that module usage has increased while the total number of open issues has gone down is proof that the JSON API module has become stable and mature.

As excited as I am about this growth in adoption, the rapid pace of development, and the maturity of the JSON API module, we have decided not to add JSON API as an experimental module to Drupal 8.6. Instead, we plan to commit it to Drupal core early in the Drupal 8.7 development cycle and ship it as stable in Drupal 8.7.

GraphQL

For more than two years I've advocated that we consider adding GraphQL to Drupal core.

While core committers and core contributors haven't made GraphQL a priority yet, a lot of great progress has been made on the contributed GraphQL module, which has been getting closer to its first stable release. Despite not having a stable release, its adoption has grown an impressive 200% in the first six months of 2018 (though its usage is still measured in the hundreds of sites rather than thousands).

I'm also excited that the GraphQL specification has finally seen a new edition that is no longer encumbered by licensing concerns. This is great news for the Open Source community, and can only benefit GraphQL's adoption.

Admittedly, I don't know yet if the GraphQL module maintainers are on board with my recommendation to add GraphQL to core. We purposely postponed these conversations until we stabilized the REST API and added JSON API support. I'd still love to see the GraphQL module added to a future release of Drupal 8. Regardless of what we decide, GraphQL is an important component to an API-first Drupal, and I'm excited about its progress.

OAuth 2.0

A web services API update would not be complete without touching on the topic of authentication. Last year, I explained how the OAuth 2.0 module would be another logical addition to Drupal core.

Since then, the OAuth 2.0 module was revised to exclude its own OAuth 2.0 implementation, and to adopt The PHP League's OAuth 2.0 Server instead. That implementation is widely used, with over 5 million installs. Instead of having a separate Drupal-specific implementation that we have to maintain, we can leverage a de facto standard implementation maintained by others.

API-first ecosystem

While I've personally been most focused on the REST API and JSON API work, with GraphQL a close second, it's also encouraging to see that many other API-first modules are being developed:

  • OpenAPI, for standards-based API documentation, now at beta 1
  • JSON API Extras, for shaping JSON API to your site's specific needs (aliasing fields, removing fields, etc)
  • JSON-RPC, for help with executing common Drupal site administration actions, for example clearing the cache
  • … and many more
Conclusion

Hopefully, you are as excited for the upcoming release of Drupal 8.6 as I am, and all of the web service improvements that it will bring. I am very thankful for all of the contributions that have been made in our continued efforts to make Drupal API-first, and for the incredible momentum these projects and initiatives have achieved.

Special thanks to Wim Leers (Acquia) and Gabe Sullice (Acquia) for contributions to this blog post and to Mark Winberry (Acquia) and Jeff Beeman (Acquia) for their feedback during the writing process.

Amazee Labs: Recap Pt.2: Drupal Dev Days Lisbon 2018

July 19, 2018 - 15:49
Recap Pt.2: Drupal Dev Days Lisbon 2018 Vijay Dubb Thu, 07/19/2018 - 10:49

Day three Today, my friends, we’re going to Change the World...

Rachel Lawson presented day three’s keynote. It was a really good session as it showed how everyone who attended, has contributed in some way to Drupal, as well as how “Drupal changes the world”. It started by “Meeting Sami”, a 10-year-old boy from Mosul, Iraq, who was captured (along with his brother) by ISIS. He was held captive for three and a half years, after which he was sent to a refugee camp. While in the camp, it was the Warchild charity that provided support, activities, education, and most importantly, ended up reuniting Sami and his brother with his family.

Now, you’re probably wondering what any of this has to do with Drupal? I know, I also did, but it became apparent that Warchild recently switched to using Drupal, making use of several modules. Rachel asked the audience to stand up, if they had made a contribution to modules used by Warchild, including paragraph and media. Almost half the room did, but I didn’t. She then went on to ask about other contributions that people in the audience had made. This time, it related to anything from documentation, to hosting meetups, and even attending camps.

By the end of the session, everyone in the room was standing, including me. It felt good to know that I had contributed in some way. During the question and answer session, the issue of becoming a member of the Drupal Association was raised, as well as the importance of doing so. Membership empowers the Drupal community to be able to do more things that are requested by users, which in turn makes a transformational difference.


“If you don’t push yourself and just go with things, then you’ll never get the amazing things.” - Rachel Lawson

Watch session

Drupal 9: Decoupled by design?

Both Preston So and Lauri Eskola gave a session on decoupling Drupal, as well as the direction in which it is going. Anyone who has been working with Drupal should know that the idea of decoupling Drupal has been around for some time. Among the reasons for doing this, is that developers are free to choose any technology they want for the frontend. It’s clear that Drupal 9 will continue to use Twig, but with support client-side rendering with an API first approach. Another point was that editors prefer the non-decoupled approach, which raises the questions, “Who is requesting this? Is it the clients or developers?”

Watch session

The future of Drupal in numbers

One of the most interesting and debatable sessions I attended was presented by Nemanja Drobnjak. Similar to the first keynote session, this session was about comparing Drupal from 18 months ago, with its current state. This presentation could have been perceived as very pessimistic, especially when seeing the numbers compared to other major CMS’s like WordPress. He also referred to the compare PHP frameworks blog.

All the data in the presentation had clearly been researched, so it was rather shocking to hear Nemanja predict that Drupal could go out of use within 15 years if the current trends continue. A few suggestions to prevent this were made. From improving documentation to Drupal directly targeting the education sector. This session drew a lot of questions. Firstly, “Why compare Drupal to Wordpress?”. I agree completely. It's about who is using it and benefiting from it. It reminded me of the blog post I read in which Vue.js passed React.js in the number of people who have 'starred' it on Github. Basically, it doesn’t mean that React is dying and Vue is now the norm. Both have different purposes and uses, just like, for example, Drupal and Wordpress.

Another question raised was, with Decoupled sites becoming more popular, “Can a crawler detect the backend?”. Maybe the data wasn't 100% correct.

Day four An update on Drupal 8.6

The day four keynote session was presented by Gábor Hojtsy, who gave a short speech about the upcoming Drupal update. He then moved onto how we could help with several initiatives, both at Drupal Dev Days and in general, including helping with Admin UI and documentation.

Watch session

Contribute, contribute, contribute! Yes!!!

Having put my Windows issues on the back burner, it was time to get the admin UI demo to work. I went over to the Admin UI innovation table where I met Lauri Eskola, Daniel Wehner, and Volker Killesreiter, all of whom helped me try to get the site working. Turns out it was because of an outdated module, so I updated the module, created a pull request and boom, my first ever contribution to Drupal was made. I then spent the rest of the day looking at the code and getting to grips with how it worked.

I was then assigned my first issue, which took some time to complete as I was still getting used to the code base. But nonetheless, I was able to fix the issue and contribute some more to the initiative. I really like how everything is broken into small issues, meaning that a single person isn't completing a large issue by themselves. It is clear that Drupal can only be maintained if people contribute back to the project and/or community.

It is never too late to contribute! Even though Drupal has been around for almost 20 years, it still relies heavily on people to contribute and come up with innovative ideas. If you are looking to contribute, but don’t know how I can suggest you take a look at the Drupal development and strategic initiatives.

Having heard the word “contribute” several times, it would have been great to hear someone repeatedly say the word, as Steve Balmer did - "developers".

Day five Quo Vadis, Free Software?

The final keynote session, by Rui Seabra, was about free software. He shared thoughts on how we should have the freedom to run software as we wish, make changes to the software to make it fit for your purpose, and distribute both the original and modified version. It was clear that as users of so-called “free software”, we have a misconception about what we think is free. Rui also went on to talk about how we can help protect the internet, especially from the EU’s copyright directive. I did find the joke about the “[fill in] sucks” reference to Windows, very amusing.

Free software is everywhere, and people are forgetting that the freedom of sharing is a quintessential part of the evolution and moving forward together. “If we didn't share we wouldn't have knowledge, technology, and hardware we use today.” - Rui Seabra

Watch session

Progressive decoupling - the why and the how

The final session I attended was my colleague Blazej Owczarczyk’s talk, where he explained everything about progressive decoupling. One of his key points was that you should only decouple where it makes sense. Blazej showed some cool and interesting new features available in EcmaScript 6/7. We also learnt about the new await/async function in EcmaScript 8, which I found to very cool and cannot wait to start using. It was then time to move on and discuss how we could use these new features in our current Drupal sites.

By installing dependencies, defining a dynamic library and running a web server, you are able to create a decoupled environment for any technology of your choice. Two things I really liked about the session was 1) Blazej asking the audience to tweet a thanks to our very own Philipp Melab for the GraphQL module, and 2) the bonus question, which resulted in more questions from the audience. Way to go Blazej, we’re very proud of you here at Amazee Labs.


 

Watch session

The rest of the day I spent contributing more to the Admin UI initiative.

Many thanks

I would like to take this opportunity to thank:

Ruben Teijeiro for being so helpful throughout the week and introducing me to several people.

Christophe Jossart for not only helping me with my installation issue but for being great company and showing me around Lisbon.

Lauri Eskola, Daniel Wehner, and Volker Killesreiter for the introduction to Admin UI, which helped me find the issue as to why I couldn’t set up the site on my machine and finally allowing me to help contribute to the great initiative.

Finally, to all the sponsors, speakers, organiser, and volunteers, a huge thank you for a spectacular week, great evening social events, and for making my first ever Dev Days an amazing one. I hope to see you all at the next one.

Links