May 01 2019
May 01

At this year’s DrupalCon, held earlier in April in Seattle, Drupal founder Dries Buytaert gave attendees a preview of the newest version of Drupal: 8.7. Now, the wait is over. Drupal 8.7 is launching today, May 1, adding a new suite of features and fixes that will improve the Drupal experience for everyone with an up-to-date platform.

drupal 8.7 was released on may 1

In his keynote, or “Driesnote,” Dries laid out what made this new release so special. Speaking to the Drupal community at large, Dries shared that the Drupal team had several core objectives when developing Drupal 8.7:

  • Make Drupal easy for content creators and site builders
  • Make Drupal easy to evaluate and adopt
  • Keep Drupal impactful and relevant
  • Reduce total cost of ownership for developers and site owners

Each one of these goals represented a major challenge, but the newest version has delivered a variety of updates that each make Drupal a more robust platform.

Empowering content creators

One of the biggest features in Drupal 8.7 is the newly stable Layout Builder tool. The product of the efforts of 123 contributors and 68 supporting organizations, Layout Builder makes designing pages more user-friendly. As the name implies, the Layout Builder tool enables editors to manually adjust the design and format of a page. With this tool, editors can make changes to the layout without having to involve developers every time. Dries displayed a demo of the Layout Builder tool during the Driesnote, which can be found below.

Along with layout builder, the other major content improvement ushered in by Drupal 8.7 is the updated media module. As of this most recent update, reusable media, images, video and drag-and-drop features for the media module are all stable, with the media library currently in the “experimental” state. Combined with layout builder, these updates make Drupal 8.7 a great update for content editors.

Out of the box functionality

While Drupal 8.7 certainly makes life easier for editors, it doesn’t stop there. New out of the box features make Drupal easier to adopt than ever. New to the Umami theme in Drupal 8.7  are demo articles containing Spanish translations by default and improved accessibility throughout the theme, with new labels and focus styles highlighted. This helps to show Drupal 8.7’s capabilities in terms of both multilingual and accessibility right out of the box. Additionally, the “Welcome tour” feature makes it easier for agencies to demo the platform. All of these features are included with the new update automatically.

Staying relevant

To remain a driving force in the market, Drupal needs to keep up with the times. The biggest breath of fresh air Drupal 8.7 brings to the platform is the addition of the JSON:API to the core. This development extends Drupal’s “API-first” philosophy, enabling decoupled and headless solutions. If this type of buildout is what your organization needs, the Drupal 8.7 update makes developing these popular solutions much easier.

Lowered costs

Because Drupal 9 (D9) is built on the same codebase as D8, the eventual upgrade process will be much easier than a conventional website upgrade. Previously, upgrades were major undertakings that required a lot of development effort. Now, as long as a site is not using any deprecated code, upgrading to D9 will be very straightforward. A tool called drupal-check is already available to check for deprecated code, so it’s already possible to start getting a site ready for D9. In the meantime, Drupal 8.7 offers a number of new features and enhancements and is another step toward the eventual D9 upgrade..

There’s certainly plenty to enjoy with this new release, but the updates don’t stop here. With Drupal on a six-month release cycle, there will be a new version of Drupal on November 1. Drupal 8.8 promises an updated WYSIWYG editor along with a potentially updated Admin UI, an ongoing project for the Drupal team. Beyond that is D9, the latest edition of the platform.

Duo can help you make the most out of Drupal 8.7’s newest features while also planning your roadmap for upgrading. If you’re ready to see what the future of Drupal has to offer, reach out to us today.

Explore Duo

May 01 2019
May 01

Online stores with decoupled architecture have all the chances to gain more happy customers. How does this work? Let’s see in this post. The “decoupled” or “headless” architecture is an increasingly popular trend in the Drupal world — especially now that the JSON:API module is in the core. So welcome to this review of the principles of decoupled Drupal Commerce and how it helps online stores engage users.

What is decoupled Drupal Commerce?

In decoupled, or headless Drupal Commerce, the presentation layer is separated from the e-commerce backend. Fast and reactive JavaScript interfaces communicate with powerful Drupal backends via a REST API. Decoupled, or headless architecture gives developers unlimited flexibility to create enhanced shopping experiences.

Decoupled approach as a priority for Drupal Commerce

Commerce Guys, the creators of Drupal Commerce, clearly focus on JavaScript-based solutions for online stores. They have a special team engaged in this area, including lead developers Bojan Živanović and Matt Glaman.

The team keeps polishing Drupal Commerce for headless setups and improves Drupal core in this process as well. They complete the documentation, help developers with their projects, and create an ecosystem of contributed projects in the “decoupled” sphere. Among them:

Commerce Demo project

Let’s see in more detail, with examples and quotes, what benefits make decoupled Drupal Commerce deserve so much attention.

The benefits of decoupled Drupal Commerce

Super high speed

“One thing we’ve all heard about it is it's fast and reactive. You get a quicker response time and the person is more engaged. Customers have an attention problem, so they get easily distracted on a website. So the faster you can give them what they want, the more likely they are to give you their credit card.”

Nothing to add to the words of Matt Glaman, the main creator of the Commerce Cart API and the Cart Flyout modules. He shared this in his speech “The road to a headless Drupal Commerce future” at Drupal Europe 2018.

It is already a known and undoubtable fact that JavaScript front-ends are very quick. In addition, this setup does not overload Drupal, which is reflected in performance.

Matt Glaman said his demo’s product page began to load faster from 130 milliseconds to 60 milliseconds with the decoupled cart. One of the reasons was Drupal no longer had to render a form. All actions with the cart are done on the client side and do not involve the Drupal rendering system.

“The pages are so much faster now because we don’t have to be concerned about Drupal rendering a form or the cart block and all this extra data,” said the developer.

It’s nice for performance that caching can be done without Drupal. According to Matt Glaman, “your product page can be behind the Page Cache module or behind Varnish, and you never have to hit the server to render the cart form, because the JavaScript will do it for you.”

Rich and interactive features

Decoupled Drupal Commerce allows developers to enrich the shopping interfaces with interactive features. Users who enjoy the shopping are more likely to make conversions.

Among these features are:

  • push notifications
  • real-time updates for the shopping cart and all the other forms
  • real-time previews with changed product attributes (like the clothing colors)
  • the ability for the customer to change the order details without the page reloading

and much more.

For example, on the Commerce Demo project, every time a user clicks “Add to cart” or clicks on the cart icon, the cart flies out and shows the contents. The price is updated dynamically as the user changes the product quantity. We see the Commerce Cart API and the Cart Flyout in action.

Commerce Cart Flyout

On the Eldum Rétt website, the price is dynamically updated when the user selects the package size, and cart sidebar also flies out. This project uses a React native app combined with decoupled Drupal Commerce.

Dynamic cart updates in decoupled Drupal Commerce

Freedom in front-end changes

With a decoupled approach, front-end developers are free to implement experiments and changes to improve user experience and application design.

While implementing them, they do not interfere with the backend setup and do not have to worry about it at all. There is no need to edit the database and the code, or redeploy the ecommerce platform.

So, in addition to the flexibility of customizations, decoupled or headless Drupal Commerce saves your time and money. Even small changes in traditional setups would often require the editing of several layers of code.

Front-end technologies of your choice

Your headless ecommerce store can send its data to a mobile app, web app, static site, and so on. You can also enjoy omni-channel commerce with the same store data presented in many ways. Hence the large choice of front-end technologies.

You will not be restricted with what is offered by only one platform. When combined, platforms multiply their benefits.

Your decoupled Drupal Commerce setup is here

If you are interested in decoupled Drupal Commerce tailored to your business needs, contact our Drupal team. We love to create ecommerce projects and work with the latest JavaScript technologies.

So entrust us with any kind of tasks in this area — from decoupling your commerce to creating a new decoupled website from scratch.
 

May 01 2019
May 01

Drupal is known to be a complex and great CMS. However, if you are planning on starting to learn Drupal 8, you will soon notice that it is more complicated than Drupal 7 and other content management systems. Drupal is known to have a steep learning curve, which makes it more challenging to pick up and get started. In this article, I’m going to show you some great books that help you learn Drupal in a systematic, beginner-friendly way. My blog post is going to include 7 Drupal 8 books that are covering the basics and are beginner friendly, books that will challenge the skills of seasoned Drupal developers and books that are teaching specific Drupal skills. Pick your poison!

May 01 2019
May 01

Every year at DrupalCon, we aim to bring together people with a common interest who need to move a potential initiative forward or work together in other ways to help grow Drupal.

In Seattle, we brought together a room full of event organizers. This is the story of two hours locked in a room, deep in the heart of the Seattle Convention Center…

Invitees

Thomas Scola, Michael Miles, Karthik Kalimuthu, Jessica Dearie, April Sides, Aimee Decker, Aimee Degnan, Michael Hess, Kaleem Clarkson, Jesse Hofmann-Smith, Jared Stoneberg, Rick Hawkins, Michael Anello, Leslie Glynn, Dan Moriarty, Kevin Thull, Jeremy Rasmussen, Quincy Austin , Brian Gilbert, Dori Kelner, Suzanne Dergacheva, Gábor Hojtsy, Steven Hughes, Raul Solano, Owen Lansbury, Dane Rossenrode, Juan Pablo Novillo Requena, Stephanie Lüpold, Kazu Hodota, Baddy Sonja Breidert, Nick Switzer, Elli Ludwigson, Matthew Saunders, Kelly Albrecht, Narcisse Mbunzama, Shawn Duncan, Pat Gilbert, Oyekan Abiodun, Mark Casias, Darren Oh, Gregg Marshall, Anson Han, Raed Al-khurayji, Gaurav Mishra, Shadab Ashraf,, Hussain Abbas, Jordana Fung, Josef Dabernig, Tushar Thatikonda, and myself - Rachel Lawson.

If I have missed any of your names, I apologise. Please let me know and I will update. Thank you to all who attended and especially to Avi Schwab who volunteered to take notes.

Process

Some weeks before DrupalCon Seattle, I consulted with a number of people and devised a series of questions to pose to the room, to get the conversations started. I then divided the audience into groups and assigned each one of the questions, asking them to get together and prepare a five-minute “presentation” without recourse to audiovisual aids like a screen. I want to hear what they have to say, not look at fancy slides. There then followed 15 minutes of discussion including the whole room.

Once the round table began, we initially did a quick voting exercise to ensure we worked on the topics in priority order, plus some custom ordering to take into account not everyone can be in the room for the whole two hours. It is DrupalCon after all!

Topics

More topics were initially set than were discussed. We took a group decision to spend more time on each topic, so lower priority items fell off the bottom until another day.

The following represent notes taken during the day and some reflection on the general flow of the discussion.

Event Organizers as an “Official” Group?

We discussed whether we should look to form an “official” group, with a charter etc, that looks to help events coordinate and collaborate.

  • Fostering the next generation of Drupalists
  • Surfacing smaller events on Drupal.org
  • Marketing camps to students and young people
  • More case studies and paired sessions “How Disney/WWE/J&J made their website”
  • Get agencies to engage clients. Win (camp) win (agency) win (client).
  • How do we create value?
  • We already have revenue, discussed below how we might turn that into value?
  • Regional financial entities
  • But maybe higher level organization to help create them
  • Example: National Endowment for the Arts - national grants
  • Regional, local all their own organizations
  • Group representation:
  • Globally diverse
  • Diverse among camp sizes
  • Intentionally contracting to do work and solve our problems
  • Two separate things
  • Global “Just enough” organization to support events
  • Fiscal sponsorship & financial
  • Who should this organization report to?
  • Dries? DA?
  • The DA is listening now. They’re good at doing events.
  • Dries is only one Human Being
  • Fewer and fewer working groups are reporting to him
  • Global working group as CONNECTORS between groups. Some groups need very little, some need help being lifted up. How do we pool our resources together to solve event org problems?

There was certainly the will to create an official group and to put the necessary work into making it representative of the global event community. I’m highly encouraged by this and looking forward to this happening.

What can we (Dries + DA) do to help you get your event to the next level?

We wanted to understand how the Drupal Association especially could provide the right support to events.

Summary:

  • Form for organizers to fill out before and after the event
  • Drupal Association could help organize resource library for organizers
  • Events would like to have some consistent opening slides that describe and promote the Drupal Association
  • DA to promote Ticket sales
  • Events want to be able to register as Drupal Association Supporting Partners under a new level just for them.

Discussion:

  • DATA is worth its weight in gold - we all benefit by collecting data about each event in terms of numbers of attendees, sponsorship revenues, speakers, etc.
  • Data could go into standardized letter for requesting sponsorship
  • Templates for requesting sponsorships, also for saying thank you.
  • Educate potential sponsors the value of these events
  • Should a standardized CoC be required for DA support? What happens if someone doesn’t check the “We have a CoC” checkbox? Is it just required?
  • Could we enforce participation through enforcement of the trademark?
  • That might make more work for Dries in defending it
  • Put other value behind agreement
  • Could tie into CWG initiative to train CoC people
  • Create a Speaker Directory for diverse speakers
  • Incentivizing getting into the “Speaker Directory” could be a great honor
  • Add to form: where did we find the speaker?
  • Speaker Selection Panels
  • D.o profile list speaking engagements
  • Site distro for camps/starter kits/COD
  • Drupal Europe is out there
  • We have the resources in $$$, could gather resources and hire someone to do it
  • Separation of Tasks from the Drupal Association

It seems that the greatest input the Drupal Association can have right now for event management is related to data and, especially, on Drupal.org. We should look to create a plan that takes input from this discussion, Suzanne Dergacheva (https://docs.google.com/document/d/1QZppszEs_7J5P4gzXnCjHSfDoCZD0TfCDntXyGyhgzM/edit#) and Rachel Lawson’s (https://docs.google.com/document/d/1Su5spAtDg_viKsCqxcaWg9DZ-T08DNot9MAOJRUCVek ) discussion documents on what that data should be. 

We should look to represent data on Drupal.org wherever possible, rather than Google docs.

Define a mission statement for why we organize events and how to measure success

One of the key factors to success of the project is coordination across all the places people interact with it. Having a common agreed-upon description of what in-person events are attempting to achieve would help. We wanted to know what would be involved in reaching such a common understanding through a mission statement.

  • Taxonomy?
  • Set up focus group to define a common taxonomy.
  • What kind of sessions does a camp want?
  • Is the event mission-based or just regional
  • Grow the community, awareness thereof, and lead collaboration across open source communities
  • Scaling only happens when there’s demand
  • Focus on the higher-level goals will pull up the lower ones
  • We’re not doing any benefit to ourselves if we just keep talking to the same group of people
  • How do we implement the data collection?
  • Define & measure our KPI’s.
  • Cross-pollinate camp participation
  • Dashboard to improve visibility and encourage participation
  • “Help people exploit and promote drupal”
  • Improve skills
  • Improve the product
  • Connect people to resources, clients to solutions, providers to clients, etc
  • How do we measure success?
  • D.o signups for the event (groups.d.o is… not super)
  • Add Drupal Ladder status to profile pages (and track how that coincides with event attendance)
  • How do you use Drupal? (and check change over time)
  • Reporting how many people participate in contribution
  • Social media mentions
  • Connect to a tag 

A good discussion on exactly why we run events and defining what we want to achieve with them. Great to hear people saying that it is not enough to simply keep talking to the same people - part of an event’s mission should normally be attractive to people new to Drupal so we continue to grow.

The room agreed that a good mission statement for events would be “Help people exploit and promote drupal”

Focussed Output

Dries had a very powerful slide in his Driesnote that set the focus for the upcoming year, for the whole project.

 1 Improve Diversity & Inclusion in our community, 2 Start removing the use of deprecated code now, 3 Refocus on the automated upgrade problem
Slide from the Driesnote, photo by Rachel Lawson 

I was keen to walk out of the room with an agreed focus for the group and we settled on the following, in order:

  1. Let’s do what’s needed to make the group official
  2. Let’s work on the ecosystem - how do we provide things like fiscal sponsorship across events of all sizes in US?
  3. We need to start collecting data from events in a single place.

Next Steps

Sticking to the focus above, the group who attended and others will be looking into the requirements for an official group to be formed, with a charter etc. Activities here should be updated as blog posts in www.drupal.org/community/event-organizers

Lessons Learned

My own lesson out of the exercise is that everyone has a very full timetable at DrupalCon and to make the invites much earlier before the event, to give people lots of preparation time. This also needs to be more clear of the facilities available in the room!

I will also look into adding the round tables into the official program, still as invite-only events but at least people can see them more easily and plan their days.

I Want to Hear from You

I want to continue to hold round tables in the future on this and other topics of interest in the community. 

What community initiatives should we be getting people together to look at the future? Let me know in the comments!

May 01 2019
May 01

Web development has moved forward from writing websites by developing codes to a place where people can assemble the websites. And that is where the Drupal community is focusing on to advance - building assembled web experiences.

Drupal 8.7 releases today, on 1 May. It is in sync with that same roadmap (building assembled websites) providing enhanced customization, stable features, better UI and what not?

Here’s a quick and comprehensive guide for you to track what’s new in version 8.7 and how it paves the way for Drupal 9.

Drupal 8.7 Features and Updates

This is a significant update. It brings with it a stable Layout builder and Media Library, JSON API at the core, tour integration, seamless working of Content Moderation and Workspaces together, and a continued stabilized migration path.

Drupal 8.7 update retains the relevance in the emerging world of web technologies and competition. Riding on its API capabilities, new changes are aimed to be user-friendly.

Here’s a look at the host of features it brings along.

  • JSON:API at Core

    The update brings with it JSON:API at the core, marking another milestone towards making Drupal API-first. API-first means using the flexibility of Drupal to integrate it with other systems and be able to use content anywhere, display as you please.

    Content creators can, now, create their content models without having to write a single line of code.



    JSON:API module for Drupal 8 in action

    The JSON:API module is meant for creating high-performance APIs to expose Drupal data in JSON. It works by creating API endpoints and requires no configuration and the module instantly accesses all Drupal entities.

    Developers and content creators, now, can create their content models without having to write a single line of code. It not only provides a great authoring experience but also a powerful, standards-compliant, web service API to pull that content into JavaScript applications, digital kiosks, chatbots, voice assistants and more.

    This makes it easier for Drupal’s core ecosystem, of web services responsible for third-party content and application, to integrate.

  • Stable Layout Builder

    Released in 8.6 as an experimental module, Layout Builder is stabilized in Drupal 8.7 update. The module allows you to build layouts with ready-to-use multi-column layouts and Drupal blocks without the intervention of a developer.

    It is unique since it can support multiple and different use cases from templated layouts applied to dozens of pieces of structured content, to designing custom one-off pages with unstructured content.

    [embedded content]


    Drupal Layout Builder in action

    Here’s how it can be used in three different use cases:

    • Layouts for templated content: The creation of ‘layout templates’ can be used for a specific content type. Example, blog posts.
    • Customizations to templated layouts: Can customize the layout templates on a case-by-case basis. Example, to override the layout of a standardized product page.
    • Custom pages: The creation of custom landing pages which are not in sync to any particular content type or structured content. Example, a single ‘About us’ page.

      The Layout Builder is more powerful when used with Drupal's other out-of-the-box features such as revisioning, content moderation, and translations.

  • Workflow

    The workflow module enables you to create arbitrary workflows in Drupal and associate them with entities.

    The support for more revisionable properties would allow the staging of both content and associated properties

    However, taxonomy terms were not revisionable.

    The main issue with non-revisionable terms is site-wide previews of not yet published content (nodes, media items, taxonomy terms, menu links, etc.), through the Workspaces module.

    Taxonomy terms are now revisionable using the new API. This comes as part of the Entity system that helps retrieve an entity for converting the schema of a content entity type from non-revisionable/ non-translatable to revisional/translatable.

    This works well with other pre-existing data for the entity type whose schema has been changed and comes handy with content revisioning. The support for more revisionable properties would allow the staging of both content and associated properties.

    EntityDefinitionUpdateManage is now deprecated with no replacement.

    At the moment core only supports sequential revisioning, parallel revisioning support will be added in 8.8.

  • Media Library

    Shipped as an experimental module in 8.6, Media library is now stabilized and good to use.

    It provides a visually appealing interface for browsing through all the media items in your site. With the new version, multimedia properties can be added to content either by selecting from existing media or by uploading new media through bulk upload support. Once uploaded, users can remove or reorder any images ready for import.

    [embedded content]


    Media Library in Drupal 8.7

    It provides an easy way to upload several media assets in your Drupal website quickly. Let’s you add alt-text, check the images before uploading.

    Powered by Views, it allows site builders to customize the display, sorting, and filtering options.

  • Configuration Management

    The configuration management system in Drupal 8 is quite decent and allows configuration to be synced between installations of the same site in different environments. Configuration Management is part of the Configuration Management 2.0 Initiative which aims to include core support for extended workflows.

    The current workflow presumes that the configuration will be exactly the same in different environments. Developers have to edit the configuration when it is not present.

    The idea behind CM 2.0 is to the use case of sharing reusable packages of configuration among multiple sites

    The major drawback which comes as an API for both the DX and API architecture is:

    It allows modifying the sync storage as it is manipulated but since it has no concept of intent, the developer has to know which methods are called in which order of both the import and export process to correctly interact with it.

    Configuration Management 2.0 in version 8.7 allows the altering and importing the configuration. The idea is to the use case of sharing reusable packages of configuration among multiple sites is on (at least!) a fully equal footing with that of staging configuration on a single site.

    This allows the site administrator to review and safely import available configuration updates from installed modules, themes, and the install profile without overriding customizations made on the site. With 8.7 it can add the ability to select and use an existing configuration directory or storage at install time.

    Configuration Transformer API as the fundamental cornerstone has been added to bulk update configuration. It makes it easier for configuration on dev to be different from production

    New/expanded configuration management UIs for the issues (mentioned above) added to par with a new-to-Drupal site maintainer persona in mind. Experimental module for allowing environment-specific configuration has been introduced in 8.7.
    D8.7 INFOGRAPHIC (1)

And Drupal 9 readiness...

In order to give people reasonable upgrade time from Drupal 8 to Drupal 9, Drupal 9 will be released no later than a year before Drupal 8 goes end of life, that is in 2020.

Also, Drupal 9.0 is skipped, as it's intended to be only deprecated code removals, no new capabilities.

Other Important Information

Some other important information to take note of, are:

  1. Removed support for PHP 5

    Drupal 8.7 would no longer support the obsolete versions of PHP. Version 5.5 reached the end of life in 2016 and 5.6 in December 2018 meaning it no longer receives bugfixes, even for very serious bugs that (might) impact Drupal development. Moving forward Drupal encourages to use PHP V.7 or above.

    Since Drupal 8's automated tests require the PHPUnit library, continued use of obsolete version can put security at risk.

  2. End of support for Internet Explorer 9

    Due to a limit of 31 style sheets per page, Drupal dropped support for Internet Explorer 9 and 10 in 8.4. Since Drupal 8.5 and 8.6 retained a workaround to allow 32 or more stylesheets, this workaround has been removed in 8.7.

    Sites dependent on Internet Explorer 9 support should enable CSS aggregation (preferred) or install the IE9 Compatibility contributed module.

  3. Better Symfony 4 and 5 compatibility

    Drupal 8.7 will provide better compatibility with both Symfony 5 and Symfony 4 for faster web development, since Symphony 3 enters the end of life in November 2021. This includes changes in the Container and Translator Interface Symfony components, as well as resolving critical compatibility issues.

    Additionally, numerous critical Symfony 4 and 5 compatibility issues are resolved in this release.

What to Expect from Drupal 8.8?

Here’s what you need to look forward to in Drupal 8.8.

  • The Welcome Tour
    Adding Tour content for those unfamiliar with Drupal. This would help to teach people Drupal with hands-on experience, explaining backend/frontend choices made to build Umami.
  • Composer Support in Core
    Involves making an official method for starting a Drupal site with the composer kickstart template.
  • Admin UI and Javascript Modernization
    The new admin theme is part of the Admin UI and JS modernization initiative and will be released with Drupal 8.8.

    The goal is to create and update the admin look, that defines a complete set of principles while also consisting of visual and behavioural components to combine into a user-friendly interface.

    This will be based mostly on Seven’s styles theme.
    drupal-theme-layout
    menu-theme-layout

    The navigation pages on the admin UI has been designed with an emphasis on readability, and reusability of existing styles from other components.

    language-theme-layout
    Mockup of the interface with text written using the Devanagari writing system

    This would come with various benefits, including improved performance and better support for various writing systems. Using system fonts will also make the UI feel more familiar to the user since it will be closer to the users' environment.

    Drupal 8.8 Feature Freezes: October 2019
    Drupal 8.8 Releases: December 2019

    With Drupal’s commitment to reinventing itself to enable ambitious digital experiences, the community is getting ready for the launch of Drupal 9, and current updates are well in sync with it.

    Have questions about Drupal 8 features or 9 and how it might impact you? Already chalking out an upgrade plan? Our team of Drupal experts and range of Drupal development services are ready to help.

    Drop us a line at [email protected], and get the conversation started.

    Srijan is Signature Supporting Partner to the Drupal Association. With 140+ seasoned Drupalers of which 56+ are Acquia Certified, Srijan has the largest team of Drupal experts in Asia. 

Apr 30 2019
Apr 30

In 2018, the state of California passed the California Consumer Privacy Act, or CCPA, as a consumer-rights focused bill to protect user privacy. Similar to the GDPR, the new law would require businesses to be upfront about what data they are collecting, who they are sharing it with, and allow consumers to request their data be deleted.

This changes the equation significantly for US-based organizations. You may be fairly certain your site’s visitors are US-based, but what about the state they live in? What if they are from California? Similar to other laws originating in California, the mere presence of a law like this begins to affect how all the states treat issues of privacy.

As recent as April 2019, lawmakers were pushing several news bills to reign in some of those protections, on behalf of employers and businesses who found the new law too broad. The tech industry is somewhat discouragingly behind a lot of the lobbying as well. The original law was set to take effect by 2020, but some of the details are still being debated.

It seems certain, however, that some form of the law will be implemented soon. And much like the EU and GDPR, the first step as site owners will be more transparency on data collection, and making it easy for users to opt-out, or request their personal information be deleted. Listing your privacy policy is also a requirement.

The CCPA doesn’t appear to apply to everyone, however. It is targeted towards businesses with annual gross revenues over $25 million, and/or companies whose annual revenue primarily comes from selling users personal information. And unlike the GDPR, it is more of an “opt-out” law than “opt-in.” Websites don’t have to ask before applying a cookie, and businesses don’t have to ask before selling personal information. They do, however, need to offer an easy method to opt-out.

Apr 30 2019
Apr 30

Heather Rocker will lead the Association in supporting the global Drupal community.

Washington DC, April 30, 2019 - The Board of Directors of the Drupal Association has voted unanimously to appoint Heather Rocker as Executive Director to lead the Drupal Association.

Adam Goodman, chair of the Drupal Association Board, said, "Drupal is for ambitious digital experiences. Heather’s experience matches this ambition as we seek to increase adoption, diversify and invest in our community, and grow opportunities for builders, agencies, content creators and marketing decision makers. Heather brings seriousness of purpose, character consistent with our values and principles, and lively good humor — just what the Board and I were seeking out for our next leader."

The Drupal Association's mission is to unite a global community to build, promote, and secure the open source Drupal software. Since 2008, the organization has supported a global network of open source contributors; a robust business ecosystem; and has hosted events across 4 continents and more than 20 countries.

Heather Rocker said, "It’s an incredible honor to serve the Drupal Association in this capacity.  This opportunity is not only in alignment with my skills and experience but also with my core belief that outstanding things can be achieved through a dedicated and diverse community of volunteers and partners.  I look forward to building on the solid foundation and collaborative spirit that exists today. "

Heather will begin her work with the Association at the beginning of June.

Heather Rocker

About Heather

Heather Rocker joins the Drupal Association with a strong history of leadership in technology and the nonprofit world. She was the first executive director of the Women in Technology Foundation, as well as the CEO of Girls Incorporated of Greater Atlanta. Most recently she acted as the Managing Principal of Systems Evolution, Inc. in Atlanta, Georgia. She also serves as Immediate Past-President of the Board of Directors of Georgia FIRST Robotics.

Dries Buytaert, founder of the Drupal project, said, "I’m confident that Heather will move the Drupal Association into its next chapter. Her skills and experience at building relationships in both the non-profit and technology spaces will be a tremendous asset.  I also believe she’ll be a great partner with me to move forward the Drupal project as a whole."

About Drupal

Drupal is content management software. It is used to make many of the websites and applications you use every day. Drupal has great standard features, easy content authoring, reliable performance, and excellent security. What sets it apart is its flexibility; modularity is one of its core principles. Its tools help you build the versatile, structured content that ambitious web experiences need.

About the Drupal Association

The Drupal Association is dedicated to fostering and supporting the Drupal project, the community and its growth. The Drupal Association helps the Drupal community with funding, infrastructure, education, promotion, distribution and online collaboration at Drupal.org.

###

Media Contact: Rebecca Pilcher
Phone: 503-405-1159 x 705
Email: [email protected]

Apr 30 2019
Apr 30

The Drupal Association is announcing that Heather Rocker, former CEO of Girls, Inc. and Executive Director of Women in Technology, is joining as its next Executive Director.

The Drupal Association announced today that Heather Rocker has been selected as its next executive director.

This is exciting news because it concludes a seven month search since Megan Sanicki left.

We looked long and hard for someone who could help us grow the global Drupal community by building on its diversity, working with developers and agency partners, and expanding our work with new audiences such as content creators and marketers.

The Drupal Association (including me) believes that Heather can do all of that, and is the best person to lead Drupal into its next phase of growth.

Heather earned her engineering degree from Georgia Tech. She has dedicated much of her career to working with women in technology, both as the CEO of Girls, Inc. of Greater Atlanta and the Executive Director of Women in Technology.

We were impressed not only with her valuable experience with volunteer organizations, but also her work in the private sector with large customers. Most recently, Heather was part of the management team at Systems Evolution, a team of 250 business consultants, where she specialized in sales operations and managed key client relationships.

She is also a robotics fanatic who organizes and judges competitions for children. So, maybe we’ll see some robots roaming around DrupalCon in the future!

As you can tell, Heather will bring a lot of great experience to the Drupal community and I look forward to partnering with her.

Last but not least, I want to thank Tim Lehnen for serving as our Interim Executive Director. He did a fantastic job leading the Drupal Association through this transition.

April 30, 2019

1 min read time

db db
Apr 30 2019
Apr 30

Heather Rocker will lead the Association in supporting the global Drupal community.

Washington DC, April 30, 2019 - The Board of Directors of the Drupal Association has voted unanimously to appoint Heather Rocker as Executive Director to lead the Drupal Association.

Adam Goodman, chair of the Drupal Association Board, said, "Drupal is for ambitious digital experiences. Heather’s experience matches this ambition as we seek to increase adoption, diversify and invest in our community, and grow opportunities for builders, agencies, content creators and marketing decision makers. Heather brings seriousness of purpose, character consistent with our values and principles, and lively good humor — just what the Board and I were seeking out for our next leader."

The Drupal Association's mission is to unite a global community to build, promote, and secure the open source Drupal software. Since 2008, the organization has supported a global network of open source contributors; a robust business ecosystem; and has hosted events across 4 continents and more than 20 countries.

Heather Rocker said, "It’s an incredible honor to serve the Drupal Association in this capacity.  This opportunity is not only in alignment with my skills and experience but also with my core belief that outstanding things can be achieved through a dedicated and diverse community of volunteers and partners.  I look forward to building on the solid foundation and collaborative spirit that exists today. "

Heather will begin her work with the Association at the beginning of June.

Heather Rocker

About Heather

Heather Rocker joins the Drupal Association with a strong history of leadership in technology and the nonprofit world. She was the first executive director of the Women in Technology Foundation, as well as the CEO of Girls Incorporated of Greater Atlanta. Most recently she acted as the Managing Principal of Systems Evolution, Inc. in Atlanta, Georgia. She also serves as Immediate Past-President of the Board of Directors of Georgia FIRST Robotics.

Dries Buytaert, founder of the Drupal project, said, "I’m confident that Heather will move the Drupal Association into its next chapter. Her skills and experience at building relationships in both the non-profit and technology spaces will be a tremendous asset.  I also believe she’ll be a great partner with me to move forward the Drupal project as a whole."

About Drupal

Drupal is content management software. It is used to make many of the websites and applications you use every day. Drupal has great standard features, easy content authoring, reliable performance, and excellent security. What sets it apart is its flexibility; modularity is one of its core principles. Its tools help you build the versatile, structured content that ambitious web experiences need.

About the Drupal Association

The Drupal Association is dedicated to fostering and supporting the Drupal project, the community and its growth. The Drupal Association helps the Drupal community with funding, infrastructure, education, promotion, distribution and online collaboration at Drupal.org.

###

Media Contact: Rebecca Pilcher
Phone: 503-405-1159 x 705
Email: [email protected]

Apr 30 2019
Apr 30

Drupal is to release its latest version, Drupal 8.7, on the 1st May 2019. Review the entire Drupal product roadmap here.

Drupal 8.7 is a significant update for Marketers, Copywriters, Site Managers, and Creatives. It brings a new Media Library and Layout Builder, Drupal’s first drag-and-drop content manager, recently revealed at DrupalCon Seattle 2019

[embedded content]

 DrupalCon Seattle 2019

This update sees Drupal 8 retain its relevance in an emerging world of instant site builders, like Squarespace and Wix. Where Drupal has always stood out for its back-end capabilities and flexibility with API integrations, the new Layout Builder empowers Content Managers and Marketers. The user-friendly system allows Content Editors to maintain control over their content, throughout its journey to the end user. It also provides enhanced reactivity to the customer experience, as Site Managers can make edits without the assistance of a developer.

Of course, this isn’t just a standard drag-and-drop editor. Drupal 8.7 comes with a whole host of features you won’t find on low-end editors. These include instant multi-page management and the flexibility of powerful editorial workflows.


What is the Drupal Layout Builder?

The Drupal Layout Builder is a drag-and-drop content management tool. It allows non-technical individuals to design layouts in a structured way that adheres to the standard across the site. The new Layout Builder encourages users to take control, introducing blocks which help them to achieve designs and functionalities previously only editable in the developer's domain.

Key features include:

  • Modular template builder
  • Drag-and-drop paragraph editor
  • Permissions workflows
  • World-Class Accessibility 

[embedded content]

 Drupal 8.7 Layout Builder Recording

 

Simple, Reactive Page Management

Using the layout builder, Site Managers and Marketers can create new pages from templates. To build on these templates, users can insert new blocks from the pop-out sidebar that do not exist elsewhere on the site. Once the Site Manager has added a block, they can preview it instantly. At this point, if the editor isn’t happy, they can swap out blocks or replace images, text, buttons and more!

Users have recognised that it can be challenging to move huge, pre-built blocks and paragraphs in full preview. Using the preview toggle, users can now switch out of the full ‘Content Preview’ mode to a slicker block view. This simplified interface makes reordering blocks quick and easy. This differs from alternative drag-and-drop editors as the collapsed block editor sits within the same page. Therefore, editors can drag blocks across columns, as well as up and down.


Accessibility

The Drupal project has a long-standing commitment to accessibility and has been a leader in accessibility for many years. In 2018 Drupal Founder, Dries Buytaert, reaffirmed this commitment by stating that the forthcoming Layout Builder must be fully accessible.

The full 8.7 system is navigable by keyboard, in order to conform to Web Content Accessibility Guidelines, as recommended by the World Wide Web Consortium. This means that the drag-and-drop editor was designed with consideration for Site Managers, Marketers and Developers amongst us with specific accessibility requirements. Ultimately, the latest Drupal update will make agency life and in-house marketing that much more accessible to everyone.

[embedded content]

 Navigating Layout Builder by Keyboard

Workflows

The Layout Builder supports essential activities such as adding, saving and previewing content, or publishing data. The latest update also supports more complex features, such as content staging or approval workflows, using granular controls and notifications for the governance of each layout. This is a great win for marketing teams, as it de-centralises the content management process. Site managers can submit site updates safely, with version controls and final permission escalation.

For more complex updates, Drupal 8.7 supports workflows which push pages through multiple teams. For example, an initial submission which is then passed via testing teams, SEO managers, translation and localisation experts for international audiences, and final senior sign off.


Templates

The Layout Builder also includes a templating feature, useful for sites with large quantities of content. For enterprise sites, Content Managers can edit collections of pages all at once using the Layout Template Editor. Not only can they be edited in unison, they can also be rearranged while retaining their unique content. The ability to re-structure multiple pages at once saves a huge amount of time when one block needs to be changed across multiple locations.

Layout-Builder-template-modeThe Layout Builder in template editing mode

The Drupal Layout Builder was built entirely on Open Source contributions made by 123 contributors and 68 worldwide organisations.

Drupal 8.7 Layout Builder Contributors

The 123 contributors (DrupalCon Seattle 2019: Driesnote)

 

Media Library

Drupal 8.7 included the release of a Media Library, to make asset management faster for Site Managers, particularly within the drag-and-drop format.

[embedded content]

 The Media Library in action

 

The Media Library is a pop-out window from which images and video can be inserted into the webpage. The library pulls content from the organisation’s existing bank of images, hosted within Drupal. Or, users can upload media directly from their cloud or hard drive.

The addition of the Media Library allows Site Managers to insert or change images or video more efficiently than ever. The user selects the area where the image will be added and opens the Media Library. They can then select from existing images or upload multiple new assets at once. Once uploaded, users can remove or reorder any images ready for import. Once happy with the images, the user can add metadata and any extra information (like links), or change the format to video.

The Media Library was made possible by Open Source contributions from 310 individuals and 122 organisations.

Drupal 8.7 Media Library Contributors

The 310 contributors (DrupalCon Seattle 2019: Driesnote)

 

Technical updates

There have also been a host of additional updates and tweaks to Drupal, improving its speed and background functionality. Such updates include adding JSON:API as a core module and providing a consistent way of displaying JavaScript Messages. For the full list of technical updates, visit the Drupal website here.

What’s Next?

Administration UI - Drupal 8.8 or 8.9

The administrative side of Drupal, where site managers navigate the back end and manage content, has been close to untouched for the past 10 years.

The User Interface (UI) is currently being redeveloped to be aligned and reflect the software behind Drupal, giving it a modern look and feel. This includes better use of space (and white space) and more contrasting features. The additional space also means its more accessible, and will receive a WYSIWYG integration.

Drupal 8.8 UI

Proposed UI for Drupal 8.8

 

Sign up to email alerts to find out more or talk to our Drupal Web Development Experts about upgrading your Drupal Platform.

 

Get in touch
Apr 29 2019
Apr 29

Our testing approach was two-fold, with one underlying question to answer: what is the most intuitive site structure for users?

Test #1: Top Task survey

During the Top Task survey, we had users rank a list of tasks we think they are trying to complete on the site, so that we have visibility into their priorities. The results from this survey informed a revised version of the navigation labels and structure, which we then tested in the following tree test. The survey was conducted via Google forms with existing Center audiences, aiming for 75+ completions.

We then used these audience-defined “top tasks” to inform the new information architecture, which we tested in our second test.

Test #2: IA tree test

During the tree testing of the Information Architecture, we stripped out any visuals and tested the outline of the menu structure. We began with a mailing list of about 2,500 people, split the list into two segments, and A/B tested the new proposed structure (Variant) vs. the current structure (Benchmark). Both trees were tested with the same tasks but using different labels and structure to see with which tree people could complete the tasks quicker and more successfully.

Apr 29 2019
Apr 29

Recently recognized as Google Cloud Platform partners, Achieve are adding additional services, products, and capabilities in light of this new partnership. We sat down with our CTO, Nick Falcone, to go over some specifics on this partnership and what it means for Achieve and our capabilities moving forward.

 

When did we decide becoming a GCP partner was a necessity for Achieve moving forward?

With Achieve being Apigee System Integrations Partner for the past 3 years and Google acquiring Apigee, we realized it was only a matter of time before Apigee would rolled up into the larger GCP Partner Program and ecosystem.

Are we recognized as an authorized or premier partner, and what does that mean for Achieve?

Achieve Internet is recognized as a GCP service partner. We are looking to add the Cloud Migration and Application Development specializations over the year with while working towards attaining the Premier Partner designation. Being partners with Google gives us the ability to help our clients use the most advanced technologies to drive innovation and be faster to market.

 

In what ways does this change the game for Achieve and the clients we work with?

GCP is one of the leading cloud providers today and adding new cutting edge services daily. Being able to partner and co-market with Google is a no brainer. The GCP Partner program give us access to a wide array of tools, training, and roadmap information that puts us in the best position to meet market demand while leveraging cutting edge cloud technologies.

 

Have we added services/products inlight of this partnership?

Yes, we will be growing and adding additional capabilities around CI/CD with Kubernetes, lift and shift migrations, Apigee Hybrid, ML/AI, and GCP application development, and microservices. We want to ensure we can help our clients regardless whether their environment is on-prem, hybrid, or multi-cloud.

 

Is this a completely new line of business for AI or an extension to our current offerings?

It’s a combination of both. We have been recognized as Apigee Edge and Drupal DevPortal experts for a number of years, but we are continuing to add additional capabilities to be recognized a full stack provider and directly expand around services around Apigee. As we continue to expand our digital transformation expertise, we are adding services that directly support our clients’ needs GCP application development, Apigee Hybrid, Anthos, and lift and shift cloud migrations.

Apr 29 2019
Apr 29

Learning how to manage communication and support within the Webform issue queue is something that makes me very proud. I also want to keep improving everyone’s experience within the Webform issue queue. A while back, I started welcoming new contributors and saying thank you. Frequently, I have to direct general support questions to Drupal Answers. Occasionally, I have had to remind people to be mindful of their tone. I am continually seeking ways to improve my process and communication within the Webform module's issue queue.

At Drupalcon Seattle, I took part in a discussion about strategies for effective and inclusive group communication where I was introduced to the "nudge theory".

Besides nudging people towards the desired outcome, which is a healthy and sustainable Open Source collaboration, clearly defining these nudges will also make it easier for everyone to improve the overall support and community within the Webform module's issue queue.

Types of nudges

There are three types of nudges within most issue queues - they can be categorized as:

  • Welcome and thank you

  • Values and principles

  • Guidance and directions

Welcome and thank you

Saying a proper welcome and thank you helps set the overall tone of our collaboration. The act of saying "welcome" to a new contributor establishes that we are an inclusive community where everyone is welcome to join. Saying 'Hi' (aka nudges) to new users also reminds other members of the community to be understanding and supportive of someone entering a new community.

Following up someone's contribution with a thank you comment or even handshake (aka nudges), acknowledges and values their hard work and encourages them to keep...Read More

Apr 29 2019
Apr 29

Dries Buytaert recently published a great post on how to prepare for Drupal 9. He explains how we build Drupal 9 in Drupal 8 using deprecations and the tools to use to detect use of deprecated code. Acquia funded me and Zoltán Herczog to work on one of the tools in the past few weeks. Zoltán just released the second alpha of Upgrade Status. It is definitely worth a try!

Here is how it works:

The module provides an overview of all the contributed and custom projects you have on a Drupal 8 site. It groups custom modules based on the directory structure and takes contributed projects from the update module. For contributed projects it also displays the available updates information inline. This is because if you keep contributed modules up to date, they should eventually improve Drupal 9 compatibility. We also plan to allow project maintainers to inform users about the best way to engage with them on the way to Drupal 9. This is dependent on new project fields on drupal.org which we plan to use to pull information to this dashboard.

Looking at the project list, the UI allows you to run a report on all of the projects to find any known Drupal 9 incompatibilities. Because running the full report takes a really long time, the UI also allows you to run reports on projects one by one. Or rerun the report on specific projects as you are working on improving their codebase. You can export the full report and each report individually.

The reporting backend and the report output is based entirely on the fantastic work of Matt Glaman on drupal-check at Centarro (formerly Commerce Guys) which is in itself based on phpstan by Ondřej Mirtes. We use the same tools that are used in drupal-check, the best command line tool available to check for deprecation errors (and other code quality issues). If you plan to include Drupal 9 compatibility checking in your build or continuous integration system, then drupal-check is your best bet.

Matt is also working with Ondřej to include the @deprecation annotation text in errors, which would improve the usefulness of the reporting of both tools immensely. Until then Upgrade Status links to api.drupal.org for documentation where you can find the deprecation documentation as well and learn about how to fix it.

The alpha2 version of the module was just released including support for recovering from PHP fatal errors (that legitimately happen in parsing some projects), as well as better chunking of project parsing so huge projects like Drupal Commerce will not result in timeouts or memory limit issues. We plan to improve the interactive experience further as well as fix any bugs reported, so please keep the reports coming. Looking forward to your experience with Upgrade Status!

Apr 29 2019
Apr 29

Drupal has been the choice of the world’s multiple large and top-notch organisations, across various fields. The royal family of the UK, the Greenpeace Greenwire, Oxford University, Warner Music Group, Tesla, Red Cross, and now the Australian Government - everyone is using Drupal. Security and the scope of customisation are two of the major reasons behind the selection of Drupal over other CMS platforms. In fact, the govCMS was also formed using Drupal to resolve the multiple issues faced by Government agencies viz. Security, cost, extraordinaire functionalities, flexibility, smooth process of procurement, et al.
 

As a dedicated Drupal-er for more than 6 years, AddWeb has worked on multiple enterprises and large-sized Drupal projects. And hence, we are cognizant of all the strengths that Drupal contains. This is exactly why we confirm with the Australian Government’s decision of choosing Drupal for creating govCMS.
 

There are multiple reasons that make govCMS an apt choice for Government organisations. govCMS is well-equipped to meet all the requirements of the Government organisation, along with following their guidelines of the web world.
 

Advantages of govCMS:

The Australian Government created the govCMS distribution by combining Drupal Core and a specific set of Drupal modules. So that uniformity is maintained across all the Australian Government’s websites and it the creation of the same also becomes easy. Let us how else does this, govCMS distribution proves to be advantageous:

Cost-Effective

Individual web hosting and creation of the sites demand time and money. The higher the security and quality of these sites, the higher the costing. govCMS saves on both of these factors and simplifies the entire process by choosing a single provider and hosting platform on Acquia Cloud Site Factory PaaS Service. In fact, whenever there’s an increase in resource usage, one can always upgrade the platform, which is eventually beneficial to all the other govCMS sites also.

Government Standards Compliance

The entire govCMS is created in a way that it perfectly complies with the standards of the Federal Government. Hence, this makes the further process quite smooth and sorted. Security being one of the major concerns while creating a website for such Government organisations. And hence, govCMS has complied with their guideline by completing the program process of Information Security Registered Accessors. Plus, every issue that is found and rectified in govCMS will also automatically be implemented to other govCMS sites too.

Software Maintenance

Drupal is one of the largest open-source platform available today and hence it has a large team of 600 expert community members, who work on making govCMS a consistently growing and highly efficient product. This is taken care by Acquia, which also provides 24x7 assistance for govCMS at application and hardware level.   

Security Compliance

One constantly needs to confirm that there are no issues with the govCMS sites, for which a continuous process of testing, bug-fixing and other such process is required to be followed. This is very well taken care of, when it comes to govCMS and hence the security of this platform is kept intact. In fact, an automated testing process has also been set across the entire network by using Behat.

Responsive

In today’s day and age, a website that is not responsive is outdated. Fortunately, govCMS has been created with a base-theme that is responsive by default. This provides the developers in quick-creation of custom themes. This also helps in the creation of a standard look and feel of the Australian Government’s website, which converts into a user-friendly experience.

Accessibility Compliance

Every single Government website needs to be in compliance with the Web Content Accessibility Guideline (WCAG) AA 2.0. And hence, WCAG AA 2.0 has been at the base of creating the base-theme and hence it’s in complete compliance with the Government standards. This also helps in elevating the user-friendliness of the website. govCMS also provides a list of the accessible elements either via the content pages or the WYSIWYG editor.

Data Retention

Backups are a very critical and significant part of any website. So when it is a Government website, the stakes are even higher. The creation of govCMS is done in complete compliance with the National Archives of Australia Standards. This includes about 7 years of data retention on backups, which is a highly beneficial factor that works in the favour of these govCMS-based Australian Government’s websites.  

govCMS is a pool of perfection when it comes to a platform meant for Government - highly secure, affordable and effective! govCMS platform is a pool of perfection when it comes to a platform meant for creating any Government-based website. Because it is highly secure, affordable and effective! AddWeb is glad to have built a website created by using a govCMS platform, which is in complete compliance with WCAG 2.0 and government standards. And we’re all-equipped to work more on other such govCMS-based websites. If there’s anything specific in your mind that you wish to learn about govCMS then free to write to us in here and we’ll be happy to include the relevant topics in our future blogs.

Apr 29 2019
Apr 29

In this short article I will show you something that amazed me when I discovered it. You’ll maybe say: boh, I already knew this from way back or really, that amazed you? But nonetheless, I found it cool because it really fit my needs. And like many many other things, I had no clue about this.

We all know how we can easily ajaxify our forms for quite a lot of uses cases. I talk about some of them in this Sitepoint article for example. But the other day I had a few entity autocomplete elements that needed to trigger an Ajax callback using the regular form API when the user made a selection. So I started with the regular “change” event like you normally have on other elements such as select. And it did the job…but not really. I mean, the user would look for the entity, select it, get the box filled, but no Ajax request. Only after the focus left the input would the callback kick in. This can work, maybe, but you are relying on the user’s intuition to unfocus from that form element. And that’s a nono.

Then I realised that the entity autocomplete element uses the jQuery UI autocomplete widget for finding entities. And this widget fires some events of its own. Enter autocompleteclose. This event is fired when the user has made the selection, the autocomplete closed, the selection was made and the element populated. Exactly what I needed and I guess many people need. So my form element #ajax definition now looks like this:

'#ajax' => [
  'callback' => '::ajaxRebuild',
  'event' => 'autocompleteclose',
  'wrapper' => 'form-container',
],

And this did the trick royally. The user would find the entity, click on it, the event would fire and my form rebuild with all the values available. Super.

Some hours of totally unrelated development later, I tried clearing the value of the element once selected. Oops, nothing would happen. But it should, at least in my case. The Ajax callback should be triggered to update stuff based on the (un)selected value. Hm…the change event would do that. Now what?!

Turns out you can use multiple events in one single Ajax definition. So I could use both of them which would trigger the same Ajax callback. Another freebie. So with the new element definition like this:

'#ajax' => [
  'callback' => '::ajaxRebuild',
  'event' => 'autocompleteclose change',
  'wrapper' => 'form-container',
],

Everything was peachy. Working seamlessly as the user would select something or erase the selection.

I hope this helps you as well, discovering it maybe a bit faster than it took me. Because you have it right here! :)

Apr 28 2019
Apr 28

One of the most significant terms used on this planet is ‘Security’. You get to read about nutrition security in reports like the UN’s State of Food Security and Nutrition in the World in 2017 that laid out pointers to bring in nutrition policy reform. Or, you get to hear about cybersecurity which needs to be integrated into every aspect of policy and planning in this age of digitisation. Often, you also get to see the emphasis being put on national security, an integral part of every country, and surveillance becomes important to ensure the safety of citizens.

A house lock put up on a green coloured structure


Security also plays a key role in the web development arena. Website security is one of the most significant aspects that every business considers to thrive on and dominate the internet space. Vulnerabilities in your sites can give hackers the upper hand in finding a key to the safety vault. Drupal 8 stands out as the most secure Content Management System (CMS) which comes bundled with a plenitude of advantages over other leading content management frameworks.

Security Features

With a proven track record of being the most secure CMS, Drupal has been performing much better than its competitors in the CMS market. It has stood resilient to critical internet vulnerabilities. Thanks to Drupal Security Team for actively validating and responding to security issues.

Drupal Security Team is a force to reckon with when it comes to finding out anomalies and fixing them. The goals of the Security Team are to resolve reported issues in a Security Advisory. They provide help for contributed module maintainers. They document these identifications and modifications to make sure that developers don’t find themselves tied in knots. They assist the infrastructure team to keep the Drupal.org infrastructure secure.
 
Moreover, you can allow safe access to your Drupal site as it has the in-built support for salting and repeatedly hashing account passwords when they are stored in the database. It also enforces strong password policies. Furthermore, it offers essential security modules, industry-standard authentication practices, session limits and single sign-on systems. And, by providing granular user access control, Drupal gives administrators full authority over who gets to see and who gets to modify different parts of a site.
 
Database encryption can be done efficaciously with the help of Drupal. It is configurable to encrypt your complete website or just a part of it like content types, nodes, and taxonomy terms.
 
Further, Drupal’s Form API assists in validating data in order to avoid XSS, CSRF and other malicious data entry. It also limits the number of times login attempts are made from a single IP address over a predefined period of time which enables you to brute-force password attacks.

The multi-layered cache architecture helps in minimising Denial of Service (DoS) attacks and makes it the most preferred CMS for some of the world’s highest traffic websites; thus proving its immense scalability.
 
As a not-for-profit charitable organization, OWASP (Open Web Application Security Project) focuses on improving the security of software. Drupal conforms to the OWASP standards and its community is committed towards prevention of safety hazards.

A heading and bullet points below it to explain security constraints of Open Web application security project


Major Technical Improvements

Drupal 8 has closed down many glitches and bugs reported in Drupal 7.

Ever since Drupal 8 came into the scene, it has emerged as the most technically improved CMS in terms of security. Some of the most important modifications that have taken shape in Drupal 8:
 
Removing the PHP input format in the core is probably the most important advancement which has removed code execution vulnerability. That means administrator login does not have to be executed with arbitrary PHP code or shell commands anymore.
 
Twig templates, which is used for HTML generation, is considered one of the most important improvements. This has resulted in better validation of 3rd party themes.
 
Twig auto-escaping has also prevented most frequently found Cross-site scripting (XSS) vulnerabilities in the custom site themes and custom and contributed modules.
 
Tracking configuration in code has been streamlined with an auditable history of changes through Configuration Management Initiative. Also, it helps in avoiding mistakes that creep in during manual configuration. Configuration changes in the production server can be completely blocked.
 
Use of filtered HTML format for content entry has prevented the execution of XSS attacks on other site users.
 
User session and session ID management has also been fortified in Drupal 8.

Statistics are on Drupal's side

Statistically, Drupal performs much better than leading CMS platforms for preventing safety hazards.

Sucuri, security platform for websites, compiled the ‘Hacked Website report’. It analyzed more than 34,000 infected websites. Among the statistics that it shared, one of the parameters was to compare the affected open-source CMS applications.

Wordpress, Joomla, and Magento suffered the most. The infection crept in due to improper deployment, configuration, and the maintenance.

Bar graph showing infected websites platform in 2017Source: Sucuri

The infection rate of major content management frameworks had a varied change. While Wordpress had a significant increase from 74 percent in 2016 Q3 to 84 percent in 2017, Magento had a slight rise from 6 percent in 2016 Q3 to 6.5 percent in 2017.

Joomla had a considerable drop from 17 percent in 2016 Q3 to 13.1 percent in 2017. Drupal bettered its rate from 2 percent in 2016 Q3 to 1.6 percent in 2017.

Bar graph showing CMS infection comparison in 2017Source: Sucuri

MDPI, which pioneers in open access publishing, prepared a report called ‘A Comparative Study of Web Content Management Systems’. They used Acunetix software for auditing the website. They compared Drupal and Joomla in terms of most commonly occurring vulnerabilities - SQL injection and XSS. Drupal came out as the clear winner.

Moreover, in the Cloud Security Report by Alert Logic, Drupal was reported for the least number of web application attacks.

A table with rows and columns to explain Drupal securitySource: Alert Logic

Summary

Website security is the most important constraint to survive without any existential threats. Drupal has been the frontrunner when it comes to choosing the security focussed CMS.
 
Being an open source platform and Drupal Security Team’s efforts in providing essential features and timely updates in Drupal 8 has helped in making it the most reliable and secure CMS.
 
The transition from Drupal 7 to Drupal 8 has seen a tremendous advancement in blocking the vulnerabilities.
 
Statistically proven, Drupal is the best CMS in terms of security among the major CMS platforms.

Contact us at [email protected] to get the best out of Drupal 8 and its security features.

Apr 28 2019
Apr 28

From Donald Trump's consistent accusations to lack of ad revenue caused by the shift in media consumption behaviors, the digital disruption that hit the media industry left the majority of media outlets considering their next steps knowing that being left behind in the digital age meant the end for them.

Focus shifted from simply reporting the news to delivering the most engaging and comprehensive digital experience possible for their readers.

Al Bawaba News - Digital Journalism and Media

Al Bawaba News - The Largest Independent News Platform in the Middle East (Built by Vardot)

News and media platforms need to remain vigilant and embrace the tech trends that impact content publishing in the near future. Here are the trends that are expected to impact the digital news and journalism industry:

1. Contextual Experiences

We are more likely to be doing more than one thing at the same time and news media outlets should have that in mind when considering how to develop their UX.

For example, you are taking a run on the gym treadmill and a relevant news article was just published; would you interrupt your routine to read a long-form article? The most likely answer is no. The desire to read the article would fade as the minutes' pass.

Wouldn’t it be great if we could listen to published news articles as we run, work out, cook or even drive? That is now possible thanks to progress made in Natural Language Generation (NLG) technology.

Natural language generation (NLG) is a software process that automatically transforms data into written narrative whilst keeping in mind SEO related factors such as keywords and users reading proficiency levels which makes it a powerful tool for news media outlets who seek to create contextual experiences for their readers.

"By 2020, natural language generation and artificial intelligence will be a standard feature of 90% of modern BI and analytics platforms." - Gartner

According to the Future Today Institute; various major news media outlets have been utilizing Automated Insights; which mines data for them and is capable of writing more than 2,000 stories per second using natural language generation to produce stories.

As voice search is increasingly becoming the norm, users will begin to ask for general content with specific conditions: 
 
  • “Alexa, I am running late, please give me the headlines only.”
  • “Siri, please provide me with news articles that are less than 2 minutes long.”   

Users are always looking for the most convenient and personalized experience; the news media platform that delivers contextual experiences are sure to gain a lead over their competition.

Such a digital experience could grow an audience possibly become a subscription service in the near future.

2. Fact Checking – In Real Time

Promoted by a president, championed by biased political views and powered by algorithms; ‘fake news’ is a trend that has become an unfortunate reality.

Donald Trump Fake News

What is real and what isn’t?

People have either become proudly misinformed in the bubble they live in, or fatigued to the point of apathy towards real journalism. This phenomenon is arguably the biggest immediate threat to the profession and what’s worse is that generating ‘fake news’ has become easier than ever.

Enhanced algorithms for voice, video, and sound are being generated. Researchers at MIT CSAIL have been studying how children learn new words in order to train computers how to recognize speech. Computers are also being trained to watch videos and predict corresponding sounds in the real world.

Whilst this progress will enable AI to provide richer and better user experiences, there have been examples of malpractice too.

In 2017, researchers at the University of Washington developed a model that convincingly showed President Barack Obama giving a speech—that he never actually gave in real life.

 

Algorithms provide you with news based on your likes, online behavior, and interactions. While this does enable news platforms to generate more traffic, but at what cost?

3. Bots

Most journalism is simply about reporting the news and bots have done that efficiently so far.

Bots have proven to be effective when it comes to receiving instant alerts regarding trade warnings, natural disasters and etc. Bots will continue to be refined and improved to automate news related tasks freeing up time to allow reporters to devote time to more important tasks.

The major risk associated with bots is that they are only as reliable as the people who build them. People or groups with nefarious interests can use bots to distribute false information.

Important:
 
  • Ensure that your bot clearly explains its purpose and specific functions are.
  • Your bot must be able to showcase from where the answers it provides are coming from without any bias towards an idea or people.
  • The bot must represent your news and media platform’s values. What happens if your bot interacts with another bot or person whose values counter those of your organization?

Bots will continue to play a key role in journalism and other fields heavily reliant on content publishing as they utilize a combination of bots and AI to create new content. 

With elections taking place around the world, misinformation bots will continue to play a big role on Facebook, Twitter, and Instagram. You can expect to see more tech-based solutions being proposed to address the issue; your news platform must follow suit to ensure the credibility of your journalism.

4. Digital Frailty

Digital frailty refers to the loss of digital assets such as published content and articles. Typically, a news agency would lose it's content when attempting to upgrade their website.

In reality, this issue is easily avoided and usually caused due to poor IT practices and vendor selection.

A simple way to protect your archives and preserve digital assets is to build your platform using a CMS that is flexible, structured and features a revision process. 

Varbase Revision Process

Varbase - Drupal Distribution Revision Comparison - Source: Drupal.org

 

Drupal is a great CMS for digital news and media businesses as it delivers on the aforementioned and more.

Mergers and acquisitions are another reason why specific content goes missing. This is increasingly alarming as the number of media outlet owners are becoming more and more involved in politics.

News outlets sometimes are forced to delete content that is not aligned with the new ownership’s politics. A recent example of this scenario that made headlines around the world is when the Trump administration deleted all climate change related content from government websites in favor of the new administration’s agenda.

These tech trends and disruptions are but a mere sample of what impacts the digital news media industry. They present challenges but also tons of opportunities to create an engaging digital media experience for readers. 

From global media titans to independent content publishing platforms; Vardot specializes in developing personalized digital experiences for the news and media industry. 

Contact us to discuss how you can transform your news and media platform into a state-of-the-art digital news experience.

Apr 27 2019
Apr 27

Michael Hess, (mlhess), Senior Technologist and Adjunct Lecturer at University of Michigan and member of Drupal's Security Working Group joins Mike Anello to talk about recent Drupal core security updates, security release processes, Drupal 7's future end-of-life, and the new Drupal Steward program.

Interview

DrupalEasy News

Upcoming events

  • DrupalCamp Chattanooga - June 7 and 8, 2019.
  • DrupalCamp Asheville - July 12-14, 2019.
  • Midwest Drupal Summit - August 8-11, 2019 - Michael is the primary organizer - for more info, go to #mwds in the Drupal Slack workspace.

Sponsors

Follow us on Twitter

Subscribe

Subscribe to our podcast on iTunes, Google Play or Miro. Listen to our podcast on Stitcher.

If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page.

Apr 26 2019
Apr 26

April's been unexpectedly generous with us. It has spoiled us with plenty of high-quality content on Drupal. From “enlightening” tutorials to articles raising awareness of certain limitations, to useful tips and actionable advice, to blog posts announcing life-saving module releases... reading our way through the pile of Drupal blog posts this month has been a true dare.

Then, trimming down our bulky list to just 5 posts has been an even bigger challenge...

Nevertheless, we did manage to make our selection. Here's what we kept:
 

The WishDesk team share their experience with leveraging the Drupal 8 Views contextul filters via a well-structured, easy to follow tutorial.

That we're highly grateful for...

Why has it drawn our attention? 
 

  • because we had already been excited about the unmatched flexbility that the contextual filters in Drupal 8 offer
  • it clearly outlines the main differences between regular and contextual filters
  • it presents a specific use of these filters: setting up a task tracker in Drupal 8 using Views 
     

With Views already providing us with an UI for putting together data collections based on certain criteria, now having contextual filters, as well, to fine-tune the results come as an... unexpected “present”.

Their key benefit and advantage over the “standard” filters? They accept dynamic values...

Another one of our top favorite Drupal blog posts this month has been this piece of content raising awareness of the Layout Builder's limitation:

The code generating the image element markup doesn't “store” information about the specific sizes of the column that the image will be placed in.

In other words: there's no way for Drupal site builders to enter an accurate value for the “sizes” attribute when using the Layout Builder...

And the author, Brian K Osborne, draws attention on this issue after first highligthing the main “dilemma” of using responsive image styles:

Providing just one high resolution, high-quality, oversized image vs providing a suitably sized image for efery screen resolution...
 

We couldn't leave out Dries' blog post on the due preparations for upgrading to Drupal 9.

The reassuring aspect that he reveals is that all these preparations revolve around one common best practice: detecting and removing deprecated code from our Drupal 8 websites.

He goes on giving straight answers to all those legitimate questions that we might ask ourselves in relation to these preparations for Drupal 9:
 

  • What is deprecated code?
  • How do we identify it on our websites?
  • How challenging and time-consuming is it to remove it/update it?
     

This has been, by far, one of the best rated Drupal blog posts in April here, at OPTASY.

We can no longer imagine our (work) lives without the Paragraphs module in our toolbox. So, upon hearing about the Paragraphs Editor Enhancements module we dropped evewrytging and looked for this blog post.

Which comes as an inventory of both:
 

  • users' (content editors) main improvement suggestions for the Paragraphs module
  • undpaul team's solutions to editors' complaints/suggestions, turned into enhancements for this module
     

From the:
 

  • well-known “dread” of having to drag the content elements to their right positions after you've added them
  • to the need to be enabled to add those content elements preferiantially (since most editors add pretty much the same elements, over and over again)
  • to the overwhelmingly high number of buttons and the overcrowded dialogs
     

 
… the Paragraphs Editor Enhancements ships with a solution to each one of these drawbacks.

We can't but predict that it will hugely influence the editorial experience in Drupal...

We could never thank enough the OSTraining team for their clear, concise and most useful tutorials. 

One of their April's Drupal blog posts has been this step-by-step guide on how to add webforms to content types. And the scenarios where you'd might find this kind of knowldge “life saving” vary from:
 

  • having to add a contact form to a “business” content type on your Drupal website
  • to having to add a contact form to your “Events” content type
     

Easy to follow, clearly explained, uncluttered, filled with relevant screenshots, their tutorial has been truly “enlightening” for us.

Especially since adding various types of forms is one of those recurring tasks in our Drupal projects...


The END! 

These have been our favorite Drupal blog posts this month. How does your own top 5 look like?

Photo by Bernard Hermant on Unsplash 

Apr 26 2019
Apr 26

This post is a kind of logical continuation of one that we published earlier this month on dealing with some of the most pressing challenges of remote staffing. If you missed that one, we suggest you go have a look at it, just so you have the most context possible.

Right - now that you’re all up to speed, and probably even more eager to know about the advantages of remote staffing (hints of which you could probably already glean from the previous post), we can begin discussing the factors that make remote staffing such a popular option.

While it’s true that there will be some challenges encountered when working with a team of remote partners, this kind of project outsourcing is also hugely beneficial - even taking into account all the potential issues. 

How is that so, you ask? Aren’t there just more communication issues, bigger costs, more difficulties with monitoring ... essentially more of everything?

Well, no, a lot of these “myths” can be debunked, and we believe we already did a good job at that in the aforementioned post. But, even if they couldn’t be debunked, more of everything also means more of the good stuff, not just the bad stuff. 

Think of it - greater flexibility; the capability to scale only when you need it and when you’re ready for it; a lot of redundancy, a luxury you don’t have when managing a project exclusively in-house; lightning-fast acquisition and onboarding; the capability to get exactly the kind of expertise your current project demands, and likely even skills you don’t even know it will demand later on in its progress ...

All of this adds up to the foremost advantage of remote staffing, that is, the capacity to more smoothly navigate the ever-shifting landscape of digital projects and/or agencies. 

Still not convinced? Not a problem - we can’t wait to dive into specific benefits and discuss them in more detail! After getting through our list, and especially if you’ve read the previously mentioned post on the challenges of remote staffing, you’ll be able to see the whole picture more clearly and always know when this kind of partnership is the right fit for you. 

1. Scalability

One of the biggest questions that digital business leaders of today are asking themselves is: how can we effectively scale our business? 

It’s certainly a question worth asking. One cannot expect a business to truly be successful on a larger scope if it doesn’t grow or scale. However, in a constantly shifting digital environment, which also brings about a fluid scope of work, effective scaling can become problematic.

This is precisely why remote staffing is such a great fit when the need to scale arises. Recruiting and managing in-house employees while also taking care of all of their expenses is not only costly, but also very time-consuming (read: costly2). While this does result in growth, it doesn’t exactly scale your business.

Of course, you also have to take into account the possibility of not being able to find a full-time employee who lives near enough to join your on-site team. With an ever-increasing demand for experienced developers, this is a concern you’ll likely have to address (if you haven’t done so already).

This scenario changes completely when you establish a partnership with an off-site development team. With remote staffing, you can bypass the lengthy recruitment processes and instantly expand your in-house team. 

You get the luxury of deciding how many remote workers you want to hire - and the initial number is not set in stone, either. Once you’ve established a successful partnership, getting additional developers to work on your project will be even faster and safer (there will be a much smaller risk of making a bad hire or at least this risk will not be on you). 

This gives you protection from unexpected changes to the scope of the project. An unplanned increase of its scope is no longer an issue when working with remote partners. At Agiledrop, we are usually able to supply clients with new developers in under a day - or even significantly faster when we already have all the documentation and information related to the project. 

By working with us, you’ll get an instant boost to your workforce for the duration of the working arrangement; you’ll be able to tackle a greater number of bigger projects while keeping your expenses to a minimum.

As such, scalability is very likely the number one benefit of remote staffing. More than that, actually - most of its other benefits are directly or indirectly linked to scalability. These are what we’ll discuss in the following points of this article. 

2. Redundancy

This next benefit is in fact a kind of subset of scalability and a lead into the third benefit which we’ll discuss a bit later on. We’re treating it separately since it looks at growing your team from the other perspective - we’re dealing with redundancy.

In our context, redundancy essentially covers the other side of the fluctuating nature of digital projects, the “down” period where you have fewer projects and less work. 

With an exclusively in-house team, the down periods impede your progress and growth even more than you’d expect. Not only do you have less work and by consequence less income, you have all these employees who were vital to previous projects still on your payroll. This basically means double the cost, with no gain.

And, should you decide to let someone go on account of there not being enough work, you’ll again have certain expenses. Even if an employee resigns of their own volition, this process is not instantaneous, and they keep receiving their salary up until their departure. 

It’s a different - and even more costly - story when an employee is given resignation, especially if the justification for it is “not enough work” (after all, it isn’t and cannot be their fault that you the employer are unable to provide work for them). In addition to their ongoing salary, you’ll also have to cover all the costs associated with their severance.

Moreover, you’ll risk creating a negative atmosphere and sending a negative signal to the rest of the employees, who do have enough work, but may start contemplating other career opportunities on account of that. This may cause you to lose even those employees whose expertise is crucial to your ongoing business.

Very likely, when weighing your two options against each other, you’ll come to the realization that the best solution would nonetheless be to keep your employees on your payroll and wait for more work to arrive. But, logically, you won’t be happy about it. 

One of the magical things of remote staffing, already hinted at before, is the ability to get reinforcements to your team only for the duration of the project. Even if you have to end the contract prematurely, there are no long-term consequences like when you fire full-time employees. While we covered the case of an increase of a project’s scope under the benefit of scalability, the other side is neatly covered by redundancy.

So, not only is remote staffing a great choice of growing your team when it cannot handle the increased scope of work, it also eliminates all additional expenses for the period when the project is finished and the extra workforce is no longer needed. 

A partnership with an agency such as Agiledrop gives you the flexibility (buzzword alert!) to hire and fire as your project demands, with no resentment and no expenses associated with letting people go. You get the developers, the timely quality work, then shake hands and remain friends. 

3. Flexibility

You have to admit - this was a super smooth transition into this next point! The capacity to instantly respond to changes in the scope of your work via scaling and descaling your business can be neatly summed up in a concept that actually covers more than just these two advantages: flexibility.

In fact, flexibility is like an added bonus to the two benefits we’ve just discussed. The ability to get as many developers as your project needs with no obligation to retain them after the project is concluded allows you to be incredibly flexible.

And this flexibility doesn’t just cover unexpected changes issuing from the project itself. Working with partner agencies also provides you with a fail-safe against the plethora of uncontrollable factors that can arise whenever people are involved, such as unforeseen health issues or urgent family matters.

As we pointed out in our post about the biggest challenges of remote staffing, there’s not much you can do when one of your in-house developers has to take a sick leave or any other type of paid leave (some emphasis on paid). 

With remote staffing, however, you don’t need to worry about what to do in such situations. You can count on your partner agency to supply any necessary replacements in case something happens to the original hire. 

But the major benefit of remote staffing in the context of flexibility actually goes beyond just a single project. In the introduction, we already touched upon the constantly changing and by consequence hard to navigate digital sphere. 

Finding the right outsourcing strategy allows you to not only be flexible with regard to the project in question, but actually with regard to your very workflow, making it much easier to handle this shifting nature of the digital. 

This means that the “up” periods aren’t as hectic, while the “down” periods aren’t as devastating to your business development. You’re able to smoothly adapt to market needs as well as keep up with new and emerging technologies, either by not having to focus so much on HR or thanks to the diverse expertise of your remotely working developers (or, most likely, both).

It essentially boils down to this: this flexibility obtained through remote staffing enables you to take on more projects and win bigger deals with more important clients. Additionally, it lets you focus more of your energy and resources on business development and helps you to stand out from the crowd, priming you for growth and success.

4. Faster acquisition

Right, so, the previous three points dealt with what you’ll gain by working with partner agencies. Let’s now take a look at how remote staffing can save you time and resources thanks to the accelerated process of hiring and onboarding.

We mentioned earlier that the recruitment of in-house employees can be very time-consuming and consequently costly. Searching for the most suitable people is just the first step - and, naturally, the more workers you need, the longer it takes.

Then you have to interview all those candidates, likely discounting a decent percentage of them. Those that do make the cut then have to go through onboarding processes - and all the while time just keeps stacking up. We won’t even go into the obvious costs of salaries, travel and health expenses, paid leaves and adequate equipment. 

Luckily, there’s an easy, one-stop solution to all of the above. Yep, you guessed it - it’s a remote partnership! Partnering with an agency and relying on them to provide you with the needed experienced personnel will notably cut down the time searching for developers, as well as most of the expenses. 

Perhaps the best thing about such an arrangement is the sustainability of the relationship. Once you’ve partnered with an agency that you’re satisfied with, it’ll be that much easier and faster to get additional developers from a proven source that you trust will deliver the right profiles based on your requirements.

Another time-saving advantage of remote staffing becomes apparent in the onboarding of newly hired developers and their integration into your existing team. At Agiledrop, all new employees go through an in-house onboarding project, during which they familiarize themselves with all the most up-to-date tools and practices. 

This onboarding is carried out by our highly qualified development leads who also play a major role in selecting the most adequate person for a project. Since they’ve served as their mentors, they’re able to make a very informed selection quickly and efficiently.

What this means for our clients is that we basically cover 100% of the onboarding costs; when you hire one or more of our developers, they can immediately adapt to your workflows, become your temporary teammates and start working on the project.

The end result is that, despite a possibly higher daily rate of a remote hire than that of an in-house employee, the time saved more than pays off for the difference. Add to that all other areas where you are able to cut down on expenses and you can see why such a partnership is indeed a great fit for ambitious businesses that are focused on growth and scaling.

5. Specific, but diverse expertise

The last advantage of remote staffing that we’d like to point out relates to all the ones previously discussed in this post. Actually, it’s very likely one of the key reasons why outsourcing via staff augmentation has been established as such a successful business model: we’re talking about the ability to provide exactly the right kind of expertise for any type of project. 

It is at the same time the reason for and the result of such a business model: agencies started to capitalize on diverse and/or niche market needs, training employees to respond to those needs while acquiring more diversified skills during the process. 

Perhaps a certain project demands, say, a dedicated ecommerce developer that your in-house team lacks. Naturally, you don’t want to turn down interesting work coming your way, but you only need this specific expertise for this one project, not full-time. This is one aspect where you can immensely benefit from a remote partnership.

Having worked on a variety of projects for different international clients, the developers of an agency such as Agiledrop not only come pre-trained with the specific expertise a client’s project needs, but have also likely familiarized themselves with even more fringe cases. 

This enables them to quickly find solutions in similar situations. But, even when they encounter a new problem, it doesn’t mean they’ll get stuck in a rut and waste precious time. The open-minded and solution-oriented mentality they’ve cultivated will allow them to always approach new challenges in a logical and innovative way.

In the case of Agiledrop developers, this is additionally accentuated by our strong promotion of collaboration and knowledge-sharing. Mentoring and being mentored don’t stop once the onboarding is concluded; everyone is encouraged to help out when they can and to likewise seek help from their peers before trying to solve something unfamiliar on their own. 

Because of this, our clients always benefit from our entire team’s expertise, even when only hiring one or two developers. This way, they get more than their money’s worth, making for a much higher ROI (especially when taking into account all the cost reductions mentioned in the previous point).

So, tying back to scalability and redundancy, it’s obvious how valuable it is to be able to get a developer with a specific set of skills. By default, outsourced developers only work for the duration of a project, providing their expertise while not turning into a financial burden once that expertise is no longer needed. Effective scaling - check!

In conclusion

Now that we’ve discussed each specific advantage of remote staffing more thoroughly, we can see how strongly connected they all are. The connection between the first three is particularly obvious, as we already pointed out. 

But there are also others that we haven’t specifically addressed, e.g. fast acquisition of remote hires naturally provides a lot of flexibility thanks to reduced overheads and a hyper-efficient means of scaling. 

It thus seems we’ve come back to and reinforced another claim we already made in the introduction: all of these specific benefits result in the ability to better cope with the constantly evolving digital space by allowing you to keep up with the pace of its evolution, stand out among the competition and secure bigger projects while saving resources. 

Have you found yourself in a situation where you’re turning down work because you lack the development capacity or certain necessary expertise? We’d be more than happy to help you scale your business and win more deals - give us a shout out
 

Apr 26 2019
Apr 26

At DrupalCon2019 earlier this month, Promet Source tapped the collective brainpower of attendees with a Human-Centered Design activity that asked this question:

“What are the key advantages, the main challenges, and the emerging opportunities of Drupal as an Information delivery platform?”

Within the context of a Human-Centered Design workshop, big questions such as this one are positioned within a “Rose-Thorn-Bud” framework. Participants are given brightly colored Post-It notes and asked to write everything that they view as an advantage or a plus on a pink (Rose) Post-It. Challenges or downsides are to be written on a blue Post-It (Thorn). Green Post-Its are for collecting input on potential or emerging for opportunities (Bud). 

15 Minutes of Focus

A setting such as DrupalCon, in which participants are needing to constantly shift their attention as they take in tons of information from all sides, is vastly different from a Human-Centered Design Workshop, in which the attention of all participants is laser-focused on a series of activities that build upon the insight and information gathered. DrupalCon, however, represented such a high degree of energy and enthusiasm, that we were able to count on considerable contributions throughout the event. 

The first phase of the Rose-Thorn-Bud activity is simply collecting input. The next phase, called “Affinity Clustering,” is for purposes of reordering and analyzing the input according to agreed-upon groupings. The use of different colored Post-Its is particularly useful in revealing that within a particular category there might be a mix of Roses, Thorns, and Buds, or primarily one or the other, or in some cases, participants may differ as to whether the same issue constitutes a Rose, a Thorn, or a Bud. 

This is an excellent exercise for revealing patterns, surfacing priorities, bringing order to disparate complexity, and sparking productive conversation.

DrupalCon Participants Rank Drupal

Let’s look at the input gathered during the first phase of this activity where we collected responses to the question concerning of key advantages (Rose), main challenges (Thorn), and emerging opportunities (Bud) of Drupal as an information delivery platform.

Rose Thorn Bud Ease of development Documentation (2 Post-Its) Templates for quickly building mini-sites Ease of extension (modules for everything) Too many options Migration to D8 Cutting edge Security is really hard for small projects Decoupled architecture opportunities Connecting and referencing data and content with Taxonomy Admin UI is not intuitive to content editors Accessibility! Adoption of Symphony Admin UI Improving documentation Lots of interchangeable pieces/modules Composer vs. Tar install; mismatched workflow Media integration Flexibility (3 Post-Its) Scattershot dev -- unified direction GraphQL in Core Accessibility out of the box Address low-hanging fruit (media integration) Menu System APIs Content modeling Media integration JSON API with Content Moderation Trusted information can be pushed out programmatically and systematically Content Editor Experience Layout Manager Simple to use Layout tough to perfect   Drupal makes information pretty Flexibility   Allows for all sorts of content types High Learning Curve                (3 Posts-Its)   Quick publication of new information Drupal requires a lot of back-end work to make performance better. It’s heavy and slow.  

 

Next Step: Affinity Clustering

Without context and categorization, excellent input tends to never make it beyond words on a page -- or Post-Its. That’s what Affinity Clustering moves us toward. This is a visually graphic exercise that allows for the assimilation of large amounts of information.

Affinity Clustering is a collaborative activity, that occurs within a facilitated Human-Centered Design Workshop, with all participants contributing their thoughts on how and where to categorize the Rose-Thorn-Bud input. Since it was not feasible to move to this phase from the confines of the Promet Source booth at DrupalCon, we sought the expertise of our in-house Drupal experts and came up with the following categories

Back End Front-End Design Content Ease of development - Rose Accessibility out of the box - Rose Connecting and referencing data and content with Taxonomy - Rose Ease of extension (modules for everything) - Rose Lots of interchangeable pieces/modules - Rose Content modeling - Rose Adoption of Symfony - Rose Flexibility (2 Post-Its) Rose Quick publication of new information - Rose Simple to use - Rose Drupal makes information pretty - Rose Content Editor Experience - Thorn Trusted information can be pushed out programmatically and systematically - Rose Allows for all sorts of content types - Rose Flexibility - Thorn Documentation - Thorn (2 Post-Its) Layout tough to perfect - Thorn High Learning Curve - Thorn Too many options - Thorn High Learning Curve - Thorn Admin UI is not intuitive to content editors - Thorn Security is really hard for small projects - Thorn Templates for quickly building mini-sites - Bud Admin UI - Thorn Composer vs. Tar install; mismatched workflow - Thorn Layout Manager - Bud JSON API with Content Moderation - Bud Scattershot dev -- unified direction - Thorn Accessibility! - Bud   Address low-hanging fruit (media integration) - Thorn Menu System APIs - Bud   Media integration - Thorn     Improving documentation - Bud     Migration to D8 - Bud     High Learning Curve - Thorn     Cutting edge - Rose     Drupal requires a lot of back-end work to make performance better. It’s heavy and slow. - Thorn     Decoupled architecture opportunities - Bud     Media integration - Bud     GraphQL in Core - Bud    
Three groups of pink, blue and green post-its to illustrate affinity clustering


 

To summarize, the front-end category had a lot of roses indicating that the overall sentiment is positive, despite a few challenges. This is the kind of revelation that would be readily apparent to participants in a Human-Centered Design workshop -- simply due to a preponderance of pink Post-Its. The content category, on the other hand, was dominated by thorns. In a workshop, the majority of blue Post-Its would quickly clarify the relative dissatisfaction concerning content. The back-end category resulted in a true mix of Roses, Thorns, and Buds, a fact that would certainly spark continued conversation among participants.
 

This is just a start! 

For those of you who were not able to attend DrupalCon 2019, or who did not make it over to the Promet Source booth or who have had new thoughts subsequent to your participation:

  • What would you add to the above Rose-Thorn-Bud list? 
  • Are there categories that you would like to add to the Affinity Clusters? 
  • How does the above align or not align with your experience?

Indicate your comments below or contact us today for a conversation about leveraging Human-Centered Design techniques to Ignite Digital Possibilities within your organization. 

Apr 25 2019
Apr 25

At DrupalCon2019 earlier this month, Promet Source tapped the collective brainpower of attendees with a Human-Centered Design activity that asked this question:

“What are the key advantages, the main challenges, and the emerging opportunities of Drupal as an Information delivery platform?”

Within the context of a Human-Centered Design workshop, big questions such as this one are positioned within a “Rose-Thorn-Bud” framework. Participants are given brightly colored Post-It notes and asked to write everything that they view as an advantage or a plus on a pink (Rose) Post-It. Challenges or downsides are to be written on a blue Post-It (Thorn). Green Post-Its are for collecting input on potential or emerging for opportunities (Bud). 

15 Minutes of Focus

A setting such as DrupalCon, in which participants are needing to constantly shift their attention as they take in tons of information from all sides, is vastly different from a Human-Centered Design Workshop, in which the attention of all participants is laser-focused on a series of activities that build upon the insight and information gathered. DrupalCon, however, represented such a high degree of energy and enthusiasm, that we were able to count on considerable contributions throughout the event. 

The first phase of the Rose-Thorn-Bud activity is simply collecting input. The next phase, called “Affinity Clustering,” is for purposes of reordering and analyzing the input according to agreed-upon groupings. The use of different colored Post-Its is particularly useful in revealing that within a particular category there might be a mix of Roses, Thorns, and Buds, or primarily one or the other, or in some cases, participants may differ as to whether the same issue constitutes a Rose, a Thorn, or a Bud. 

This is an excellent exercise for revealing patterns, surfacing priorities, bringing order to disparate complexity, and sparking productive conversation.

DrupalCon Participants Rank Drupal

Let’s look at the input gathered during the first phase of this activity where we collected responses to the question concerning of key advantages (Rose), main challenges (Thorn), and emerging opportunities (Bud) of Drupal as an information delivery platform.

Rose Thorn Bud Ease of development Documentation (2 Post-Its) Templates for quickly building mini-sites Ease of extension (modules for everything) Too many options Migration to D8 Cutting edge Security is really hard for small projects Decoupled architecture opportunities Connecting and referencing data and content with Taxonomy Admin UI is not intuitive to content editors Accessibility! Adoption of Symphony Admin UI Improving documentation Lots of interchangeable pieces/modules Composer vs. Tar install; mismatched workflow Media integration Flexibility (3 Post-Its) Scattershot dev -- unified direction GraphQL in Core Accessibility out of the box Address low-hanging fruit (media integration) Menu System APIs Content modeling Media integration JSON API with Content Moderation Trusted information can be pushed out programmatically and systematically Content Editor Experience Layout Manager Simple to use Layout tough to perfect   Drupal makes information pretty Flexibility   Allows for all sorts of content types High Learning Curve                (3 Posts-Its)   Quick publication of new information Drupal requires a lot of back-end work to make performance better. It’s heavy and slow.  

 

Next Step: Affinity Clustering

Without context and categorization, excellent input tends to never make it beyond words on a page -- or Post-Its. That’s what Affinity Clustering moves us toward. This is a visually graphic exercise that allows for the assimilation of large amounts of information.

Affinity Clustering is a collaborative activity, that occurs within a facilitated Human-Centered Design Workshop, with all participants contributing their thoughts on how and where to categorize the Rose-Thorn-Bud input. Since it was not feasible to move to this phase from the confines of the Promet Source booth at DrupalCon, we sought the expertise of our in-house Drupal experts and came up with the following categories

Back End Front-End Design Content Ease of development - Rose Accessibility out of the box - Rose Connecting and referencing data and content with Taxonomy - Rose Ease of extension (modules for everything) - Rose Lots of interchangeable pieces/modules - Rose Content modeling - Rose Adoption of Symfony - Rose Flexibility (2 Post-Its) Rose Quick publication of new information - Rose Simple to use - Rose Drupal makes information pretty - Rose Content Editor Experience - Thorn Trusted information can be pushed out programmatically and systematically - Rose Allows for all sorts of content types - Rose Flexibility - Thorn Documentation - Thorn (2 Post-Its) Layout tough to perfect - Thorn High Learning Curve - Thorn Too many options - Thorn High Learning Curve - Thorn Admin UI is not intuitive to content editors - Thorn Security is really hard for small projects - Thorn Templates for quickly building mini-sites - Bud Admin UI - Thorn Composer vs. Tar install; mismatched workflow - Thorn Layout Manager - Bud JSON API with Content Moderation - Bud Scattershot dev -- unified direction - Thorn Accessibility! - Bud   Address low-hanging fruit (media integration) - Thorn Menu System APIs - Bud   Media integration - Thorn     Improving documentation - Bud     Migration to D8 - Bud     High Learning Curve - Thorn     Cutting edge - Rose     Drupal requires a lot of back-end work to make performance better. It’s heavy and slow. - Thorn     Decoupled architecture opportunities - Bud     Media integration - Bud     GraphQL in Core - Bud    
Three groups of pink, blue and green post-its to illustrate affinity clustering


 

To summarize, the front-end category had a lot of roses indicating that the overall sentiment is positive, despite a few challenges. This is the kind of revelation that would be readily apparent to participants in a Human-Centered Design workshop -- simply due to a preponderance of pink Post-Its. The content category, on the other hand, was dominated by thorns. In a workshop, the majority of blue Post-Its would quickly clarify the relative dissatisfaction concerning content. The back-end category resulted in a true mix of Roses, Thorns, and Buds, a fact that would certainly spark continued conversation among participants.
 

This is just a start! 

For those of you who were not able to attend DrupalCon 2019, or who did not make it over to the Promet Source booth or who have had new thoughts subsequent to your participation:

  • What would you add to the above Rose-Thorn-Bud list? 
  • Are there categories that you would like to add to the Affinity Clusters? 
  • How does the above align or not align with your experience?

Indicate your comments below or contact us today for a conversation about leveraging Human-Centered Design techniques to Ignite Digital Possibilities within your organization. 

Apr 25 2019
Apr 25

Earlier this month at DrupalCon Seattle, the Drupal Community Working Group (CWG) announced plans to begin the process of reviewing the Drupal Code of Conduct. The Drupal Code of Conduct, which is maintained and upheld by the CWG, governs interactions between community members. It is distinct from the DrupalCon Code of Conduct, which governs interactions at DrupalCon and other in-person events and is maintained and enforced by Drupal Association staff.

The current Drupal Code of Conduct was adopted in 2010 and last revised in 2014. Over the last two years, the CWG has received consistent feedback from the community that the Drupal Code of Conduct should be updated so that it is clearer and more actionable:

  • A set of recommendations for improving the Code of Conduct was shared as one of the high-level findings from the community discussions facilitated by Whitney Hess in April and May 2017.

  • 63% of respondents to a community governance survey held in July 2017 said that updating our codes of conduct should be prioritized as part of the process of overhauling community governance.

  • Improving the community code of conduct so that it is clearer and more actionable was also one of the key takeaways of the community governance discussions that occurred in the fall of 2017.

Over the last year, the CWG has been working on implementing changes to its charter to make the group more accountable to the community-at-large and provide a sustainable foundation for future growth. Now that those changes are complete, the CWG is now able to shift focus to the process of reviewing and improving the Drupal Code of Conduct.

To that end, we have set up a survey at https://forms.gle/rhKHorXXnp3wPQn2A for community members to share their thoughts, both about the current Code of Conduct and the next steps in the process. The results of this survey will help the CWG determine how, when, and who is involved in reviewing and updating the Code of Conduct.

We will be accepting responses through May 31, 2019, and we encourage as many community members to participate as possible.

Apr 25 2019
Apr 25

Every year, the Drupal community gathers in a new city for the annual DrupalCon show. More expansive than regional camps, DrupalCon gives attendees from all around the world the chance to collaborate and learn from each other face-to-face.

driesnote confirms drupal 7 support until 2021 

The expansive audience of the convention makes it an ideal venue for Drupal creator Dries Buytaert to address the community. In his “Driesnote,” Dries usually focuses on highlights from the past year and upcoming developments for the platform. As such, the upcoming Drupal 8.7 update got a lot of spotlight, as did the efforts of star contributors working to make Drupal so robust. And with Drupal 9 coming in the not-so-distant future, Dries’ address this year demonstrated the advances being made at the cutting edge of Drupal.

While Dries focused on the present and future benefits of Drupal 8, he didn’t neglect users still on Drupal 7. First launched in 2011, Drupal 7 remains the most widely deployed version of the platform, even though Drupal 8 was released in 2015. The reasons for the relatively slow adoption of Drupal 8 are numerous, ranging from incompatible modules to the standard costs of a redesign. Dries understands that, and in this year’s Driesnote, offered words of support to those who have not made the change.

“There’s no need to panic,” Dries said. Indeed, he said that Drupal 7 will continue to be officially supported for over two-and-a-half years, until November 2021. At that point, Drupal 7 will reach its end of life.

What happens in November 2021, you might ask? We’ve covered the upcoming Drupal release pipeline in an earlier blog post, but the major driving force behind this date is Symfony 3. A major dependency for Drupal 7 and 8, when Symfony 3 is sunset in November 2021, it will expose sites running on D7 and D8 to security threats. Because Symfony 3 is also a major dependency for Drupal 8, most Drupal users will need to upgrade to Drupal 9 before November 2021.

As Dries said, though, there’s no need to panic if you’re on Drupal 7. This end-of-life date is still over two years away, giving you plenty of time to consider your options and decide how to move forward. In the meantime, Drupal 7 will continue to be supported by both the open-source community and agencies like Duo. 

If you’re running Drupal 7 and want to get a head-start, there are a few options. Upgrading to Drupal 8 is the most logical route, as it the direct successor to D7. The Driesnote also noted that more and more modules that D7 users are accustomed to using are now functional in D8, which will make the transition smoother. The big draw of this path, however, is the ease with which you’ll be able to upgrade to Drupal 9. Drupal 8 is built on the same codebase as D9, which means that an upgrade between those two systems will not require a major design or development overhaul.

Another option for D7 users is to bypass D8 altogether. Jumping from Drupal 7 to Drupal 9 would be more akin to a traditional redesign, both in terms of the work involved and the cost. That being said, even though moving from D8 to D9 will be relatively easy, it will still require some effort. Going from D7 to D9 streamlines the process, requiring only one comprehensive upgrade.

Whichever path you take, rest assured that there is time. Dries acknowledges that there are still many users who enjoy the benefits of Drupal 7, and this year’s Driesnote signifies that this crowd hasn’t been forgotten. While ever Drupal 7 site will eventually need an upgrade, users can rest easy knowing that they have plenty of time.

When the time comes to make a decision about upgrading, Duo can help you chart your journey ahead. Whether you want to stay on Drupal 7 or can’t wait for Drupal 9, we’re committed to delivering the best possible version of your site.

Explore Duo

Apr 25 2019
Apr 25

WordPress and Drupal

WordPress and Drupal, two of the most popular content management systems that are currently on the market. So, in case you're wondering what content management system to pick, keep in mind that both of them serve different needs. The decision that you are going to take is going to be based off your individual needs for your business or yourself. In this article, I am going to aim to make it easier for you to take a decision, by presenting information about both systems. With the help of this article, you should be able to take an informed decision when it comes to making a choice between WordPress and Drupal.

Ease of Installation

WordPress vs Drupal Installation

Left: WordPress's famed 5 minute installation. Right: Sooperthemes custom Drupal distribution with Glazed theme and Glazed Builder included.

WordPress is famed for the ease of their installation process. While they claim that the installation process takes only 5 minutes, you have to take this with a grain of salt. Sure, for somebody who is highly experienced in WordPress, an installation might take 5 minutes. However, for a total beginner this might take longer. 

Drupal on the other hand is a little bit more tricky when it comes to the installation. There are more steps and clicks involved. The experience is very similar to installing WordPress, there is just more of it. Drupal has one advantage over WordPress: Distributions. Distributions are packages of features, design, and demo content that let you install a full functional turn-key website just by running the installer. At sooperthemes.com all our demo websites can be reproduced in your own environment in just about 10 minutes with our custom Drupal distributions.

Functionality

Module and themes statistics for WordPress and Drupal

WordPress is an easy and intuitive easy to use open source CMS. One of the reasons WordPress is simpler is that is has fewer features and options compared to Drupal, so there is a trade-off going on here! Although there are a number of extensions that can make up for what WordPress is lacking, the more complex a website becomes, the harder it is for WordPress to be able to manage the website properly.

Now, when it comes to functionality, Drupal is considered to be highly functional. It was designed from the beginning to be able to meet the users needs as well as software developers' needs. Through modules, Drupal is able to fulfill the many needs a user has for developing a website. On top of that, Drupal is able to handle complex websites in a without slowing down the user experience, thanks to its advanced caching layers. Functionality is one of the areas where Drupal is shining.

Here are some of the advanced built-in features inspires some to choose Drupal over WordPress:

  • Custom content types and block types, equipped with menu different field types for your content
  • Multilingual is both built-in and more advanced than in most other CMS
  • The views module lets you create custom content listings, with support for fields, tables, portfolio grids, external data sources, and much more. It's a beast and a big part of why Drupal got popular to begin with.
  • Fine-grained permissions for your custom user roles
  • Advanced API's for batch processing, REST services, and many more advanced programming concepts 

Ease of use

WordPress is well known for its ease of use. The dashboard and layout are intuitive and easy to use. This means that even a beginner can make good looking websites. However, it gets harder as the complexity of the website increases.

Compared to this, Drupal is not so beginner friendly. Since Drupal is the more complex CMS from the two, there are more tricks to be learned and discovered when working in it. Drupal has been criticized in the past as having a steep learning curve. Indeed, it is harder to master, however, it also is capable of handling more complexity and it is able to better cater and fulfill the needs of its users.

Fortunately, there are some options you have to make Drupal more pleasing to your content, communications, and marketing staff. For exampel you can simplify their toolbars and menus by limiting their permissions. Sooperthemes also provides a visual drag and drop editor: Glazed Builder provides an entirely new user experience, letting your users design and create pages and interactive content in the frontend, away from Drupal's forms and administrative tools.

How secure are WordPress and Drupal?

Security Officers

Security is one of the most important things when running a website with important user information on it. In case of a security vulnerability of the CMS, a hacker can exploit said vulnerability and get the important user information off the website, such as usernames, passwords, emails, credit card information, etc. This is why security is so important for a content management system.

Since WordPress is the most used content management system to date, it is also bound to be the target many cyber attacks. When it comes to security, WordPress has three components, the core, plugins and themes. The core is always watched by cybersecurity experts who are continuously working identifying and patching vulnerabilities. The plugins and themes are reviewed and patched by the community members, which means that there is an increased chance to suffer a malicious attack by installing a certain plugin or theme that has an undiscovered vulnerability.

Drupal is recognized as the most secure content management system that is currently on the market. This is partly because the security team works on spotting vulnerabilities in the core of Drupal. On top of that, before a module is released to the general public, the code is usually examined for vulnerabilities. After being released to the general public for review, the contributors are then again checking the code for vulnerabilities that can be exploited by a hacker. This measures add up to an increased security compared to its competitors. This is why a lot of big names have trusted Drupal with the security of their websites. Examples are UNESCO, The US Senate, Fox News, Harvard University and many more.

WordPress vs Drupal Costs

WordPress is free to install and use. You can have the option to use WordPress.com, offers both paid plans and a free plan that shows ads on your website. Since WordPress is open source, you can download the software for free if you intend to host it yourself. Hiring a developer to build your website will also have to be taken into account when talking about costs. Generally speaking, hiring a WordPress developer is cheaper than hiring a Drupal developer, simply because a Drupal developer is harder to come by.

Drupal is also free to use and install, because it is an open source software. For a beginner, it is harder to make full use of the features that the CMS has to offer, especially when building a professional website. Depending on the needs of the customer, the website being built might have different degrees of complexity. Some of the most demanding websites are ecommerce websites.

Typical WordPress vs Drupal Pricing

Typical WordPress websites will be informational business websites, or simplistic community platforms based on popular themes and plugins, and would cost anywhere between 500,- USD, and 20,000 USD on the more complex and customized end of the spectrum. Most Drupal agencies aim to take on projects starting at 20,000 USD, and love to build the most complex online platforms, with contracts often running into the hundreds of thousands. These platforms could be so called "Site Factories" where a single platform will be responsible for spawning hundreds of websites, or it may be large content platforms for governmental bodies where hundreds of thousands of content items are managed.

That said, once you've mastered Drupal nothing stops you from making simplistic content websites with it. In fact, with the products and demo websites provided by Sooperthemes, it is very much possible to create a complete business websites within one day, and within a most humble budget.

Conclusion

In conclusion, WordPress is a great CMS for beginners and people that are not demanding complexity from their CMS. When it comes to security, although WordPress has good security practices in place, it is the most widespread CMS, making it a great target for hackers.

Drupal on the other hand, while not as easy to pick up as WordPress, it compensated with the complexity that it can handle. So, for people or organisations that require big websites, Drupal is the way to go. Furthermore, Drupal is perfect for this group of people, simply because it offers a great security.

So before choosing the right CMS for you, you have to be aware of the needs that have to be met by the CMS. Only after that can you take a decision.

Apr 25 2019
Apr 25

Do you need to set up a custom image carousel? Or maybe one slider with a teaser, displaying content from your website? What are the best Drupal 8 slideshow modules to consider for implementing and maintaining your slideshow?

And out of the box options are... out of question, right? Your requirements are too specific for that.
Maybe you need:
 

  • a certain number of slider items
  • different arrow designs
  • to display the image slideshow on other pages, too, not just on your homepage
     

With such flexibility and customization requirements in mind, we started digging into the “pile” of Drupal 8 image slider modules.

And here are the 4 ones that we've selected, those with the best reviews in the Drupal community:
 

If it's a fully customized slideshow that you want to implement, Views Slideshow's the module you need.

It'll “spoil” you with tons of add-ons to select from and give your unmatched flexibility. From:
 

  • titles
  • to images
  • to teasers of the last X blog posts on your website
     

… you get to include any type of items in your carousel.

Furthermore, it's jQuery-powered and it allows you to configure different settings for each one of the views that you'll create.

Note: oh, yes, you'll need to be pretty comfortable using Views in order to leverage this module at its full capacity.

Some of its key features:
 

  • your slider can include and display the latest products added to your eCommerce website 
  • you can set up a news item slideshow (the latest X news articles published on your Drupal 8 website)
  • from the latest X blog entries to the latest videos, testimonials, forum posts etc., you're free to include any type of content in your slider...
     

Now, here's a very brief step-by-step on how you can set it up and use it to create your slideshow:
 

1.1. Install and enable the module

Once you've downloaded it from Drupal.org, installed and enabled it, make sure to download its corresponding ZIP folder on Github, as well.

Give your folder a new name  — /jquery.cycle/ — then start uploading all its files to the 
/libraries/ folder in the root of your Drupal website.
 

1.2. Set up your view

Time to create your slideshow now. For this, just go to Structure> Views>Add new view 
 

1.3. Publish your slideshow block

For this, go to Structure>Block layout and select the region on your website that you want your slider to get displayed on.
 

1.4. Create a new image style

As you can see, the images included in your slideshow are currently of different sizes. Therefore, they're not perfectly adjusted to fit the block region that you've chosen for your slider.

To solve this inconvenience, just go to Configuration>Image styles>Add Image style. 

There, you can create a new style, that will be shared by all the images included in your slideshow.
 

2. Slick Slider, One of the Most Popular Drupal 8 Slideshow Modules

Another one of Drupal's modules for creating custom image slideshows, that ships with a heavy load of options. Powerful and flexible... what more could you ask for from your slider solution?

Capitalizing on Ken Wheeler's Slick carousel, working perfectly with Views and fields, the Slick Slider module:
 

  • enables you to set up a slider including multiple views, value fields and paragraph types
  • comes with image, audio and video support
  • supports complex layouts, as well
     

Some of its key features:
 

  • you're free to enable/disable the swipe functionality
  • it's responsive (scales along with its container)
  • some of its layouts are CSS-built
  • it's designed to work with Field collection, Media, Views, Image (and also to work perfectly fine with none of these modules)|
  • it allows you to configure your own “slide selecting” dots, the arrow keys and your slider's navigation, as well
  • it provides modular and extensible skins
  • you get to choose how you want your slideshow to be scrolled: swipe, desktop mouse dragging, auto scroll, mouse wheel scroll...
     

Another one of those Drupal 8 slideshow modules that gets the best reviews.

Here's why:
 

  • it leverages the Owl Carousel slider built by OwlFonk.   
  • it, too, empowers you to customize your image slideshow; in this respect, it ships with a myriad of customization settings
  • it's responsive
  • it capitalizes on a small ecosystem of submodules: Administration UI, Views Style, Field Formatter
     

Some of its key features:
 

  • from customizing your events to styling your controls, it allows you to tailor your image slider to suit all your needs
  • it supports multiple sliders
  • touch events
     

A simple module to consider each time you need to display a group of images in a compact way on your website. It even allows you to set the number of items to be included in your carousel...

Speaking of which, you should know that jCarousel, as its name says it, allows you to leverage the jCarousel jQuery plugin.

For this, it ships with a developer API for other modules to access. Furthermore, it integrates with Views, so you can easily turn any list of images (or other type of content) into a slideshow...

Some of its key features:
 

  • jCarousel field formater
  • out-of-the-box Views support
  • API for using jCarousel without Views
  • a collection of modern skins to choose from
  • Carousel pager that enable users to jump between multiple sliders
     

The END!

These are the first Drupal 8 slideshow modules to consider when looking for the best method for setting up your custom image/content slider.

Packed with tons of customization options, feature-rich and powerful, these 4 solutions for creating image carousels in Drupal 8 should be on your short list when you start looking beyond the out-of-the-box options for putting together a slider...

Apr 25 2019
Apr 25

My former Drupal mentor, László Csécsy (boobaa) often says "If there is a task that you need to perform more than once and it can be easily automated then it should be automated."

We would like to introduce a new tool called Rector that could speed up an upgrade process and can reduce upgrade costs. We run a proof of concept for the possible use cases in which Rector can be beneficial for Drupal developers - including but not limited to the automated update to Drupal 9.

Drupal 9 is coming and according to the promises, the upgrade from Drupal 8 will be easy because Drupal 9 is built in Drupal 8.

What does "the upgrade to Drupal 9 will be easy" promise means precisely for developers? From the drupal.org post, Plan for Drupal 9:

Drupal 9 will simply be the last version of Drupal 8, with its deprecations removed.

Releasing Drupal 9 will only depend on removing deprecated functionality and upgrading Drupal's dependencies, such as Symfony.

The Drupal 8 change records show numerous classes and methods marked as "deprecated" in every release.

Depending on the size of a module's or a site's codebase, removing all deprecated APIs can require from a couple of development hours up to months. The process can be postponed until Drupal 9 is out, or it can happen in smaller batches after every Drupal 8 minor release. Either way, keeping a codebase up to date and ready for Drupal 9 upgrade requires resources.

Identifying deprecated API usages

Yes, there are already several different ways for identifying deprecated API usages in a Drupal 8 codebase. For example, if automated tests are available on a project, developers can run deprecation testing on the codebase. Other alternatives are static code analyzers like Matt Glaman's excellent PHPstan Drupal integration or PHPStorm's built-in code inspection.

PHPstan found deprecated API usages

All these tools are great, but they can only tell what deprecated API usages a codebase contains. They leave the actual work to developers: having to fix these depreciation issues one by one.

Applying the same changes several times is definitely a repetitive task. There is a PHP library that can help to automate these kinds of upgrade processes, it is called Rector.

What is Rector?

Rector is a tool created by Tomas Votruba and according to its description on Github:

Rector is a reconstructor tool - it does instant upgrades and instant refactoring of your code.

Why is Rector awesome? Because it:

  • uses AST (Abstract Syntax Tree) to parse PHP code instead of tokens 1,
  • comes with built-in automation for upgrading to new PHP- or framework versions (ex.: Symfony, Laravel, etc.),
  • can also automatically migrate your code from one framework to another or one test runner to another,
  • can improve your code with automated code style and code quality fixes,
  • is open-source.

If you would like to learn more about Rector before you continue, Tomas created an introduction series:

Introducing Rector for Drupal 8

Rector already supported various frameworks, but it did not have support for Drupal 8 yet. This is the reason why Rector for Drupal 8 was born.

The Rector for Drupal 8 0.1.0 development version provides examples for the following possible use cases.

Instant code quality fixes and PHP 7.1 upgrade

Rector comes with numerous rector rules. Some of these rules are framework specific but most of them can run on any PHP code. The rules can be organized into prepared sets. Rector for Drupal 8 contains two prepared sets with all the built-in rectors that work on Drupal 8 codes. The drupal8 set only contains rectors that work on all PHP versions, including < PHP 7.0 versions that are still supported by Drupal core. For example: enforcing strict value comparison, normalizing conditions, removing dead code, etc. The drupal71 instantly updates any PHP 5 code to PHP 7.1 in a way that it still follows the Drupal 8 coding standards. I may include rectors in the future that make changes that require PHP 7.1 or above, ex.: add type to functions and methods parameters, etc.

Autocorrect framework specific mistakes and ensure best practices

All frameworks have their own list of best- and bad practices, so does Drupal 8. In Drupal 8, it is a best practice to use "const" instead of "define" to define constants, because it is better for performance. The DefineToConstRector can fix all constant definitions according to this best practice. As an example of bad practices, there are several traits in Drupal 8 that define a property and method with the same name. Probably the MessengerTrait is one of the most commonly used trait in Drupal core and contrib modules. Let's use this as an example. The $this->messenger property is not set by default, its value should be initialized in a class' constructor with Dependency Injection. If the property is set, then the $this->messenger() method calls the injected Messenger service. If not, then it calls the global Drupal static service container, retrieves the Messenger service from that and sets the property's value. The problem with this default behavior is that it hides an issue caused by the uninitialized property. If the property is not initialized and a valid method is being called on the property, like $this->messenger->addStatus() it causes a WSOD. Sadly, issues like this only reveal themselves in runtime. The only safe way to avoid this kind of issue is always using the method instead of the property. The PropertyToMethodCallRector rector can automatically fix any code from this kind of common pitfall.

Get rid of deprecated code without writing code

Because Tomas already implemented various kinds of automated code upgrades and framework migrations, Rector already contains rectors that can be leveraged to remove deprecated Drupal 8 API usages from a codebase. They only need to be configured. A built-in rector, called MethodNameReplacerRector, can automatically replace all usage of deprecated methods that used to generate a URL or a link for an entity. This rector can also ensure the entityTypeManager object is used everywhere instead of the deprecated entityManager object. Another common change in Drupal 8 core API is that global constants get replaced with class constants. The ConstToClassConstFetchRector rector that I created can replace all usage of a deprecated global constant with the new class constant.

Architectural refactoring

The majority of Drupal 8 API changes are more complex than simple renames. Classes, interfaces, traits, and methods get deprecated and replaced by new ones. These are the types of architectural changes where Rector can demonstrate its real power. The deprecation of the UrlGeneratorTrait is one of the best examples for a significant architectural change. A trait with a protected property and non-static methods got replaced with a class with static methods. Properly removing UrlGeneratorTrait from a Drupal 8 codebase is a risky task because several steps need to be performed and therefore it requires great concentration from a developer. However, with Rector the complete replacement process can be automated, this is what UrlGeneratorTraitRector demonstrates.

Demo time!

I configured Travis CI to run Rector for Drupal 8 on several Drupal modules. The test builds include Drupal core modules (node, system) and contrib modules like Commerce or the Apigee Edge module. The following screenshots showcase some of the fixes that Rector for Drupal 8 applied on these modules.

Rector replaced method calls to deprecated methods from the UrlGenerator trait and also removed dependency to the trait:

Rector replaced one of the most commonly used deprecated function in contributed modules - drupal_set_message():

Rector eliminated a possible bad flow caused by calling a method on a possible null property:

Rector replaced deprecated global constants with the new class constants:

What is next?

We hope this blog post gave you a good idea about the capabilities of the Drupal8-Rector project. Undoubtedly, its primary contribution to the Drupal community is the automated or at least semi-automated deprecated API removal from Drupal core and from contrib modules. The Rector library provides the framework and some good examples, but it requires a community effort to build new rectors or configure existing ones to address Drupal 8 core deprecations. There is still much work to do until all deprecated APIs since Drupal 8.0 are covered.

Please contribute to the Drupal8-Rector project if you see the potential in this proof of concept.

Apr 24 2019
Apr 24

alt=""

We’re using Drupal 7, should we migrate to Drupal 9? What are the advantages of moving to Drupal 8 now versus waiting until 9? How do we prepare for Drupal 9?

We work through these questions with our client partners and the community on a regular basis. If your organization is using Drupal 7 or Drupal 8 today, then below is useful information that will help with your migration plans to Drupal 8 and 9. 

TL;DR -- Drupal 9 is being built in Drupal 8 and is backwards compatible. If you’re on Drupal 7, don’t wait until Drupal 9 to begin your upgrade. There is no value waiting on Drupal 9 and there are plenty of advantages your organization will benefit from with a migration to Drupal 8 including; increased security, simplified upgrade path to Drupal 9, improved performance, and a better editorial, developer, and customer experience. In short, you’ll miss competitive advantages for the next 2 years if you wait for Drupal 9. If you’re already using Drupal 8, you’re well on your way to the benefits of Drupal 9. Keep Drupal 8 up to date to mitigate security risks. 

Drupal 7 End of Life

As of April 7, 2019, there were over 290K websites using Drupal 8. With our migration of Manhattan Associates, Olympus, Pegasystems, and Guardian Insurance websites (to name a few) to Drupal 8, Mediacurrent is an industry leader on understanding, planning, and executing migration projects.

“End of Life” is the date when the Drupal community officially stops supporting Drupal 7. Drupal 7’s end of life has been extended to Q4 2021, giving you time to prepare your organization for change. 

drupal8timeline
Source: Dries Buytaert, How to Prepare for Drupal 9 

How Drupal 7 End of Life Impacts My Website?

When Drupal 7 support ends, there will be no more Drupal core updates to Drupal 7 - even for critical security issues. The contributed modules that power your site will also no longer be actively tested and reviewed, patches and security evaluation will depend on your internal resources or partners.  

alt=""

Average Cost of a Security Breach

One recent study found, “The global average cost of a data breach to a business is $3.86 million, and in the U.S. the average price tag swells to $7.91 million per breach...” 

And a study from 2018 found 63% of hacked sites running Drupal, had outdated versions when hacked.  Ensuring that you manage the security implications of Drupal 7’s End of Life is vital to the health of your organization.

Migrating to Drupal 8 is More Than Security

"Drupal 8.6 is a significant upgrade because of its emphasis on ease of use. This version levels up the customer experience, making it easier and less expensive to migrate from older versions, easier to install, as well as easier for marketing teams to deliver impact, faster. With a highly engaged community focused on delivering features that make customers shine, I’m excited about this release and what is on the horizon for Drupal."

Megan Sanicki, Executive Director of the Drupal Association

Check out this Acquia and Mediacurrent webinar for more info on the benefits of Drupal 8.

benefits of Drupal 8

Learn to Love the Upgrade Path

Upgrading your website is the opportunity to revolutionize the way you think about the web as a business tool. If you have a Drupal 7 site, you’ve most likely been on it for a few years. How many little usability improvements have you considered in that time?

  • Is my design dated? 
  • Do my editors like the experience? 
  • Is my site responsive? 
  • Does my site build reflect modern practices in SEO, accessibility, and user experience?

An upgrade gives your organization the opportunity to reexamine how your implementation of Drupal, strategy, and design while reducing security vulnerabilities, costs, and improving competitive advantages. 

With Drupal 8, you can take advantage of its innovation today as well as it’s built-in upgrade path to Drupal 9, so start planning a migration path internally as well as with your partners.

Should We Wait for Drupal 9?

It’s essential to know a migration to Drupal 8 or 9 or another CMS is inevitable if you’re on Drupal 7 today. Pausing your migration until 9 (release date June 3rd 2020) doesn’t provide long-term value. Your organization will continue to miss out on the features, benefits, and expertise you’ll find with Drupal 8 as well as its simplified upgrade path to Drupal 9.

Drupal 9 is being built in Drupal 8 and is fully backwards compatible. Drupal founder Dries Buytaert wrote, “With the release of Drupal 8, we moved Drupal core to use a continuous innovation model. Rather than having to wait for years to get new features, users now get sizable advances in functionality every six months.”

A Drupal 9, 10, 11...upgrade will not be the same mountain from previous versions of Drupal given Dries agile model for Drupal development and release model. It more closely aligns today with a typical saas release plan. To take advantage of the full potential of Drupal your best option is upgrading to Drupal 8 with the help of an experienced agency partner. When Drupal 9 rolls out, you’ll be able to sit back, relax, and take immediate action on the update.

What Are My Next Steps?

Mitigating risk is simple with an experienced partner. We advise our clients to take the following steps:

  1. Ensure your website will be secure after Community Support ends. You can do this by developing an internal plan to monitor future Drupal 7 security releases, or engaging with a hosting provider like Pantheon, or agency partner, like Mediacurrent, to cover you while you plan and execute the move off of Drupal 7.
  2. It’s likely the time is now for a reassessment of how you use the web. Partnering with an expert partner like Mediacurrent will help you to reassess your website plans, determine if your Digital and Design strategies are effective, and ensure your next platform serves your needs, customer needs, and can adapt in the future. Check out 20 Things to Know Before Choosing a Digital Partner for your Site Migration for help. 
  3. Once you have identified the correct platform, plan and execute your migration. By taking care of security first, and securing the right partner, you can take the time to correctly plan and build your next Digital Platform in Drupal.

Migrating from Drupal 8 to Drupal 9

Drupal 8’s end of life is also November 2021. Updating from Drupal 8 to Drupal 9 is just that -- an update. If you’re on Drupal 8 today, keep Drupal 8 up to date, and be prepared to make the switch by including it as a part of your 12-month plan.

Final Thoughts

If you’re on Drupal 7, then you’re okay for now, but the sooner you plan for the change the more prepared your organization will be to create and show value from your Drupal investment.

However, transitioning to Drupal 8 or Drupal 9 comes down to a number of factors and is not a quick decision. Do the due diligence work of understanding the requirements and needs of your website and your customers, then consider that information with the reality of your budget, capabilities, and timeline. We work through these questions with our clients on a regular basis and the reality is the answer is unique to every organization.

To learn more about our process and how to successfully navigate these waters, feel free to contact us directly.

Apr 24 2019
Apr 24

At the Lab section of our name: "Ramsalt Lab" we tried to put Drupal on steroids to test and see how much can we get out of Drupal performance wise and we will now publish a series of blog posts that together make a coherent How-to guide on Drupal performance.

Experience, general web performance and Drupal optimization articles

For gathering all the data in this document, we did some heavy research. We have studied a lot of general website performance, Drupal optimization articles and we have done a lot of tests and put in the organization's over 100 years of total Drupal experience into play. A highlight that we would like to point out is this great presentation in DrupalCon 2018 Nashville that you can download its pdf and take a look for yourself.

Chapters in the "Faster Drupal" blog series

As a starting point, note that it’s a much easier bet to start with a Drupal 8 installation instead of Drupal 7 since you can get much better results built-in. But in many cases, the current project is already on Drupal 7, so we try to cover both cases. Some of the items are, to say the least, “Obvious” but this list is supposed to be as coherent as possible. For most of this, we consider you have full access to your server and can set up the things listed here, so based on that, let’s kick things off with Caching. Then for the second blog article, we will look into asset distribution, CDN, compression, and aggregation. Thirdly we’ll be taking a look at one of the greatest enemies of performance: Images! Fourth step we will cover some techniques for Database/Web Server Tweaks & Improvements and lastly some general tips and HowTo’s for optimizing theming in Drupal.

Improving Caching in Drupal:

  1. Use Redis: Integration of Drupal with the Redis key-value store. It provides cache, lock, and path optional backends
    Redis Drupal module
    Not happy with Redis for some unknown reason? Try Memcache
    For a simple drupal installation, we can take advantage of these two modules:
    Drupal Memcache + Drupal Memcache Storage modules

     

  2. Use Varnish Cache: If you want to improve the performance of your website without using Varnish is like trying to cook without a pan! Varnish is an advanced and very fast reverse-proxy system. In the common configurations Varnish will handle all caches regarding anonymous page-views, and sometimes even static files and pages for logged in users via per-role-caches and ESI (Edge Side Includes) for your site.
    Varnish Drupal module (not required for caching, but essential for cache purging).
    But hey I’m on shared hosting and don’t have access to any fancy Varnish HTTP cache thingy? Well then use Boost module
    Drupal Boost module

     

  3. Take advantage of PHP Cache (APC): With APC caching your PHP script executions can run more efficiently, by cutting down on dynamic PHP executions.
     

  4. Let’s all agree we all love CloudFlare: CloudFlare is a FREE reverse proxy, firewall, and global content delivery network and can be implemented without installing any server software or hardware. At least based on Cloudflare module’s page, on average, CloudFlare-powered websites load 30% faster, uses 60% less bandwidth, and process 65% fewer requests. CloudFlare-powered websites are protected from many forms of malicious activity including comment spam, email harvesting, SQL injection, cross-site scripting, and DDoS (denial of service) attacks.
    Drupal CloudFlare module

     

  5. The Purge (Not the movie): So by now you cached the hell out of your website and now you just want to change something on your website? The purge module facilitates cleaning external caching systems, reverse proxies and CDNs as content actually changes. This allows external caching layers to keep unchanged content cached infinitely, making content delivery more efficient, resilient and better guarded against traffic spikes.
    Drupal Purge module

     

  6. Did you know you can cache your views? In Drupal 7 Enable “Views Caching” in each Views manually and in Drupal 8 there’s a module that helps a lot with that.
    Drupal Views Advanced Cache module

     

  7. Using Panels? Enable Panels caching in each Panel
     

  8. Drupal 8: Do you like BigPipe in Drupal 8 core? How about some sessionLess BigPiping? (No pun intended)
    Sessionless BigPipe module

     

  9. Use views with minimum pagination navigation to save some SQL time (just first, previous, next, last links instead of (1,2,3,4,5…). In Drupal 7 you also need to use:
    Views Litepager module

     

  10. A long cache lifetime can speed up repeat visits to your page, Serve static assets with an efficient cache policy
    Read more on Google developers

     

  11. Drupal 7: People need to login to your website and you still would like some caching? AuthCache to the rescue
    Authenticated User Page Caching module

     

  12. Drupal 7: You like Drupal 8 core cache tags and cache max-age? But maybe for Drupal 7?
    Drupal 8 Cache Backport module

     

  13. Drupal 7: Need different caching per block? Fear not
    BlockCache Alter module

     

  14. Drupal 7: Already setup Memcache and Redis? Add some Entity Caching
    Entity Cache module

     

  15. Drupal 7: Render Cache is also quite powerful but has some issues on the cache clearing level, so use with caution.
    Render Cache Drupal module

     

  16. Consider using Google QuickLink Library if possible. Enables faster subsequent page-loads by prefetching in-viewport links during idle time at the cost of increased page loads for the client.
    Google QuickLink Drupal module

Okay, that was a long list of things to consider/do for just caching, but hey we are here to make something extra performative.

In the next upcoming part that will be published in about a week, we will focus on Drupal Aggregation / CDN / Compression

Written by Sohail Lajevardi
Developer at Ramsalt Lab

 

Apr 24 2019
Apr 24

Delicious food is able to inspire people even as they just see it on a website. That’s why food industry companies greatly benefit from well-built sites. The platform choice also matters. Drupal suits websites in all industries — e-commerce, real estate, education, or any other. In this post, we will explore why create a food website with Drupal. And get ready for tasty examples — colorful Drupal websites for restaurants, food products, recipes, and more.

Why create a food website with Drupal

The reasons to create a food website with Drupal include useful tools and the characteristics of the CMS. We will name at least a few of them and spice it up with website examples.

Contributed Drupal tools for food websites

The Drupal community has prepared a varied menu of free tools for food industry sites. Among them:

Umami Food Magazine


Mobile responsiveness

Users may want to order food, find a restaurant, or get a recipe on the go. Food images that are very attractive by themselves, should display well on mobile devices with minimum scrolling or zooming, and still retain their quality.

Drupal 8 has mobile friendliness as a priority. Its powerful tools easily make websites responsive. On D7, responsive design can also be created smoothly by an expert Drupal team.

See an example of responsive Alervi website with recipes that is built with Drupal:

Alervi Drupal website

Multilingual features

Let your food website be understandable to users across the globe. They will appreciate being able to use your recipes in their language. If you offer food products for sale, this will open new markets to you. Finally, if you own a restaurant, get ready to welcome tourists who have learnt about your online.

Drupal 8 supports a hundred languages that can be quickly added to websites. It offers ready interface translations, RTL (right-to-left) support, flexibility in deciding what to translate, and much more. On Drupal 7, multi language features can also be easily created by a good Drupal team.

See the multilingual Drupal Paysan Breton website with food products and recipes:

Paysan Breton Drupal website


Content presentation opportunities

Food is very magnetically appealing content by itself. A CMS should help you make the best use of it. One of the best features of Drupal is that you can organize and structure your content so users admire its look, easily find what they are looking for, and complete their goals.

For this purpose, Drupal offers Views, taxonomy for content categorization, display modes, powerful page builders, and much more. This will be useful for all food industry websites — those for restaurants, for food products, or for recipes.

See how content is presented at Davis website with food products and recipes that is built with Drupal:

Davis Drupal website


At The Laughing Cow website with food products that is built with Drupal:

The Laughing Cow Drupal website
At Drupal-built Higgidy website with food recipes:

Higgidy Drupal website
 

Unlimited website functionalities

Drupal has 42,000+ contributed modules for all imaginable features. What is not offered by them, can be created as custom functionality. Whatever is needed for restaurant sites, recipe sites, or food product sites, can be created with Drupal. See just a few simple examples.

Product locator at The Laughing Cow website with food products that is created with Drupal:

The Laughing Cow Drupal website - product locator

Step-by-step cooking at Drupal-built Jules Destrooper website with recipes:

Jules Destrooper Drupal website - step-by-step cooking

See the San Genesio website restaurant Drupal website that offers table reservations:

San Genesio Drupal website

Finding recipes by multiple characteristics at Drupal-built Paysan Breton website:

Paysan Breton Drupal website - finding recipes by multiple characteristics
Choosing dishes by multiple ingredients at The Boss Cafe website built with Drupal:

The Boss Cafe website


Google map for every restaurant at Drupal-built Le Comptoir du Malt website for a chain of restaurants:

Le Comptoir du Malt Drupal website

E-commerce features

Drupal has powerful e-commerce features represented by two platforms: Drupal Commerce and Ubercart. So your users to buy food products from you online.

Any imaginable features are possible here — integration with payment systems and shipping providers, promotions and discounts, product customization, order management, and so on.

See e-commerce with coupon codes at Jules Destrooper website:

Jules Destrooper Drupal website - e-commerce with coupon codes


See e-commerce with dynamic shopping cart flyout at Eldum Rétt website:

Eldum Rétt website - e-commerce with dynamic shopping cart flyout

Interaction with JavaScript frameworks

Drupal is smoothly combined with JavaScript frameworks that add a high level of speed and interactive features to websites like push notifications, real-time updates without page reload, and much more.

A very popular setup is the decoupled architecture where Drupal serves as a backend sending its data to an app built on a JavaScript framework — React, Vue, Angular etc.

Here is an example of decoupled Drupal Commerce and React Native App at Eldum Rétt website:

Eldum Rétt - decoupled Drupal Commerce and React Native

Let’s create a food website for you!

This has been just a brief review of the main reasons to create a food website with Drupal. Hopefully, you enjoyed the examples. So let your food business flourish with the help of a well-built website — contact our Drupal development team!

Apr 24 2019
Apr 24

Your browser does not support the audio element. TEN7-Podcast-Ep-058-TEN7s-Onboarding-Process.mp3

Are you looking for someone to support your existing Drupal site? Or, are you an agency and you're considering taking on a new client? We think you should date before getting married right away. Trust us, it's better for both parties! In this podcast, Ivan Stegic and our DevOps Engineer Tess Flynn discuss the TEN7 courtship—er—new client onboarding process, which insures that we get to know your site better than you do!

Running time: 39 minutes
Host: Ivan Stegic
Guest: Tess Flynn

In this podcast we'll discuss: 

  • The difference between discovery & design clients and audit–improve–support clients
  • Why we don’t just say “yes” to a client that gives us money to support their site
  • How the TEN7Audit process is like CarTalk (the multiple layers of the audit and troubleshooting process)
  • The simple check that tells Tess how much you love (or neglect) your site
  • The topics of the TEN7Audit: security, infrastructure, UX and theming, content types
  • We get the data, then try to figure out the underlying human story
  • Why we take the time to present our audit findings to you (in three tiers) vs. dumping the PDF in an email 
  • Tess compares your website to a car. Mark your TEN7 Bingo cards!
  • After TEN7Improve, we’re intimate with your site and know whether we want to support it for the long haul
  • How we take backups for TEN7Care so seriously we created a product (Tractorbeam) to do it for us (and you)

Links:

TRANSCRIPT

IVAN STEGIC: Hey everyone you're listening to the TEN7 podcast, where we get together every fortnight and sometimes more often, to talk about technology, business and the humans in it. I'm your host Ivan Stegic. We recently published a blog post called ‘Becoming a TEN7 Support Client, You Can’t Just Give Us Cash’, and we think it’s a good description of the process of becoming a client in which we support a site that we didn’t build. I thought it might be useful to talk about this whole process as well in a podcast, and that’s what we’re going to be focusing on in this episode. To help me flesh out the details, I have Tess Flynn, our DevOps Engineer joining me once again. Hey Tess.

TESS: Hello.

IVAN: I wanted to start by talking about TEN7’s business, and how clients come to us, and how we have distinct categories of clients. And then we’ll kind of get into the nitty gritty of the process of onboarding a client, and that’s where I thought you could help us out.

Essentially, we have two distinct categories of clients.

One category is a new site build, or a new feature build, and this is a client that specifically wants us to create something from scratch or add on to an existing deployment. And usually that process is discovery and design, some sort of strategy, then development and launch, then we support the site we’ve built. On the other side, the other major category of business we do is supporting an existing site. So, that’s supporting a client or a prospect that comes to us that has a Drupal site that someone’s already built for them. And for whatever reason, they need it supported and maintained and looked after for an extended period of time.

The process there is similar. We audit the site, we improve it and then we support it, and the products we have for those services are called TEN7Audit, TEN7Improve and TEN7Care. Now, there’s a natural progression, I think, from learning everything we can about you and what you have, to recommending things we could improve, to then supporting and maintaining that site for you. But the reason we came up with this process was, a particularly difficult client that we had some years ago, And I did something as an owner, that I shouldn’t have done, and that was, say yes to supporting a client whose site I knew absolutely nothing about, whose site no one on our team evaluated or saw, that turned out not to be a brochure site, but a complex, inner connection of many different modules, some custom, some not.

We ended up with a commitment with a client for two years that went on for two years longer than it should have, negatively affecting our team, the morale on our team, resulted in some internal soul searching within the organization. We discovered the DiSC analysis process, we applied it to everyone in the company, we focused on our own mission, our own values. And when we came out on the other side, I basically didn’t want this to ever happen again, right? From our perspective, we wanted to do our best work for the client, and we were being handcuffed, because we didn’t do our due diligence right in the beginning of the engagement. And, of course from the clients' perspective, they expected nothing less, right? They wanted us to do the best work for them, we possibly could be doing, and so we came up with this three-step process that sets us both up for success.

Essentially, we do an evaluation and an audit of an existing Drupal site. We call that the TEN7Audit. Once we’ve evaluated it, we kind of have to get to know the code base a little better, and nothing’s ever perfect, there’s always some amount of work that needs to be done. And so we do that. The next step we call the TEN7Improve step. And once that’s complete, we offer TEN7Care, our support agreement that keeps the client's Drupal site humming, kind of the way it should be. So, it’s three steps, TEN7Audit, TEN7Improve, TEN7Care, and what I’d like to do now, is talk about the details of TEN7Audit.

So, a prospect comes to us, and they ask us if we want to support their site, and we say, “You seem nice, I think we’d like to work with you. Let’s take a look under your hood.” And, that’s what the TEN7Audit really is. Tess, you’re the principal engineer that’s responsible for the TEN7Audit. So, when a prospect comes to us and I say, “Okay, let's do the audit,” it lands in your lap, right? And, you’re then tasked with doing this audit. And we’ve done so many of them we have a good process around what we do, and I want to find out about what exactly happens during the audit? What’s the first thing you do?

TESS: The first thing I usually do when it comes to doing an audit is that I’m going to need access to the underlying infrastructure. So, I’m going to need access to SSH in order to get to the file system on which the site is hosted. And I will also need database access credentials, so that I can get a copy of the website itself. Now, I like doing some audits entirely in place if it’s possible, without copying it to a local environment, but increasingly this is difficult, because depending on the client and depending on the site that might not be possible. For some shared hosting providers, for example, adding an additional tech in place can be a risky proposition, because it can cause some issues with the site, in order to perform the audit. Also, certain platform-as-a-service hosts actually don’t really let you do that very easily, in which case you do have to copy the site off and then run it locally. And then, in some cases, you might have the ability to run additional tools in place, but you’ll have to run it locally anyways, because the actual environment that the site is running on already has something already so fundamentally wrong with it that you can’t even run those tools in the first place.

So, it all comes down to: how do I get my hands on the site code and the site database? That is always the first problem when it comes to doing an audit. And, the thing with doing that is, some clients actually find that kind of intimidating, because they don’t know who you are, they don’t know if they can trust you, and they’re not sure if they really want to give that information over. And, it’s really necessary in order to perform an effective audit in the first place. Otherwise, the best I can do is look around a little bit. Now, if I do get that access, then I can start tearing down how the site itself is built, and this becomes an interesting process.

The very first thing to do is to run several auditing tools. Depending on the site, that could be Healthcheck, or the Site Audit module, or the Hacked! module. There’s a number of different tools that we use in order to facilitate gathering the best information necessary, to see what the red flags are in the site, if there are any. What’s interesting about this process is, already the attempt to run these tools will tell us something about the site itself. Can we run them in place? If we can’t run them in place, why can’t we run them in place? What’s the underlying problem that’s preventing us from doing that? Is it because of the hosting provider? Is it because of the way that the server infrastructure is set up? Is something else wrong that we need to take note of, that is something that we need to remark on our document?

Once we actually run the tools, we examine the output of those tools, and usually this gives us kind of a 1,000-foot perspective of the general health of the site, but it doesn’t allow us to really uncover the underlying causes of some of this. An auditing tool can tell you, say, you’re running out of disc space. But why are you running out of disc space? You might have, well, there’s excessive activity in the database, or there’s excessive CPU draw, well why? What’s really doing that? So, all these tools just paint a more detailed picture, and at some point, you do have to start breaking those down and going after them and investigating them yourself.

IVAN: So, I was going to ask you about the tools that you use, and you mentioned that you usually SSH into the clients website. I would imagine that if there’s already some continuous integration in place, or some codebase in place, maybe you’re using Git to get those files as well. And then you mentioned Site Audit module and the Healthcheck module and Hacked!. And it’s not just modules that you use to determine the health of a website too, right? You are also evaluating the infrastructure, so, is it a shared host? Is there Varnish installed? Is there Memcached? How is the host configured? What kind of access do you have? Those are also other things that we evaluate. Could you talk about the next step? Once you’ve done, kind of the tools evaluation, what are the other things you evaluate?

TESS: It’s kind of like an episode of Car Talk really. A caller calls in, says, “Oh, hey, my site is making this weird sound,” and then after, you should not turn it like that, so it doesn’t make that sound. Then you actually ask, “Okay, when does it make the sound?” “How long has it made the sound?” And you start following the investigative chain. Using the tools really are just the first step in that process, because often with websites, as with a lot of modern vehicles, they are so complicated we don’t really know what’s wrong with them intuitively. We will only be able to know after analysis, and usually that requires an additional amount of technical expertise. So, the tooling basically gives us a rough topology of what the site health is like. And, afterwards, we need to investigate each one of those vectors. And a lot of the time, it comes down to how our audit document is structured, which allows me to investigate that. So, what I tend to do is, I will first start by running the tools and see if there’s any red flags in there.

If there aren’t, then the next thing I do is see if the client has mentioned anything in particular that we want to look at when it comes to the site. Sometimes that can give us a good clue and sometimes that could be a false positive, and sometimes we don’t have that information. So, it depends on what we have available to track down the necessary clues.

With our audit document, we actually break that out to several different sections. There’s security findings, infrastructure findings, UX and theming findings, and content findings. Each one of these is a section by which we can go and do further investigation on how the site health is working. Usually the next thing after I do the first pass is to check when was the last time the site was updated. This sounds like such a simple, easy thing, but it tells you a lot about, not necessarily the technology, but the people around the site, and how they worked with the site and regarded it.

Everything we do in technology is about people, so you have to understand the underlying human story around the technology, and that will allow you to effectively resolve any problems that come up with the technology. So, the first thing that I usually do is, see when it was last updated, and that, ominously, I use the status update page just to check it and see what the security updates are. If there’s a lot of them and if there’s a numerous amount of them, and if there’s several years in the past, since the last update, that tells me a lot about the human management around the site, that it might not necessarily have enough technical people around it, or people don’t know that they have to update it, or a number of different human problems related to that. Then, once I have that information, then it’s down to going through each individual section.

So, I note all the different modules that require an update, which ones need security updates. Sometimes sites will specifically hold back one module or another, several versions, and that doesn’t necessarily speak to neglect, but it might be an intentional holdback, because of some bit of custom functionality built around that module that could not be reimplemented easily with the available skill levels that they have within the organization after doing an update. So, that also tells me something.

Then it comes down to, okay, let’s look at the infrastructure of the site. Are they on a platform as a service provider like Acquia or Pantheon or Platform.sh? Are they on shared hosting? Are they on a virtual private server liker Linode or DigitalOcean? Are they on self-managed hosting? Because some organizations mandate self-managed hostings, particularly governments and schools will have a mandate for self-hosting by default. And each of one of those tells me something.

If it’s on shared hosting, that already tells me about the kind of price tier that they’re looking at, how they regard the amount of performance of their site. Do we need to investigate if they have outgrown that. If they’re on a virtual private server. When was the last time the server infrastructure was updated? What distribution of Linux or Unix are they working under? Do we have access to underlying abilities like accessing root so we can perform even more invasive checks, like disc sizes? What software has been installed? What are the user permissions that are used? Who else is using the server? If it’s on a platform-as-a-service provider, that gets a little bit different. Usually those I tend not to audit for infrastructure too deeply, mostly because they tend to work out pretty well by themselves. They’re intended to actually be fairly ‘use it and forget it’.

So, a quick cursory check is important for those, but unless if something specifically stands out to me, I usually don’t investigate them very deeply. So, we’ve covered security, we’ve covered infrastructure, then I start looking at content. What kind of content types do we have? Are we using content types? That sounds like a ridiculous question to some people, but yes, some sites decide, “I don’t know about this Drupal thing. I’m just going to use our raw table and some code, and slap it in there, that’s good enough for me.”

IVAN: We’ve seen it.

TESS: We’ve seen it, and that comes with pluses and minuses, and it’s important that we bring those forth to the client. That is something else. What’s important through all of these little details that we’ve covered is that, it’s not just noting a thing exists, it’s going why does that exist? Why has that happened? Find the underlying story behind the motivation that lead to this current situation. Everything is really about documenting each one of these finer details, and the interesting thing is that usually as you document these details, you start asking better questions yourself, and then you need to go investigate those questions.

So, with content, you might ask, what kind of content types do you use? Do those make sense with the kind of site that they have? Do you have a number of duplicate content types, like news and blog and press release? Are they the same kind of content really just in different categories? Do you have a large number of fields that are unused? Do you have too few fields that you’re making do too many things? Do you shove entire bits of layout into your content? Trust me, we’ve all done it, it’s okay [laughing], but we need to do better than that. There’s a lot of these little bits of story that come too.

Once we’ve investigated the content types and those structures, usually I try seeing what kind of custom integrations that they have, as well. Do we interact with any third-party APIs or commerce organizations or survey organizations? Do we have any dependencies that can be a bit of a risk for us in order to manage going forward? Because if it’s outside of the realm of Drupal, those can be a little brittle and we do need to actually be careful about how those are implemented. Eventually we do come down to custom functionality. You notice we’ve done all of this other stuff, and now, twenty minutes into the podcast, are we talking about custom functionality. Because custom functionality in general with a lot of Drupal sites that we’ve audited, tends to be a lot less than you expect. Usually a well-managed site has only a minor amount of custom code, just enough to pull the site together. Some sites on the other hand have an enumerate amount of custom code, and that also tells us a story. How much custom code do you have? Do you need that amount of custom code for the site that you’re running? Why did that custom code get used? You have to examine each one of these decisions in order to see what the whole picture of the story is.

IVAN: It’s a lengthy, involved process that we undertake, isn’t it? And, I want to make sure that we are clear about what isn’t in the audit. So, the audit is mostly a health check of your site, your infrastructure, and your processes. We do a cursory look at your analytics and a cursory look at your content, and a cursory look at your accessibility. But as far as doing a deep dive into a content audit, or a deep dive into an accessibility audit, which we have done and which we do, that is not part of the deal here.

The main point is to get to a point where we can give you a report, and a status quo, and a set of recommendations about the things that we think you need to fix. Now, let’s just talk about the audit itself. What do you actually get? You get a PDF and for those of you listening, you can go to ten7.com/audit to see an example of a PDF of one audit that we’ve done. It’s been anonymized so there’s no actual client information in there, but you’ll get the gist from the PDF itself. From when we kick off to when we've created the PDF it usually takes about four weeks and at the end of those four weeks, we have a document, a PDF that we then present to the client. We don’t email the client with this PDF and say, “Hey, take a look at this thing. Tell us what you think.”

And we definitely don’t send the email with the PDF in it to the client before we present it to them. That video conference, that presentation of the TEN7Audit is very important. It’s very important to provide that to our clients in real time. Tess, can you talk about that meeting and what that meeting feels like and look like. What’s the goal of that meeting?

TESS: So, first let’s frame what the document looks like. On average these audit documents run 18-35 pages. That's right, pages. I’m a bit wordy. [laughing]

IVAN: That’s right. It’s a big one. [laughing] Right, I mean, this is a serious audit, right? It’s not going to be a couple pages long.

TESS: And, the problem with a document that size that is that comprehensive is that it’s really easy to get drowned in it. There’s just so much detail. There’s no framing around it. There’s no discussion around it. There’s no opportunity to ask questions, and suddenly you easily forget points and questions that you had three pages ago, because you have new ones that have already filled up your entire internal question queue. So as a result, it’s really important to have this meeting at the same time that we hand over the document, because it allows us to make this a conversation, not just, "Here’s the results." Because no one wants "Here’s the results," we really do want to have a conversation about it.

So, the way that it works is, generally we start with the document itself and we briefly talk about the methodology involved. And because sites are all unique, sometimes we do have to adapt our methodology dependently. We’ll point out if we have to run the audit on a local copy for various reasons, and then we start talking about the actual audit findings. And the way that the audit findings are structured are also important, because at the very front we have critical findings. These are the most important things that would need to be fixed with the site immediately. These are things that are going to be possible security attack vectors, critical updates that have yet to be applied, or other critical infrastructure things that need to be resolved as soon as possible.

All of these things need to be acted on relatively quickly to prevent downtime or possible data destruction. Those are usually the first things that we talk about, and they’re the big, big items. And, the idea and the intention behind this is so that we can stress the things that are the most important to fix right now, before we get to other underlying things that might require a longer-term effort. Basically, we want to make sure that we dampen down the campfire, so it doesn’t start a wildfire.

IVAN: [laughing]

TESS: And once we’ve done that, then we go through every different section that is in the audit document and this can be a long meeting. Usually these meetings take about an hour, and we outline each individual point. We don’t read the document because everyone can just read the document, but we point out the things that are the most important that I found with that and give additional context. If there are questions, we can answer them at that point. That way no one feels that their questions go unanswered or that they forgot them, they can always have them right there and we can answer them right there. We go through each individual section and sometimes we will have a finding that is, I don’t know why it was built like this. There’s probably a good reason for this, but I don’t know what it is, and usually at that point I might ask you, the client, why was it built like this? Because sometimes there is no right answer for some of these things.

Sometimes we find, “Oh, well we used a custom table here because we actually have another integration with a GIS application and somewhere else that requires database access.” “Oh, that makes perfect sense.” “Sure, okay. That’s understandable.” Now I don’t need to worry about that particular issue. Now I know that I don’t need to make a recommendation to fix that underlying issue and make it more Drupal-like, because it was intentionally done that way. So, because this is a two-way process, this is really, really important. Once we get all the way through the different categories, and usually by the time we get to the end of it, we’re talking content and theme and UX and then a brief touch on the analytics findings. Then we talk about recommendations, and our recommendations usually come in three distinct tiers.

The first tier of recommendations are usually things that we want to do right now, in order to make sure that we don’t have a wildfire. Things that fix immediate, most critical issues with the site, applying secure updates, fixing any potential security attack vectors, DDOS possibilities, fixing other underlying configuration problems like, caching was disabled for some reason, or maybe we should look at turning Varnish on, or maybe the setting was incorrect, or why do you have user registration open when you’re a brochure site? [laughing] Things that are really simple and really actionable that can be done generally within a week after giving the audit document over.

Then the next tier of recommendations are things that we want to try to do to maximize the site as it currently exists, without fundamentally changing the functionality of the site. So, that’s going to be things like, “Well, do you think that you can enable this kind of cache configuration with Varnish or Memcache? Maybe you can change the way this functionality works so that this bit of functionality will work better for you going forward. Maybe your theme is a little wonky here and needs some correction.” Sometimes we might make a recommendation to change hosting providers at that point as well, because if you’re on shared hosting you might have outgrown that. If you’re on Acquia or Pantheon, you might need to change your hosting plan. If you’re on a VPS (virtual private you might also need to change your pricing plan to get more vCPUs or more disk space, or more network transfer storage, those kinds of things.

IVAN: Or caching even.

TESS: Or caching. The third tier is going to be things that allow the site to reach its full potential, which may involve fundamentally changing certain aspects of how the site functions. So, we might want to say, “Maybe you should make a new theme. Maybe you should take this bit of functionality that was implemented this way and reimplement it this way instead.” Those tend to be bigger projects that require several weeks to months to implement, depending on the kind of site. And some of those might not be something that you want to work on immediately.

Some of those might be, “Yeah, we were thinking about redoing the entire site in Drupal 8 and we’re on Drupal 7.” That’s one of those recommendations, and doing a site rebuild does take time and that’s where that recommendation goes. These three tiers allow you to prioritize which aspects of the site you want to act on as a client without feeling like, “Oh, geez, my site is terrible, and everything is wrong and on fire.” [laughing] No, we break that up for you so that you can know, “Okay, these are the things that we need to fix now, because you don’t want your wheel to fall off while you’re on the highway. Here’s the things that we should probably fix because that’s not good, winter's going to happen eventually, and you need to replace that heater core in your car, because you’re going to get cold eventually (laughing), and then finally maybe you just need a new car." [laughing] Everything comes under car analogies.

IVAN: Yes, it does. Or tractors, right? So, that was a great summary of that list of recommendations and the three tiers, Tier 1, Tier 2, Tier 3. And you’re essentially cherry picking those recommendations that make sense for your needs, for your budget, for your organization moving forward. And what we do as the next step in our process, so this is step one right TEN7Audit, it’s about four weeks, get out of that with an audit report and a list of recommendations. And once we’ve done that you cherry pick the list of recommendations and those become tasks for us. And with that list of tasks, of things that you want changed, things that you want improved, based on your budget and our recommendations, we package that up into the TEN7Improve contract and the next step of the process. And usually that takes between four to eight weeks of our time, and it’s really dependent on kind of the results of the audit.

TESS: The thing that’s also important in this entire thing that often goes unsaid, is that an audit is a wonderful "get-to-know-you" activity. Because now after the audit, we as an organization as TEN7, know your site and have a lot of knowledge about how your site works, and what your motivations are, and what your perspective of your site is. And also, you know us, and you know our processes, and you know our names and our faces, so that you can actually know who to talk to. An audit is a wonderful get-to-know-you exercise, and I cannot stress the importance of that human connection enough in what is otherwise a very dry technical field.

IVAN: The importance of that human process is not just getting to know each other, but to laying the groundwork and the foundation for a long-term relationship after that audit's happened. And I think the next step, the TEN7Improve step, that’s kind of getting to know your code base, getting to know how it’s configured more deeply, not just one person getting a higher-level view of the site, but more than one person getting a deeper level understanding of the technical debt that’s in the site, the way that things are configured exactly, so that there’s not just one person who knows how your site is configured and deployed, and I think the TEN7Improve process is also a good next step for the relationship, because now we’re spending more time with each other, getting to know how each others' work styles are, what your needs are, what our needs are, so I guess you could say the TEN7Audit is kind of the dating part of the relationship, and the improve step is kind of the engagement part of the relationship? I guess it’s the time when you get to know the deep-down, dirty secrets of the code base [laughing].

TESS: Why does the site always leave the socks on the floor? [laughing]

IVAN: [laughing] Exactly. That’s exactly what the Improve process is, the answer to the socks on the floor question, right? So, four weeks for the Audit, four to eight weeks for the Improve process, the outcome of the Improve process is a site that we now know quite well. We know how much technical debt there is, we know how it’s configured, we’ve improved it, we’ve updated it, it’s in a state now that we would be comfortable saying, "We can support this for you from now on." Don’t you think?

TESS: That’s the entire goal of the Improve process, is to get us to a point where we can start working with it regularly without having to worry that the site's going to completely blow up for whatever reason, be it infrastructure or code or simply lack of knowledge.

IVAN: And so now we know the site, right? So we can offer a support agreement and that’s the last step of the process, TEN7Care. The way that the support agreement is structured is, it’s an annual agreement. We agree to some minimum number of hours that we will have every month with you, and the agreement typically covers things like Drupal site maintenance, so we maintain and update the core and contributed modules that are installed. We provide 24/7 uptime monitoring and response, and so that part is really dependent on the hosting provider that you have. So in some cases Pantheon is already monitoring their sites, we’re monitoring in addition to that, and sometimes we don’t have any control about whether Pantheon is up or down, and so we have to revert to their knowledge and them working on an emergency, and we are simply the conduit for you. The other thing that TEN7Care provides is regular backups and archiving and that’s really important isn’t it Tess?

TESS: I can’t stress that enough—how important a backup is, because life is unpredictable, and you want to make sure that you have a backup just in case life throws something very, very nasty in your direction.

IVAN: And we’ve got a number of blog posts and podcasts that we’ve done where we've talked about backups and details of what you should have. We use Tractorbeam, the open-source solution that we’ve published and provided to the community to do those backups of your website. Remind me again, Tess, it’s daily, weekly, monthly, right? And, two different off-site locations.

TESS: Mm-hmm. Correct.

IVAN: Great. So, AWS (Amazon Web Services) and Google Cloud, DigitalOcean, those are the three different companies, three different places. So that’s covered under your TEN7Care support agreement. And then all of the CI, continuous integration, and automation goodness that Tessa absolutely loves and that I am a huge proponent of, that comes as part of TEN7Care as well, right? So, our regular release process, the use of feature branches, the use of code review, the fact that we can push code and it deploys to numerous different environments, automatically. Do you want to say a couple things about that? I don’t want to prevent you from geeking out here [laughing], so do say something about that.

TESS: Mostly the reason why CI is particularly wonderful is because the problem is that human beings are inconsistent. You’ve had a bad night of sleep or you’ve read something upsetting and you might be distracted, and that can cause real downtime and real outages and real technical problems. The idea behind using CI is so that you remove more human hands from the process, and outsource that to a piece of technology that can do that consistently every time and be a lot more situationally aware of what’s going on when you do the deploy. So, having CI allows us to respond to changes a lot more quickly, a lot faster, and make sure there’s accountability at every step of the process with regards to updates and feature deployment.

IVAN: I couldn’t have said it better myself. Just wonderful, thank you. So, TEN7Care is the last step in the process, preceded by TEN7Improve and, of course, the TEN7Audit right at the beginning. I think we’ve kind of gone through the whole process, right, beginning to end.

TESS: That’s the whole thing.

IVAN: That’s the whole thing. Thanks again for being on the podcast. It’s always such a pleasure to talk to you, Tess.

TESS: Not a problem.

IVAN: So, if this podcast sounded interesting to you, and you think we might be able to help your organization in some way, we’d love to hear from you. Send us an email, send it to [email protected] to start a conversation. You can also find out more on our website at ten7.com/welcome. That’ll take you to our blog post on the whole process, and you’ll see a link to the example of the audit and an example of the support agreement as well.

You’ve been listening to the TEN7 Podcast. Find us online at ten7.com/podcast. And if you have a second, do send us a message, we love hearing from you. Our email address is [email protected]. Until next time, this is Ivan Stegic. Thank you for listening.

Apr 24 2019
Apr 24
video drupal tutorials

After three months of hard work, mostly at night and during the weekends, we finally launched the first minimal viable version of VideoDrupal.org (beta 1.0), a curated mashup of Drupal video tutorials published on Youtube to make them more accessible for personal, educational and professional purposes.

For 2019, I've set up three main goals: improve my English, find a "real" Drupal Team to work with and launch this website. So, I've reached one of my goals. Checked! To be honest, I think it was the easiest one. Improving my English and finding a community-oriented Drupal agency will be harder. But I'm working on it!

Why VideoDrupal.org?

During the past 10 years, I have organized or co-organized several DrupalCamps and Drupal meet-ups here in Bolivia but also in Peru, Panama, Mexico and Belgium (Belgium is where I was born and I lived until I was 27 years old). People organizing those kinds of events know that this represents a huge effort during five or six months to motivate the local community, find the venue, setup the website, find the sponsors, plan and launch promotional activities, organize and schedule the sessions and so on... But the event itself is also really stressful and self-demanding with many different needs to satisfy.

When the camp is over, we usually feel completely exhausted, all those efforts for only three days of knowledge sharing, fun and parties with new and old friends? So many weeks of preparation to reach 300 to 500 people each time? Is it worth it? Yes it is! Really... For yourself but also for the community.

But I have always been wondering if we could give something back to the community that would last for longer (not just three days) and something that people could use or take advantage of more often.

On the other hand, as a Drupal trainer, I know how hard it could be to learn Drupal for newcomers. I'm not speaking about the well-known "learning curve", but just about how to begin learning Drupal, to find the right documentation, training or video to do so. There are a lot of very good paid resources for that, but also a ton of free resources on drupal.org, in blogs and free video platforms like Youtube. Many videos on Youtube are real gems, and not only for beginners. But these resources are very difficult to find for the average user. Is there something we could do to help people to find Drupal videos on Youtube that fit their needs in a better way?

It's with those two questions in mind, giving something back to the community that could last longer and helping people find Drupal videos on Youtube in a faster and easier way, that the idea of VideoDrupal.org came to me a few years ago. But due to my professional activities I've never found the time to go on with this project until last October, when I decided to make a switch in my career and to become a Drupal freelancer. Working from home gave me the opportunity to better organize my schedule and have more time to dedicate to this project.  

What is VideoDrupal.org?

Like I said before, VideoDrupal.org is a curated mashup of Drupal videos and tutorials published on Youtube to make them more accessible for personal, educational and professional purposes.

The main goals of the site are:

1. Be a central point to easily find Drupal videos or tutorials (Beta 1.0)
2. Allow to discover trending topics (Beta 1.0)
3. Help beginners and advanced drupalists to learn Drupal (Beta 1.0)
4. Allow the community to tag videos to improve search results (Beta 2.0 - coming soon)
5. Spread personal or community efforts to promote Drupal (Beta 1.0)

As this website is aimed to serve the Drupal community, it's free and will stay free forever.

How to learn Drupal with VideoDrupal.org?

Aside from an advanced search solution, we set up a dedicated page for people who want to learn Drupal. This page is currently divided in two sections. The first one is focused on learning the basics of Drupal site building and learning Drupal theming with a curated set of amazing playlists and standalone videos.

The other section focuses on specific Drupal learning topics, like learning Git, learning Phpstorm, discovering the new Cache API of Drupal 8 or learning Gatsby and Drupal 8 for more advanced users. Each week I will add a new topic to this section.

How do we curate the videos?

We select the videos based on their overall quality. To do this, we first start by analyzing the channel.
If it's a community channel with more than ten videos, we gather all the videos and playlists. We trust in our community, so there is nothing to curate in that case.
If it's not a community channel, we first check if the channel has a learning Drupal dedicated playlist. If so, we gather all the videos of this playlist. If not, we quickly analyze each Drupal video with the following key factors in mind:

- Is the video in English? (Yes, this sounds weird, but we want to keep the project simple at this time. We're looking for a sustainable multilingual solution to implement in the beta 4.0)
- Is the sound quality good enough to understand clearly what the speaker is saying?
- Is the video about learning or promoting Drupal?
- Is the subject addressed in a clear and understandable way for the end user?

We do NOT modify the content of the video in any way.

We strongly believe that maintaining a small set of high-quality Drupal videos will help to make this project a success. You can help submitting a channel, a playlist or a video by clicking here.

Who is behind VideoDrupal.org?

At this time, we are just two: Santiago Rico (rasaric) and myself. When I finished the first round of site building and development, I proposed Santiago, a young and talented designer and Drupal frontend developer, to help me with the design and the theming of the site. He has done a really stunning job so far, hasn’t he?

karim-sandiSantiago and Karim. Happy to finally launch VideoDrupal.org

We generally work on this site late in the afternoon, at night or during the weekends. That's not always easy but we are so excited to do that for the community which has given us so much during the last ten years.

Are we competing with paid Drupal learning solutions?

Absolutely not! Those paid solutions are vital for the community thanks to their high quality, we don't want to compete with them. We strongly believe that VideoDrupal.org is like an accelerator that will push new people to have a deeper interest in Drupal and later, choose a paid solution to improve their Drupal skills. Thinking this way, we are sure that VideoDrupal.org will act at the top of the sales funnel (awareness and interest) of those paid solutions companies and bring them more customers to the consideration step.   

In fact, we don't want to compete with anybody. We just wish to offer another way to gather and keep more people to and within the Drupal community. See number 5 of the site's purposes above.

Acknowledgment

First, I would like to thank Joaquin Bravo who gave me the confidence to start this project and mentored me at the very first start. Those two or three hours of mentoring where the best Drupal gift I've ever had. Thank you so much Joaquin!

On the other hand, I would like to thank Platform.sh for hosting VideoDrupal.org for free. You may know that I'm not a devops guy, so I was looking for a Drupal hosting service that allow us to focus on what best we can do: theming and developing Drupal websites. I've been delighted by Platform.sh for two main raisons:
- As a Drupal community oriented company, they accepted immediately, without asking any questions.
- The deployment work flow was surprisingly easy, just a few clicks and boom! The site was online with a fully functional dev. and prod. environment. I believe I'm going to love doing more devops tasks now.
Thank you so much for supporting us guys!

Finally, I would like to thank my wife Alejandra and my two young adolescents, Salim and Amélie who support me in this never-ending journey. Without their continuous and understanding support, this project would never have been undertaken.

What's next?

We are now planing the beta 2.0 version, a version only focused on improving the search results and the related video block. For this version we plan to:

- Fine tuning Search Api and Solr
- Fine tuning the MLT video block
- Allow the community to tag videos to improve search results and MLT block. The current video tags are too vague and often refer to the channel or event itself. We plan to add community tags like:

  • type (site building - theming - development - devops - arquitecture - community building - marketing - self-improvement - case study)
  • level (beginner - intermediate - advanced)
  • kind (tutorial - conference - meeting)
  • subject (free tagging)

- Find a way to access the video's captions and process them through an auto tagging tool like OpenCalais so we could discover automatically the most relevant tags.
- Your idea here?

The beta 3.0 will be centered on the user experience, for this version we plan to:

- Improve the mobile experience
- Allow the user to create their own playlists
- Allow the community to create learning playlists
- Enable comments in the learning nodes
- Give the user the possibility to know which video he watched and when
- Improve the discovery of trending topics and videos
- Your idea here?

It's your turn to help the community

If you are a Drupal agency you could perhaps accelerate the process, funding some development. Even if it's not a priority for us, we work on this site on a a pro-bono basis, this kind of support may help to finish those beta versions earlier. Just contact us if you're interested.

If you are a Drupal fan like us, we would love to have your feedback to better serve the community. What could we improve on this project? Do you think that we are on the right tracks? Are there other needs that we didn't consider? This project is also yours, so leave us a comment and if you like it, share it with your friends.

Apr 24 2019
Apr 24

Drupal 9 will be released in 2020, which—if you’re building a new site—is just around the corner. While Drupal has historically supported only the current and one previous version of Drupal, policy has shifted considerably as Drupal 9 approaches. Now, both Drupal 7 and 8 reach end of life at the same time: November 2021.

Graphic identifying the end of life dates for drupal 7 and drupal 8 and when drupal 9 launches

The main driver of this difference is Drupal’s shifting stance on backward compatibility. Until Drupal 9, new versions of Drupal were radically different than previous versions. The internal APIs were incompatible, modules for one version didn’t work for another without serious changes, and the theming architecture was different. This meant that going from say, Drupal 6 to 7, or Drupal 7 to 8, was nearly as much work as going from Drupal to WordPress. This approach allowed for serious innovation but had the drawback of creating upgrade fatigue for Drupal users, who eyed the ease with which WordPress users could deploy the latest and greatest updates to their CMS.

The plans for Drupal 9 have changed, and the upgrade from Drupal 8 to 9 will require considerably less effort. Breaking changes in Drupal 9 will first be released in Drupal 8, in parallel to existing functionality months or even years before Drupal 9 is released. This gives module maintainers time to add support for the new APIs well before Drupal 9 is released, while still benefiting their existing Drupal 8 installation base. This is all terrific news for Drupal.

The schedule—the Drupal 9 release just over a year away and Drupal 7 and 8 still have two years of support left—and the policy changes both seriously impact the way you need to plan an upgrade of a Drupal 7 site. Let’s look at how to make an informed decision about the best approach.

Will Drupal 9 be ready on release?

Drupal 8 wasn’t. The Drupal 7 modules needed substantial changes to work with Drupal 8, which deterred some users from adoption. There was a gap of about a year between when Drupal 8 was officially released and when enough Drupal 7 modules had been upgraded to really make it ready for primetime. The good news is that Drupal 8 modules stay current with Drupal 8 releases, so just one line of code will need to be changed to make a Drupal 8 module compatible with Drupal 9.

With the focus on backward compatibility and consistent updates, Drupal 9 should be ready in just a few months, or perhaps even just a few weeks. Better yet, because the code changes for upgrading modules from D8 to D9  in many cases will be trivial, teams working on migrating to Drupal 9 can patch the local version of the module, submit the patch to the Drupal.org module page, and simply wait for an official version of the D9 module to be released. Why? Because few differences in code means there is little risk to security when you patch modules and wait for the patch to be incorporated.

You are on Drupal 7 today: Should you migrate to Drupal 8, or wait for Drupal 9 to be released?

With the gap in schedules—Drupal 9 is out a year before Drupal 7 reaches its end of life—the crucial question is whether you should wait and upgrade to Drupal 9 or start moving to Drupal 8 now. Here’s what to consider:

Does your business have seasonality? If you have seasonality, it’s probably best to wait for Drupal 9. You’ll have plenty of time to migrate to D9 when it launches and you can put your full attention to seasonal peaks in 2019.

We recommend that if you are planning a project in 2020, you should delay your project six months to start in Q3 2020 and go straight to Drupal 9. You can plan how you will handle site refinements in D9 to avoid double work by avoiding modules that never got D8 support. You skip the headaches and thrive on a new platform in one fell swoop.

Are you having challenges on D7? Drupal 7 is still officially supported, and a large number of agency and system integration partners have the expertise to effectively work on the platform. There is, of course, a terrific amount of compelling functionality and improvements that make the move to Drupal 8 worthwhile, so if you are having challenges with Drupal 7, then you should proceed to move to D8 immediately.

One of the major challenges we see with aging Drupal 7 sites is a confusing editorial experience for marketing teams. Some approaches to empowering marketing teams to editorially manage a Drupal 7 site were better than others, and Drupal 8 includes major improvements for layout management, including a best practices approach for how pages are managed.

If you’re having challenges on D7, upgrade to D8 which will better serve you now and later.

No seasonality and no issues with D7? Keep on rockin’. If you are finding success with Drupal 7, then there is no need to start the upgrade process quite yet. The ideal time is the second quarter of 2020. Your development team can focus on migrating the site to Drupal 8 while being mindful of the API deprecations in D9, flagging modules that aren’t yet ready for Drupal 9, and ensuring any custom code does not use deprecated D8 functionality.

As your project nears completion and the release of Drupal 9 approaches, you have a trivial decision to make: Go live on D9 if it’s ready, or if not, simply go live on D8 and upgrade to D9 later. Both are paths to success and both don’t create future work. The move to D9 later will be a modest effort, and you will still be on a modern CMS platform if you launch on D8.

How to get ready for Drupal 9

One crucial consideration for your Drupal 8 upgrade development planning is to pay very close attention to the deprecations already planned and announced in Drupal 9. If you decide to start your migration to Drupal 8 now, you want to set yourself up for success to move easily to Drupal 9. As we mentioned, while the overall approach to Drupal 9 will ease this upgrade path, you still need to ensure your team is avoiding using APIs in Drupal 8 that will be deprecated in Drupal 9. Doing so won’t create any more work for your Drupal 8 upgrade, just different work, and will ensure that you do not have to do any more work when it comes time to move to Drupal 9.

With thoughtful planning, the upgrade to Drupal 9, and 10, and beyond, should be a non-event.

Apr 24 2019
Apr 24

Recently, I had the privilege of interacting with a few of the most decorated and remarkable members of the Drupal community - who also happen to be Drupal’s top contributors. I questioned them about the reason(s) behind them contributing to Drupal and what do they do to make a difference. Their responses were incredible, honest and unfeigned.

Adrian Cid Almaguer

Senior Drupal Developer. Acquia Certified Grand Master - Drupal 8

I use Drupal every day and my career in the last years are focused to it, so I want to work with something that I feel comfortable and that meets my needs. If I find errors or something that can be done in a better way in projects I´m using or in the Drupal Core, I open an issue in the project queue and if I have the knowledge and the time, I create a patch for it. This is a way I can says THANKS to the Drupal community.

The strength of Drupal is the community and the contributes modules you can use to create your project, one person can’t create and maintain all the modules you will need, but if several of us give ourselves the task of doing it, all will be more easy, and is not just code, we need documentation, we need examples, translations and many other things in the community, the only way to do this is if each of the Drupal user give at least a small contribution to the community. So, when I contribute to Drupal, I’m helping you to have time to contribute to something that I may need in the future.

I maintain many Drupal modules, so basically the main contributions are create, update and migrate Drupal modules, but I contribute too in other areas. I contribute translating Drupal to the Spanish language and moderating the user translations, I create patches for some projects I do not maintain, sometimes I review some patches in the issue queue, I write and update modules documentation, I make some contributions creating tests for Drupal modules, I give support to the community in the Slack channels and in the Drupal Stack-exchange site and help new contributors to learn how to contribute projects to Drupal in the correct way. And as I’m a former teacher, I participate in regional Drupal events promoting how and why is important to contribute to Drupal projects and how to do it.

I will love to maintain a Drupal core module but I don’t know if I will have the time to do it, so for the moment I will continue migrating to Drupal 8, evolving and having up to date the modules I maintain.

Alex Moreno

Technical Architect at Acquia

Contributing to open source is not just a good and healthy habit for the communities. It is also a healthy habit for your own projects and your self-improvement. Contributing validates your knowledge opening your knowledge to everyone else. So you can get feedback that helps yourself to improve, and also ensures that your project is taking the right direction. For example when patching other contributed modules with fixes or improvements.

I enjoy writing code. My main contributions have been always on that direction. Although more recently I have been also helping on other tasks, like Spanish translations in Drupal 8 Umami.

Baddy Sonja Breidert

Co-Founder of 1xINTERNET

One of the reasons why I contribute to Drupal is to make Drupal more known in my area, get more people involved, attract new users, etc. I do my bit in contributing to the Drupal project by organising events like Drupal Europe and Drupal Camps in Germany and Icelan

Daniel Wehner

Senior Drupal Engineer at Times Higher Education

Unlike many other projects the Drupal community tries to create a sustainable environment. Both from the technical site, but probably on the long run more important from the community side. Initiatives like Drupal Diversity & Inclusion lead the foundation for a project which won't just go away like many others

Jacob Rockowitz

Drupal developer. Built and maintains the Webform module for Drupal 8

Contributing to open source software provides me with an endless collaborative challenge. My professional livelihood is tied to the success of Drupal which inspires me to give something back to the Drupal community. Contributing to Drupal also provides me with an intellectual and social hobby where I get to interact with new people every day.

Everyone has a personal groove/style for building software. After 20 years of writing software, I have come to accept that I like working towards a single goal/project, which is the Webform module for Drupal 8. At the same time, I also have learned that building open source software is more than just contributing code; it is about supporting and creating a community around the code. Supporting the Drupal community has led to also write documentation, blog about Drupal, Webform, and sustainability, present at conferences, and address the bigger picture around building and maintaining software

Joel Pittet

Web Coder. Drupal 8 Theme System Co-maintainer

I feel that I should give back to ensure the tools I use keep working. Monetarily or with my time. And with Drupal it’s a bit of both:

I started submitting patches for the Twig initiative for Drupal core, then mentoring and talks at DrupalCons and camps, followed by some contrib patches, then offered to co-maintain some commerce modules, which snowballed into more and more contrib module co-maintaining, mostly for ones I use at work.

I pay the Drupal Association individual membership to help the teams for all the Drupal.orgwork and event work they do.

Joachim Noreiko

Freelance Drupal developer. Built and Maintains Drupal Code Builder

I guess, I like fixing stuff, I like to code a bit in my spare time, I like to contribute to Drupal, and as a freelancer, it’s good to be visible in the community.

Lately I’ve actually been feeling a bit demotivated. I’ve been contributing to core a bit, but it’s always an uphill struggle getting beyond an initial patch. I maintain a few contrib modules, and my Drupal Code Builder tool as well.

Joris Vercammen (borisson)

Drupal developer, Search API + Facets

Being able to pull so many awesome modules for free really makes the work we all do in building good solutions for our customers a lot easier. This system doesn’t work without some of us putting things (code/time/blogposts/…) back into it. The Drupal community has given me a lot of things unrelated to just the software as well (really awesome friends, a better job, the ability to travel all over Europe, etc.). To enable others that come after me to have a similar experience, I think that it is important to give back, as long as it fits in the schedule.

Most of my contributions are under the form of code. I try to do some mentoring but while that is a lot more effective, it is really hard and I’m not that great at it, yet. I’m mostly interested in the Search API ecosystem because that’s what I got roped in to when I started contributing. A lot of my core contributions are for blockers (of blockers of blockers) for things that we need. I try to focus a little bit on the Facets module, since that is what I’m responsible for, but it’s not always easy or the most fun to do. Especially since I’ve still not built a Drupal 8 site with facets on it.

Malabya

Open-source evangelist. Drupal Practice Head at Specbee

Community. That’s what motivates me to contribute. The feeling I get when someone uses your code or module or theme is great. Which is a good drive to motivate for more contributions. Drupal being an open-source software, it is where it is just of the contributions by thousands of contributors. So, when we use Drupal it is our responsibility to contribute back to the software to make it even better for a wider reach

Apart from contributing modules, theme & distributions I help in organising local meetups in Bangalore and mentoring new developers to contribute and begin their contribution journey from the root level. This gives me immense pleasure when I can help someone to introduce to the world of Drupal and make them understand about the importance of contributions and community. Going forward, I would definitely strive towards introducing Drupal to students giving them a career choice and bring in more members to the Drupal community.

Nick Wilde

Drupal developer at Taoti Creative

My main motivation has always been improving what I use - first OS contribution before my Drupal days was a bug-fix for an abandoned at the time project that was impairing my Modding of TES-III Morrowind ;). I like the challenges and benefits of working in a community. Code reviews both that I've done and those done on my code have been incredibly important to my growth as a developer. I also have used it as a portfolio/career advancement method, although that is important it is only of tertiary importance to me. Seeing a test go green or a getting confirmation that a bug is fixed is incredibly satisfying to me personally. Also, I believe if you use an open source project especially professionally, contributing back is the right thing.

My level of contributions vary a fair bit depending on my personal and professional level of busy, but mostly through contrib module maintenance/patch submissions. Also in the last year or so, I've been getting into a lot more mentorship roles - both in my new company and within the broader community. Restarted my local Drupal meetup and am doing presentations there regularly.

Rachel Norfolk

Community Liaison at Drupal Association

Contribution for me is, at least partly, a selfish act. I have learned so much from some of the best people in the industry, simply by following along and helping where I can. I have also built up an amazing network of people who, because they know I help others, are more prepared to help me when I need it. Both code and other ways of contributing. I’m occasionally in the Drupal core issue queues, I help mentor others and I get involved in community issues.

Renato Goncalves

Software Engineer at CI&T's Drupal Competence Office (DCO)

My first motivation to contribute to the Drupal community is helping others that have the same requirement as mine. To be honest, I get very happy when someone uses my community code in their projects. I'm glad to know that I'm helping people. When I'm developing a new feature I check if my solution can be useful to other projects and that way I create my code using a generic way. - Usually, I'm the first to reuse the code several times. I think this is important to make Drupal a powerful and collaborative framework. I liked my first experience using the framework because for each requirement of my project, Drupal has a solution. I think contributing to the community is important for that. More and more new people are going to use the framework, and consequently new contributors, and in that way, it becomes increasingly powerful and efficient. An example of this is the Drupal Security Team, where they work hard to ensure that Drupal is a secure framework. I'm making contributions at the same time I delivery projects. Today I write my code in a generic way, that is, the code can be reused in other times. A good example of this model is the Janrain Connect project. This project is official in the community (contrib project) and my team and I work hard using 100% of the generic code, so we can reuse this code on other cases.

When we need to make some improvement in the code, the first point is checking a way to make this improvement using a generic solution. Using this approach we can help our project and help the community. In this way, we are contributing to making an organized and agile framework. The goal is that other people don't need to re-write code. It is a way of transforming the framework into a collaborative model.

Thomas Seidl

Drupal developer, “The Search API Guy”

My motivation comes from several sources: First off, I just like programming, and while fixing bugs, writing tests or giving support isn’t always fun, a lot of the time working on my modules is. It’s just one of my hobbies in that regard. Then, with my modules running on more than 100,000 sites (based on the report), there’s both a sense of accomplishment and responsibility – I feel proud in providing functionality for so many sites, and while, as a volunteer, I don’t feel directly responsible for them, I still want to help improve them where I can, take away pain points and ensure they keep running. And lastly, having a popular, well-maintained module is also the base of my business as a freelancer: it not only provides marketing for my abilities, but also the very market of users who want customizations. So, maintaining and improving my modules is also, indirectly, important for my income, even though the vast majority of my contributed work is unpaid.

Apart from participating in coding standards discussions, I almost exclusively contribute by maintaining my modules (and, increasingly rarely, adding new ones) – fixing bugs, adding features, answering support requests, etc. I sometimes also provide patches for other modules, but generally only when I’m paid to do so. (“My modules” being Search API and its add-on modules Database Search, Autocomplete, Saved Searches and, for D7 only, Solr, Pages, Location and Multi-Index Searches.)

And Lastly....

It’s not just brands that have adopted Drupal as their CMS – they are the cream of brands. From NASA to the Emmy Awards. From Harvard University to eBay. From Twitter to the New York State. These brands have various reasons to choose Drupal as their Content Management System. Drupal’s adaptability to any business process, advanced UX and UI capabilities for an interactive and personalized experience, load-time optimization functionalities, easy content authoring and management, high-security standards, the API-first architecture and so much more!

The major reason why Drupal is being accepted and endorsed by more than a million websites today is because Drupal is always ahead of the curve. Especially since Drupal adopted a continuous innovation model wherein updated versions are released every 6-months with seamless upgrade paths. All of this is possible because of the proactive and ever-evolving Drupal community. The goals for their contributions may vary - from optimizing projects for personal/professional success to creating an impact on others or simply to gain more experience. Either way, they are making a difference and taking Drupal to the next level every time they contribute. Thanks to all the contributors who are making Drupal a better place.

I’d like to end with an excerpt from Dries - “It’s really the Drupal community and not so much the software that makes the Drupal project what it is. So fostering the Drupal community is actually more important than just managing the code base.”

Warmly thanking all the mentioned contributors for helping me put this article together.

Apr 24 2019
Apr 24

Simple or custom-made? Is it a quick-to-assemble, rather “prototypical” form that you need for your website? Or a more complex, custom-made one? In a Drupal 8 Contact Forms vs Webform “debate”, which Drupal form builder best suits your data collection requirements?

On one hand, you have the convenience of creating your web forms in no time: simple, straightforward, “conventional” web forms. On the other hand, you get to scan through a never-ending list of advanced options and come up with a complex, fully custom-made web form.

That, of course, if you don't mind the time you need to invest in going through all those different form elements and available features and the risk of getting... overwhelmed by tons of field customization options.

Ease of use vs unlimited capabilities...

The convenience of getting your forms up and ready to collect user data in no time vs the chance to tailor some more advanced forms, ideally customized, carrying lots of different field values.

Decisions, decision...

Now, to help you decide here's a more detailed Drupal 8 Contact Forms vs Webform comparison. Weigh each one of the 2 form modules' benefits and drawbacks, set them against your own needs and... make the choice:


1. The Contact Forms Module 

Being part of Drupal core, there's no need to download and install the module.

Just go to Structure>Contact forms. Next, choose either to opt for the default form or to set up a new one: click the “Add contact form” button.

Drupal 8 Contact Forms vs Webform: Add Contact Form


Once in the form creation screen, enter your form's values in the predefined fields that you have there:
 

  • give the form a name in the “Label” field
  • enter the email address where all the form submission will be sent to (most probably your site admin address) in the “Recipients” field
  • enter your “Thank you” text in the “Message” field there; this will be the “thank you” text line your users will see once they hit the “submit/send” button 
  • in the “Redirect path”, enter the URL to the page that you want them to get forwarded to after they've submitted the forms (that if you don't want them to be redirected back to the homepage, by default)
  • click “Save” and there you have it: a simple form, with all the basic, must-have field values, built in no time
     

Of course, that doesn't mean that you can't further explore the given features and maybe add a few more fields and even styling options.

For instance, you could “Edit” your newly created form. Just select it in the “Contact Forms” screen and, scrolling down the options in the drop-down menu opening up, click the “Manage fields” option.

Click “Add field”, then “select a field type” – Text(plain), let's say – enter the “Label” and configure its settings.

Furthermore, if you want to style your form a bit, hit the “Manage form display” tab and... opt for a placeholder, for example. Next, explore the options available in the “Manage display” screen. For instance, you get to decide if you want your field label to be hidden, inline or visually hidden...

In short: in a Drupal 8 Contact Forms vs Webform comparison, the first form builder will always outshine the latter when it comes to ease of use.

It empowers you to set up a simple form quick and easy...
 

2. The Webform Module

Now, if Contact Forms is a rather minimalist form builder, the Webform module is a feature-rich, powerful one.

The customization features that it ships with go from email notifications to fine-grained access, from statistic collection of data to delivering results in a CSV format. From exporting data in various formats to... conditional sorting and filtering.

In other words, with Webform sky is the limit when it comes to the contact form that you can create.

It can go from a basic one to a highly complex, multi-page form. One made of lots of elements, advanced options for the user to select from, settings and features for you to leverage in the back-end...

But, let's keep in mind that it's contributed module so you'll first need to download it from Drupal.org.

Next, go to “Structure” and hit the “Webforms” tab. Then, click the “Add webform” button and, in the next screen popping up, give your new form a name (enter it in the “Title” field).

You'll be automatically forwarded to the “Build” tab, which is where all the “magic happens”. Once you click the “Add element” button, you'll get to “swim through” a sea of lots and lots... and lots of form elements (known as “fields” in Contact forms) to choose from. Ranging from basic to really advanced ones...

Webform: Select an Element Screen


Let's assume that you'll want to add a “Text field” element. Click the “Add Element” button corresponding it, then scan through all the new customization options listed up in the “Add Text field element” screen opening up next...

Feel free to add other elements to your webform: a “text area” maybe, an “email” element, as well... 

Note: do keep in mind that, once you've settled for the final fields/elements to be included in your web form, you can always change the order to get them displayed in. Just drag and drop them till they fit that predefined order in your mind...

Also, you can check/mark them as “Required” and turn them into “must fill in" fields, as opposed to optional form fields.

Note: feel free to edit that “Thank you” page that your webform will automatically forward users to. How? By clicking “Back to form”>"Settings”>"Confirmation” and selecting from the different options that you have there:
 

  • enter your own Confirmation title (e.g. “Thank you!”)
  • customize your Confirmation message
     

3. Drupal 8 Contact Forms vs Webform: Key Differences

Now that we've run our spotlight over each one of these 2 form building tools, let's make an inventory of the differences that we've identified:
 

  • first of all, it's obvious that the Webform module gives you more control over your web forms' design
     
  • also, unlike Contact Forms, it supports conditional emails; you get to send an email to a specific user in your list based on conditions associated with the value of certain elements in your form
     
  • Webform enables you to add basic logic to your web forms
     
  • … it comes packed with tons of advanced options, ranging from JS effects to conditional logic, to submission handling, etc.
     
  • Contact Forms, on the other hand, allows you to set up a simple contact form in the blink of an eye; you skip the tedious process of scanning through lots and lots of options, settings, and complex features
     
  • Webform allows you to create your forms either in a YAML file or in its the admin-friendly UI
     
  • also, Webform comes as a “cluster” of submodules – Webform REST, Honeypot, Webform Views, SMTP, Webform Encrypt, etc. – which are “responsible for” its multiple capabilities
     

4. In Conclusion...

The conclusion of this Drupal 8 Contact Forms vs Webform “debate” is quite simple: 

If you need a basic form on your website and you need it built fast, go with Contact Forms. Being included in Drupal 8 adds convenience...

But if you want to customize your form (and you have the time), to style it to your liking and “turbocharge” with advanced features and options, then go with Webform.
 

It's a much more powerful and feature-rich form builder, perfectly suited for your complex requirements...


Image by Tumisu from Pixabay

Apr 24 2019
Apr 24

The 20th and 21st April’s weekends were very long-awaited by ADCI Solutions because of the Global Training Day (GTD) event in our office.

ADCI Solutions is a permanent organizer of GTD in Omsk city. Twice a year we invitе tech students, web developers newbies to ADCI Events Hub to share different reports about web development and our experience. We try to make our sessions interesting and funny, it makes reports easy to understand for every conference’s participant. So, don’t be shy and be with us at our next event. 

It’s funny that Global Training Day isn’t a day, it’s two days. On the first day, professionals from ADCI Solutions told about the back end, front end, web design, and project management. The second day is a day of practice. We suggest our attendees create websites and modules by themselves. 

The first day consisted of four reports:

  1. Sergey Sergeyev “How it’s made? Product development”
  2. Denis Golubev “Lord of pixels. Starter pack”
  3. Alexander Shmakov “Back end - it is easy”
  4. Maxim Luckyanchikov “May the force be with you…or how to be a front-end Jedi” 

To immerse our guests in web development company’s work, we decided to start our reports talking about our everyday processes. Sergey Sergeev spoke about how dev teams make web products, what the roles there are in the development processes, and what interactions with clients are like.  

The second report was focused on web design. Our head of design department Denis Golubev spoke about how to become a web designer. Denis shared the most popular and modern tools that can help web designers to create a masterpiece. Also, Denis told about how to create your own portfolio and how to get your first project.

Alexander Smakov is the ADCI Solutions company’s back-end developer and he spoke about why the back end is a great choice, what its nitty-gritty is. He told in detail what the back end’s role in website functioning is.  

The last report was about the front end and what a good front-end developer should know. Maxim Luckyanchikov spoke about basic tools that the front-end developer should own, he shared his own experience and gave advice to beginners. Maxim revealed the secret that his favorite framework is Vanilla JS.

Traditionally, we finished the first conference’s day with a joint photo, find it below.

On the second day, the attendees developed their own websites and modules on the Drupal CMS. Our professionals were mentors for beginners, they helped and answered the questions.  

On the first and second days, we had pizza and coffee breaks, it’s a good opportunity to snack and make new acquaintances. Also, we made a prizes draw: a certificate from a school of foreign languages and our signature sticker packs.

It is important to note, that on GTD we used our new service Survey which let us know what participants think about reports and event organization. We believe that our efforts provided useful tools for beginners, answered all the questions they had. We are sure that conferences like GTD help all newbies to find the right way on the web development area. 

Apr 23 2019
Apr 23

One key theme was constant throughout the entire event: experience. While experience is nothing new, something felt different. The focus on experience at DrupalCon 2019 was truly authentic, and during the event these three things really stuck out:

Drupal community experience

The Drupal community is committed to creating a collaborative space for all contributors. At the Driesnote, this point was reinforced by the focus on Diversity and Inclusion to improve everyone’s experience on the Drupal platform. Seeing what the community had contributed in 2018, and what is to come for Drupal migrations and platform, was inspiring.

Commitment to Drupal platform development to better deliver customer experiences

Sessions throughout the week highlighted improving customer experiences. Experience accompanying development is not a new concept, but we saw how contributors are bringing that to life. Drupal itself is evolving to enable improved customer experiences, which allows us to eliminate technical barriers other platforms are still struggling with.

DrupalCon experiences - for all Drupal users

The community’s relentless focus on improving the platform for not only developers, but content editors and digital marketers were recognized with the addition of two content tracks: Content Editors and Digital Marketers, and Decision Makers. I was also privileged to host a training session for community members in project management to further expand resources at DrupalCon for non-developers.

 

At DrupalCon 2019 Seattle, our team not only learned about many of the advancements in the Drupal community, but we were also able to share our experiences, learnings and case studies from our recent Drupal work. In case you missed, or would like to learn more, check out these FFW session recordings:

Building Websites for the Asian Market

Businesses are always taking opportunities for growth and are looking to expand to new markets. One of the emerging areas where a lot of companies are looking to build a presence is Asia. Acquiring new customers in a new market and then serving them means that all these companies need a website/digital footprint to serve the target audience.

FFW team members, Andrew Wilden, Director of Solutions & Strategy, and Adriana Mosnoi, Senior Project Manager, discuss customizing user experiences for the Asian market and how translation is simply not sufficient for design and building websites that are relevant for diverse cultures.

Stanford and FFW - Defaulting to Open

For higher education institutes, every bit of the digital budget counts. While it can be hard to justify investing money back into open source projects, the Stanford Web Services has gotten a lot back from their investments into Drupal.

This session discusses how organizations — both on the agency side and on the client side — maximized their ROI by investing back into the Drupal community. Andrew Willden, Director of Solutions & Strategy, FFW and Alison Ho, Web Project Manager, Stanford Web Services, share how those investments have helped Stanford Web Services do even more, better.

30 Minutes to Actionable Strategies that will Improve Customer Experience

Ever feel like you're jumping from one problem to the next putting out fires but never get the bandwidth to implement longer term solutions?  Learn how to create actionable strategies to improve customer experiences. I cover the importance of establishing baseline assessments and measuring progress through regular formal audits of your content, architecture, workflow and infrastructure to seize opportunities that will strengthen visitor journeys and increase conversions.

Drupal Blue/Green Deployment with AWS ECS

Drupal deployments are hard. You have to make sure your code is deployed, composer dependencies are pulled, schema updates are performed and caches cleared, all while keeping your website up and responsive for the users. Add in the complexity of hosting on multiple servers and users updating content 24/7, it gets even more interesting.

Blue/Green deployments is the solution to this problem, Alexei Gorobet, Group Architect, asgorobet, shares how to do that with Drupal.

 

We’re already looking ahead to DrupalCon 2020 in Minneapolis. If you have feedback on FFW content or ideas for 30 minute lightning sessions, I would love to hear it. You can send me suggestions directly on Drupal.org at rgs.

Want to continue expanding your Drupal knowledge outside of DrupalCon? Check out our calendar of upcoming trainings. Also click here to view all of our all learning resources.

Apr 23 2019
Apr 23

Subscribe to the TCDrupal News

*/
Apr 23 2019
Apr 23

Recent Aaron Winborn Award winner, Leslie Glynn, talks about what keeps her coming back to DrupalCon, her love for illuminating people, and when the heck will Tom Brady retire?

"...to continue learning new things, and that's where you learn, is from the community."

Pages

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web