Jan 15 2020
Jan 15

This year Drupal Global Contribution Weekend is on January 24-26, 2020 with such varied locations as Delhi, Novosibirsk, Ghent, Frankfurt, Milan, Zurich, Lutsk, London (on two continents!), Boston, Minneapolis, etc. Wow! It is truly a global gathering! With Drupal 9 planned to be released later this year, what better to focus on, than making drupal.org projects Drupal 9 ready?

To help you do that I went in and updated my open source State of Drupal 9 talk. People can use this to present at any location to get people up to speed about Drupal 9. If you need a video recording of it, there is one from DrupalCamp Belarus in May 2019. While the content got slightly updated since then, the recording should help get it.

After or instead of presenting that session, I thought a quickstart guide would be really useful to help people get started with contributing. While this looks like a colorful guide you would print, it is actually full of useful links (some to my earlier blog posts for details), so I suggest you use it in digital form.

What are you planning to do for Drupal Global Contribution Weekend this year?

Jan 15 2020
Jan 15

Testing has become an important topic in recent years thanks to the explosion of testing technologies and continuous integration (CI) approaches but also due to the need for an ever-widening range of tests for a variety of use cases. For many developers, understanding how to incorporate testing into their development workflows can be daunting due to the many terms involved and, worse yet, the many tools available both in software-as-a-service (SaaS) companies and in open-source ecosystems like Drupal.

Yuriy Gerasimov (Senior Back-End Engineer at Tag1 Consulting) presented a session at DrupalCon New Orleans about modern testing approaches and how to decide on the correct suite of tests for your software development workflows. In this four-part blog series, we analyze the concepts in contemporary testing approaches that you need to know in your day-to-day and why they can not only protect but also accelerate your project progress. In this first installment, we take a look at how to sell testing as an important component of client (your stakeholders) projects, as well as why automated testing is an essential component of any web implementation.

Why testing?

Many people around the web development landscape have heard of testing, but when you ask about real-world examples on real-life projects, the same developers admit that their testing infrastructures are sorely lacking. The most important reason for this is that while testing is a compelling value-add for developers, it can be difficult to incorporate testing as a required line item in projects, especially when business stakeholders are looking to save as much money as possible. How to sell testing to clients continues to be a challenging problem, especially because requesting that a client pay for an additional 100 hours on top of the 500 already incurred can be anathema to their sense of frugality.

After all, many customers will respond by arguing that by choosing you as an agency or developer, they already trust you to foster a high-quality outcome. As such, many clients will ask, “Why do we need to spend extra money on testing?” Without the overt benefit that project components like architectural workshops and actual implementation provide, testing is often the forgotten and most easily abandoned stage of a build.

A real-world example of the need for testing

In his talk at DrupalCon New Orleans, Yuriy describes a large project (prior to his time at Tag1) on which he collaborated with many other people on a development team tasked with finishing the implementation in six months. The project was for a local municipality, with many integration points and features. Every feature needed to work perfectly, including critical features for civic life such as applying for permits, and tolerance for dysfunction was low.

By the end of the project, originally slated for six months, Yuriy’s development team ultimately spent six months developing and an additional six months fixing issues and testing functionality. Fortunately for his team, the municipality had already been through a project whose timeline ballooned out of control, and the team was able to deliver the project within a year as opposed to the previous partner, who spent two years on the same project.

One of the most alarming aspects of the project at the time was that all of the testing the team had done until that moment consisted of manual testing sessions. A meeting was convened, and every developer stood up, responsible for describing the rationale for each feature they had built and demonstrating the feature. Every team member would then test each constituent feature and fix issues on the spot, in the moment.

Learning from past mistakes

As one can imagine, this manual testing approach is highly unsustainable for projects that require tight timelines with a high degree of confidence. Yuriy learned many lessons from the project, and in a subsequent implementation six months later, in which he and his collaborators built an application for people with hearing and speech difficulties, he made considerable changes. The project was complex, with several servers communicating with the application through REST APIs and a high expectation for a user experience that would allow users to click icons representing elocutions that would speak in their place.

From the beginning, Yuriy and his team baked in automated testing up front to test communication with the REST APIs and ensure all requests were functioning properly. They built the project to be scalable because they knew that many users would be using the application simultaneously. In the end, the quality assurance (QA) overhead was minimal, because developers on the team could simply run automated tests and show the result to the client. Even though the size of the project was roughly the same, having built-in automated testing with acceptance criteria was a benefit difficult to overstate.

Defending quality: Selling testing to customers

When testing aficionados attempt to sell testing to customers, they must frame the investment in terms of quality and long term vs. short term costs (failing to deal with this in the short term will actually cost you more in the long term). However, it is admittedly difficult to sell something when its success cannot be measured. After all, from the client perspective, a buyer is selecting a vendor based on the quality with which they implement projects. But there are only anecdotal metrics that indicate whether an organization performs better than another with high-quality projects. For this reason, it is essential that developers interested in selling testing as part of their contracts offer metrics that are comprehensible to the customer.

In the end, the sole concern of customers is that software is delivered without bugs. While ease of maintenance is also important, this is generally considered table-stakes among stakeholders (or a problem for the future). In order to provide a high degree of confidence for issue-free builds, we need metrics for traits like performance and code quality (like adherence to Drupal’s coding standards). Thus, when a customer asks about the justification of a metric such as code quality, we can show the results of tools like code audits, which in Drupal consist of a single Drush command that generates a full report. By performing a code audit on a codebase written by a less experienced team, for example, clients can be sold immediately on the value of your team by seeing the results of a highly critical code audit—and will seldom be opposed to your team winning the contract.

Automated testing

For many developers who are new to the concept of automated testing, the term can unleash a torrent of anxiety and concern about the massive amount of work required. This is why Yuriy recommends, first and foremost, building a testing infrastructure and workflow that demands minimum effort while yielding maximum dividends. Nonetheless, successful automated testing requires a robust testing infrastructure and a healthy development culture that is supportive. Without these elements, success is seldom guaranteed.

Fortunately, the up-front cost of automated testing is low owing to the “one and done” nature of automated testing. Though it’s likely you’ll spend a few weeks building out the infrastructure, there is no need to repeat the same process over and over again. Nevertheless, Yuriy recommends exploring the approaches that other software companies and industries undertake to understand how they tackle similar requirements. For example, automated testing for the C language has been around for many years. Moreover, there is no need to write our own continuous integration (CI) server, thanks to the wide variety of services available on the market, including software-as-a-service (SaaS) solutions that charge as little as $50 per month.

Even if you have written a large number of tests for your project, one of the most important aspects of automated testing may seem particularly obvious. If you don’t run automated tests regularly, you won’t receive any benefits. For instance, it is certainly not adequate to inform your customer that you have implemented automated testing unless you are running said tests weekly or monthly based on the project requirements. Otherwise, the value of the time you have spent implementing automated tests becomes questionable.

Conclusion

As you can see, testing is frequently the most easily forgotten component of web projects due to the extent to which clients question its value. However, armed with the right approaches to selling tests, you too can cultivate a culture of quality assurance (QA) not only within your development team but also for your business’s customers. With the help of automated testing, you can reduce the headaches for your team down the road and justify additional time that means extra money in your pocket.

In this blog post, we covered some of the important aspects of modern testing approaches and why customers are beginning to take a second look at the importance of quality in their projects. In the second installment of this four-part blog series, we’ll turn our attention to implementing testing infrastructures and fostering a development culture favorable to testing within your existing projects. We’ll discuss some of the maintenance costs associated with implementing automated testing and begin to look at two of the most prominent areas of testing: code checks and unit testing.

Special thanks to Yuriy Gerasimov, Jeremy Andrews, and Michael Meyers for their feedback during the writing process.

Jan 15 2020
Jan 15

If users have questions, this is great — because this means they are interested. Providing clear and informative answers can give you enormous benefits. So it’s worth including FAQ (Frequently Asked Questions) in your content marketing strategy.

Here we will discuss reasons for this, as well as show how an FAQ section is created. This post will be particularly interesting for those who have a Drupal website, as well as those who are just choosing a CMS. See how a very nice Drupal module — the FAQ Field — creates a FAQ section. Our explanation will be accompanied by a video.

The advantages of an FAQ page or section (+ examples)

An FAQ in any form depending on your website’s needs (a glossary of terms, frequently asked questions with answers, a set of instructions, etc.) could do the following for you:

  • An FAQ section or an FAQ page saves your team’s time in answering the users’ routine questions about your products, services, terms of use, website’s work, etc.

Example of FAQ on a website

  • The questions and answers increase the website’s user-friendliness by helping users quickly reach their goals.
  • Content like this adds authority to your brand by showing that you care for your visitors, willingly share useful information, and possess enough expertise.
  • The question-and-answer sections give a good logical structure to your pages and can be presented in a variety of designs (accordion menu, lists of anchor links, etc.)
  • Listing the common questions just the way users ask them on Google can significantly increase your search traffic.

Example of FAQ on a website

  • This is also the perfect way to get into Google’s featured snippets above all search results. It is the key step in optimizing your website for voice search.
  • Frequently asked questions with answers can help you encourage the buying decisions, resolve some of the common customers’ doubts about your product, share your vision, and more.

Example of FAQ on a website

The FAQ Field Drupal module to create an FAQ section

One of the simplest ways to create a FAQ section on a Drupal website is to use the FAQ field module. Let’s review its features.

Installing the FAQ field module in Drupal 8

A FAQ field for your content

When installed and enabled, the module allows you to add an FAQ field to a content type (article, blog post, product, story, etc.). Your content pieces will get a frequently asked questions section next to them.

FAQ field for content in Drupal 8

The FAQ field module can be compared to another Drupal module in this realm — the FAQ module. The latter creates a content type for FAQ while the former simply creates a field.

Having just a field gives you the additional flexibility to add frequently asked questions to your existing content types (e.g. e-commerce products).

A variety of FAQ designs

The FAQ field module allows you to choose between these design options on the Manage display tab of a content type:

  • HTML definition list
  • jQuery Accordion
  • HTML anchor list
  • simple text (themeable)

Configuring the display of FAQ in Drupal 8

The default for your FAQ section is the accordion menu with the first question opened:

FAQ section in Drupal 8 as jQuery accordion

You can have all questions closed and requiring an action (click) to open. To do this, use the accordion settings cogwheel, set the first default question to “None” and check “fully collapsible.”

Configuring jQuery accordion in Drupal 8 to show all FAQ closed

Now see the “HTML anchor list” option (that can be set as a bullet list or numeric list):

configuring the display of FAQ in Drupal 8 as an anchor list

Other useful features of the module include the FAQ height style adjustment and animation settings. To help your users find questions, it can be used together with modules like the Search API.

To enhance our story, we invite you also to enjoy the video about using the FAQ field Drupal module created by our team.

[embedded content]

Let professionals create an FAQ section on your website!

We have demonstrated a simple but nice way to create a FAQ section on your website. Ask our Drupal development team to build the frequently asked questions section or page that will look exactly in accordance with your wishes.

Jan 15 2020
Jan 15

The beginning of a new year always seems like a good time to take some time for reflection. While we started to do that the past couple of weeks, in an effort to wrap up some end of the year goals and finalize plans for how we wanted to start 2020, we realized that it's been quite a while since we've written about projects we're working on for the site. With Drupal 9's release planned for June of 2020 now is a great time to do this reflecting and planning work.

While much of my time in the past year has been focused around our new Osio Labs products, we've also been beginning to plan for an upgrade and migration to Drupal 8/9. This seems like a good opportunity to share a bit about how our infrastructure is evolving. As we start to plan for a future upgrade, it's important to take an inventory to help give us a sense of how the project is likely to go.

When I first started working on the Drupalize.Me site, shortly after it originally launched, our tools and processes looked quite a bit different than they do now. Back then we had a site built on Drupal 6, and were using a third-party provider to host our videos, and all of our content was exclusively video. We were using svn for version control, and Unfuddle for our project planning. Needless to say, things have changed quite a bit over the years.

Now, we've moved our writing process over to GitHub. This allows us to use issues, projects and milestones, and pull requests to organize the work of content development outside of Drupal. Joe has written about some of the advantages this gives us when it comes to editing and linting tools. Additionally, it's much easier for us to on-board new writers and editors with something like GitHub than it would be if we had built these tools on top of our CMS. We're doing our content work this way on all of our products. When pull requests are merged, our content is imported (or updated) automatically. On the whole, this process has been a big win for our team. Once we have our content created via this import process we then go about adding metadata to the tutorials (video assets, publication dates, tags, etc).

Our Drupalize.Me infrastructure is somewhat of a monolithic site, aside from the tutorial production process. A single codebase then handles everything from user registration, billing, content delivery, and your personal content queue. For our new products we're trying something a bit different.

Looking at our new products from the backend, there are quite a few similarities. We're still using GitHub to help with our content creation process and importing our content into Drupal. Drupal also still helps us out with user management, and billing (thanks to the Recurly module). That is where the similarities end.

Both GatsbyGuides and HeyNode are using the same Drupal-based backend site. When you visit the site as a member you're interacting with sites built on top of GatsbyJS. This decoupling allows us to reuse our work across our sites, while still allowing them to evolve independently. One of the big advantages we've seen using Gatsby so far is that the requirements to host the sites are drastically simplified. Another nice side effect of this decoupling is that these front-end sites are now solely responsible for displaying content. This has made it easier for us to write comprehensive tests, and deploy new code faster.

As we start the process of planning a migration to Drupal 8 (and eventually 9), we have the chance to compare and contrast the monolithic and decoupled approaches. While the planning work is still in it's early stages, the flexibility we've gained by decoupling parts of our site has given us some unique opportunities. Moving forward with our migration work, I'm hoping to continue to provide a bit of a peak behind the curtain into some of the decisions we're making. In my experience real world projects like these provide the best learning opportunities, so if any of you are working on a similar project I'd love to hear about it.

Jan 15 2020
Jan 15
Happy nineteenth birthday

Nineteen years ago today, I released Drupal 1.0.0. Every day, for the past nineteen years, the Drupal community has collaborated on providing the world with an Open Source CMS and making a difference on how the web is built and run.

It's easy to forget that software is written one line of code at the time. And that adoption is driven one website at the time. I look back on nearly two decades of Drupal, and I'm incredibly proud of our community, and how we've contributed to a more open, independent internet.

Today, many of us in the Drupal community are working towards the launch of Drupal 9. Major releases of Drupal only happen every 3-5 years. They are an opportunity to bring our community together, create something meaningful, and celebrate our collective work. But more importantly, major releases are our best opportunity to re-engage past users and attract new users, explaining why Drupal is better than closed CMS platforms.

As we mark Drupal's 19th year, let's all work together on a successful launch of Drupal 9 in 2020, including a wide-spread marketing strategy. It's the best birthday present we can give to Drupal.

January 15, 2020

46 sec read time

Jan 15 2020
Jan 15

What started out as a hobby project of Dries Buytaert, is now a global project with millions of users, active contributors and a strong ecosystem. Drupal is truly a phenomenon. It has continued to see a surfeit of experimentations. Thanks to the perpetual support by the Drupal Community over the years as it has always chosen the path of innovation, reinvention and evolution. 15 January 2020 marks the nineteenth birthday of Drupal.

Infographics with stars on top and bottom and the text for nineteenth 19th birthday for Drupal in the middle


There have been several content management systems bursting onto the scene and fading into thin air. But Drupal, as an open-source project, has always stayed with us, evolved and continued to reach greater heights. It still offers a lot to ponder over, tinker around and build something new. With each passing year, impelled by Drupal Community’s efforts, it has started becoming more easier to use and is constantly growing at a staggering rate.

Tweet showing an image on top left and the text below for Drupal birthday


It all began in 2000 when Dries decided to put an internal site, that was used for socialising between a small group of people, online. Dorp, a Dutch word for village, was supposed to be used for the domain name. A mistyping by Dries eventually paved the way for drop.org. With more members thronging the site, having healthy discussions and using it as an experimentation platform, Dries decided to release the software behind drop.org. Drupal 1.0.0 was thus born on 15 January 2001. Open-sourcing this project allowed others to leverage and extend the experimentation platform and ultimately explore new ways of web development.

Screengrab of project Drupal on git with several lines of programming codeCode commit by Dries on 29 December 2000 where the project was called Drupal for the first time

Not only has Drupal scaled new heights but has also helped Drupal fraternity undergo a lot of personal reinvention. Drupalists, thus, have never missed an opportunity to celebrate Drupal's birthday every year since its launch.

Sometimes, a simple ‘Happy Birthday’ is more than enough to show your gratitude to Drupal.

Tweet showing image of person on top left and zebra below it


At other times, the community members have expressed their merriment on sharing the same birthday date.

Tweet showing an image on top left and text below


The typo, that happened before the birth of Drupal, never seems to get erased from the memories of the community. It has made an indelible mark in the hearts of Drupalists. Drupal Community members leave no stone unturned to show that they can be as witty as any great stand-up comedian. They can use ‘typo’ as the theme of their Drupal birthday celebrations.

Tweet showing images of a person on top left and centre with text covering rest of the area


A quirky style was once applied by Dries himself to celebrate Drupal's birthday.

Tweet showing image of a person on top left and text below


And, a birthday cake is always special. So, we, at OpenSense Labs, organised a cake-cutting ceremony and asked our Drupalists to put forth their love for Drupal on the whiteboard.

A whiteboard with scribbles of Drupal appreciation and number 19 written at the centre and a blue cake below


Teenage is deemed as one of the best periods of our youth. The new sensations, victories and obstacles make for an exciting collection of memories that we hark back to. These are the kind of memories where we immerse ourselves in and go into the state of nostalgia in the later stages of life. Drupal enters its last year of teenage too. A lot of fantastic developments have happened in the last few years vis-à-vis Drupal. There is still a lot of room for improvement and the community knows where the Drupal lags behind.

2019 has especially been wonderful for Drupal as it witnessed an increase in Drupal contributions, plentitude of efforts was taken for making Drupal more diverse and inclusive and the foundation for Drupal 9 release was laid out. We, along with millions of Drupal lovers all around the world, are waiting for the launch of Drupal 9 eagerly and hoping to celebrate many more birthdays of Drupal.

Jan 15 2020
Jan 15

With websites playing a major role in determining customer needs and impacting business sales, a second’s lapse in loading can make a customer think twice about staying on the website. 

As per Amazon’s findings, it stands to lose up to $1.6 BILLION per year if their site was slowed down by just one second. 

A reliable and fast web hosting provider can play a crucial role for your business to retain online users. 

While looking for a hosting provider for your website, what qualifies as the best solution? Does CMS specific hosting really have an impact on website performance?

Let’s find out! 

Why Drupal-Specific Hosting?

Drupal specific hosting is safer and better as it is more compatible out of the box and comes with a bundle of other benefits: 

1. Easier Installation For Quicker Website Building

Choosing Drupal-specific hosting providers helps with quick 1-click installs which can be completed within minutes. It’s best to to opt for CMS friendly web hosting solutions to sync up easily.

2. No Further Cost Associated

A Drupal specific host can provide a server infrastructure that is specifically optimized for running Drupal websites at no extra hidden cost.

3. Flawless User Experience

The benefit of working with Drupal-specific hosting is that it can notify you of any website performance issues or of any upcoming minor or major release and assures seamless user experience.

4. Strong Community Support

Drupal Community support for your website as well as your hosting provider with a plethora of huge libraries of modules and extensions can support you if you get stuck.

What are Drupal Web Hosting Requirements?

It is essential to choose a hosting provider which can match the setup of the CMS you’re using. 

With Drupal being a  CMS which has numerous modules running, it would need a hosting solution which can offer a huge spacing model. A basic Drupal site will need around 2 GB of RAM and 10 GB of total storage, MySQL 5.5 or higher for Drupal 8 and MySQL 5.0.15 or higher for Drupal 7. Also, the core installation takes about 100 MB on the web server, depending upon the modules, themes and content needed for your website. 

What Qualities Determine Best Hosting Provider?

 

With multiple options of popular web hosting available out there, choosing the right Drupal hosting can be a humongous task. Not just fast server speeds, but qualities to look in a hosting provider include robust security, one-click Drupal installs, migration assistance, scalable hosting, daily backups, and which come with Drupal utilities pre-installed. 

We have curated a list of things which you should consider in the hosting provider for your website. They’re listed as follows:

 

  • Higher Uptime Percentage: While choosing a hosting provider, ensure that it has a reputable uptime percentage, preferably above 99.5%, which shows how much time your hosted website will be online for its users. A weak server and unstable network connections of a hosting provider can often make your website offline.
  • Better Page Load Speed: Server speed is different than website speed. There’s no use optimizing your website if it is sluggish on the server it’s hosted on. With only 3 seconds to catch a visitor’s attention, you don’t want to lose one with a slow server response time. To stand out amongst million websites on the web, a super-fast loading website can transform a visitor to a customer.
     
  • Reliable Customer Support: This is an important aspect for your web hosting and should not be overlooked. Your provider should offer support on emails, chat, phone and much more and should have a responsive reputation in their support department. 
  • Automated Backup Restore: A good host will ensure daily website backup of all content, files, and code in case of unpreventable accidents.
  • Standard Development Workflows: An ideal Drupal hosting solution will usually come with three environments (dev, stage and live) in the cost of the subscription. Dev environment is used only by the development team to build and test new features, stage environment for bug fixes before they are launched to your live/production site, live environment being client facing with live content
  • Cost-Effectiveness: Well, who doesn’t want an affordable and reliable web host? 

Srijan’s Recommendations For Drupal Website Hosting

We’ve chalked out a list of some of the best Drupal platforms that are trusted and proven to provide the best service for small to enterprise business.

AcquiacloudimageAcquia Cloud platform tops our list of the best Drupal hosting providers. A trustable name in the hosting industry, it is not only secure and compliant, but also is improved to be able to support Drupal 8 sites. The provider has a huge support staff and is the most preferred channel for big names like BBC world.  Its starting price for small businesses is $141/month and ranges to $795/month for mid-size businesses. Users could try the free version before deciding to go for it. 

Pantheonimage

Pantheon offers a competitive price for Drupal hosting with uncompromisable performance. Makes your Drupal run faster, this hosting provider handles traffic spikes without any hiccups. Big names like Apigee, Tableau rely on it and stands strong based on user reviews. Offering in-built dev, staging and live environments, it is developer friendly provider helping them deploy code securely, using a continuous integration workflow. Its most popular plan starts from $114/month and is apt for traffic-intensive websites.

Sitegroundimage

Siteground hosting provider is tailored as per your Drupal website needs. Well backed by Drupal experts, the plan comes with an easier start, alongwith 1-click Drupal install and no-downtime for your website. Here’s a list of its amazing features:

  • 30 daily backup of website
  • 100% security from attacks
  • 24/7 uptime monitoring
  • Latest technology hardware used
  • 24*7 Drupal expert support available

It offers affordable hosting plans starting from $3.95/month. 

AWS offers a cloud hosting platform for your Drupal website. Its extensive computing power and faster content delivery can help your businesses scale and grow rapidly. It offers various services to host Drupal 8 in a distributed environment.

It is considered best for medium to large enterprises. You can check the pricing details here and use the calculator to see if the cost suits your budget.

A2hostingimageHigh powered hosting to meet your needs, it offers 20 times faster speed for your Drupal website at four affordable plans for shared, reseller, VPS and dedicated server hosting. It is optimized for speed and performance, with Drupal being pre-installed with every hosting plan. Here’s a highlight of what it offers:

  • Fast servers for a supreme user experience
  • Friendly and knowledgeable support team available 24/7/365
  • Completely risk free money back guarantee
  • 99.9% uptime commitment

While there are numerous providers for hosting a site and some of them appearing just tailor made specific to unique needs of Drupal sites, if you need assistance in deciding which one suits your needs, contact us. Experts at Srijan can guide you to opt for the best hosting solution as per your Drupal needs.

Jan 14 2020
Jan 14

Content management systems (CMSs) are the engine that drive content creation on the web today. They form the foundation that we build on for publishing and sharing information, creating digital experiences and conducting online retail. WordPress and Drupal are staples in the CMS world and they have both been around a long time. WordPress is known for its intuitive and easy-to-use interface. Drupal is known for its flexibility and complexity. While both have their strengths and weaknesses, the usability gap between WordPress and Drupal is changing. This article will show you the current state of Drupal’s admin user experience in a side-by-side comparison with WordPress, the most widely used CMS. If you’re familiar with one CMS but not the other, this comparison is also a good introduction to the other.

TL;DR: The primary goal of this article is to dispel the perception that Drupal is widely different and harder for administrators to use than WordPress. If you don’t care about the background behind this perception, just skip down to the direct comparison.

WordPress is easy, Drupal is hard… why does this perception exist

But first, a little background. The dominant CMS in terms of number of sites running on it is WordPress. It’s estimated to power about 62% of all websites that use a CMS, meaning multiple millions of websites are using it. Why is WordPress so popular? WordPress started as a blogging engine with a focus on being easy-to-use. This proved to be incredibly important because it meant that nearly anyone could get a WordPress site up and running fast and be able to use it with little-to-no training. The idea caught fire with both individuals and local businesses who just wanted a simple, low-cost website that others could find online. Web developers and agencies also finally had a framework that allowed their clients to make simple content edits within an admin environment that was friendly. Of course, WordPress today can be used for much more than a simple website, but it is still ideal for simple websites. Another key takeaway here is this perception of WordPress as being easy-to-use. This reputation holds true just as much today as it ever did in the past.

This article isn’t actually meant to praise and promote WordPress. Instead, much of this article will focus on another popular CMS, Drupal. Drupal is a fantastic CMS and is incredibly powerful when used correctly. In many web development circles, Drupal is the go-to solution for providing a robust solution for today’s CMS driven website development. It’s thriving both in usage and as a community of enthusiasts, but while WordPress sits in #1 spot with 62% of the market share, Drupal holds steady at #3 with about 3%. It still means there are many hundreds of thousands of websites powered by Drupal, but the number of websites using it pales in comparison to WordPress.

Why isn’t Drupal more popular? Well, anyone who knows Drupal (and even many who don’t) will tell you that Drupal is best suited for large websites with high traffic and complex requirements. Universities, government, nonprofits and online retailers are a sample of who uses Drupal. Drupal out-of-the-box isn’t as ready to use as WordPress, so it’s unlikely a suitable fit for simple websites. For individuals, configuring Drupal is a steep learning curve. For local web agencies, it takes more time to setup which means they must charge more. These reasons alone largely take Drupal out of the running for many websites, so for Drupal it’s more about use case than mass adoption.

With that said, Drupal’s ability to be configured and developed on literally means it can handle nearly any situation required of it, whether that means selling products for enterprise businesses or being the integration layer between multiple platforms. While this inherent flexibility is great for software developers, Drupal’s perception of complexity combined with a historically underwhelming admin experience has cemented a reputation that Drupal is unintuitive and difficult to use for the end user, the people who will be using it every day. While in my opinion this isn’t true of today’s Drupal, like WordPress it’s reputation precedes it. In Drupal’s case, however, this reputation isn’t as flattering and it’s something that our sales and outreach teams battle with often.

For Drupal, it’s time for change

Like WordPress, Drupal is open source software. It’s free to use and anyone has full access to the underlying code to modify and build upon. Both platforms have a core team for advancing key initiatives and a massive community of individuals and organizations that support the initiatives while also adding additional functionality through plugins (WordPress lingo) or modules (Drupal lingo).

While usability has always been important to WordPress (since it started as a blogging platform), Drupal was historically more focused on being open and flexible. It’s user experience has continuously improved with each version release, but late in 2018 marked the beginning of a big push towards modernizing the Drupal admin user interface (UI). Drupal is really amazing software and it’s time that the admin experience catches up.

Introducing Claro, Drupal’s new admin UI

Drupal 8 Claro admin theme
Claro interface design mockup courtesy of Drupal.org

Claro is the new admin theme being built as part of the Admin UI Modernization initiative. It’s included with every Drupal 8 site, new and old, and can be enabled right now if you so choose. Just be aware that it is currently considered “experimental” while progress continues to be made. It’s not yet in its finished state, but you can view the development roadmap here to see what is still left to do.

Side-by-side: WordPress & Drupal Admin UI Comparison

On to the comparison!

For WordPress, I’m using version 5.3.2 (released Dec. 18, 2019) which comes with its own Twenty Twenty default theme and content.

For Drupal, I’m using version 8.8.1 (also released Dec. 19, 2019. How about that!) and the new, but experimental, Claro admin theme. If you’re looking at this at a later date, some aspects may be different (for the better!) as development of the theme continues. I’ve also installed Drupal using the official Umami demo install profile so that I have a theme and some content to work with.

In each of the 10 comparison categories below, I’ll give my opinion on which CMS has the edge out-of-the-box and why I think this. I’ve used both platforms and do have some bias towards Drupal, but I’ll do my best to keep that in check.

Category quicklinks
  1. Admin toolbar
  2. Login dashboard
  3. Managing media
  4. Creating pages
  5. Editing pages
  6. Managing widgets and blocks
  7. Managing menus
  8. Managing users, roles and permissions
  9. Site status report
  10. Plugins and modules
  11. WordPress & Drupal comparison summary

1. Admin toolbar

The admin toolbar is always present on the page of both WordPress and Drupal.

WordPress

WordPress admin toolbar

In WordPress, a single toolbar is used as a jump-off point for common admin pages, but you can also start the content creation process and access your account profile and information.

Drupal

Drupal 8 admin toolbar

Drupal has a similar admin toolbar except you have access to everything including creating new content. Every admin page that your user role has permission to view is available through this menu. While it’s more to look at initially, experienced users enjoy fewer clicks to get where they want to go.

Edge: Drupal

While the learning curve to know where everything is might be a bit steeper, experienced Drupal users enjoy being able to access everything in one familiar way. With that said, new users may find this larger menu intimidating.

2. Login dashboard

After logging in, the login dashboard is the first page you see. WordPress and Drupal both take a different approach to their login dashboard.

WordPress

WordPress login dashboard

WordPress has a robust dashboard right out of the gate. This dashboard takes admins away from the site frontend and into an interface that only they can see. The left side has a larger menu for accessing the rest of the admin interface. The main content area mix of useful information about your site and information specific to WordPress as a whole, such as training resources and upcoming WordPress events. The panes on this page can be toggled on and off and plugins can add new panes.

Drupal

Drupal 8 login dashboard

This is the first area where Drupal takes a different approach. Instead of a robust dashboard, you don’t actually get much of anything. The admin toolbar already gives you access to the entire site, so Drupal keeps you on the website frontend and instead shows you your “user page”. This page is entirely customizable although you will most likely need third-party or IT support to do so. It’s an open canvas to do with as you like. For ecommerce, you might show a customer their information, recently viewed products and their last order placed. For content creators, you might show a custom dashboard with quick links to their common tasks. What you do here is entirely up to you.

Edge: WordPress

Although it’s not entirely useful, WordPress actually has a dashboard which is a nice touch for new users. Drupal's clean slate offers a lot of exciting potential for admins and visitors alike, but any potential must first be realized before this page is useful.

3. Managing media

Images, videos, documents and more are uploaded and organized within a media manager. Both WordPress and Drupal offer a convenient content editor plugin which makes selecting and adding media into content easy.

WordPress

WordPress media manager

WordPress really defined the way media can be managed within a CMS. Their interface for managing media contains a handy drag-to-upload feature and each piece of media is shown in a grid format by default. Media can be filtered by date, type and name.

Drupal

Drupal 8 media manager

Drupal admittedly isn’t as clean as WordPress in this interface yet but it’s functionality is essentially the same and solid for most users. The visual interface will improve as the development of Claro progresses. By default, Drupal displays media in a list, but you can toggle between list and grid. There are also similar filtering options. Like all other aspects of Drupal, advanced users can customize media types beyond what you see here and entirely new media types can be created. This advanced functionality is unique to Drupal and isn’t as easily done in WordPress.

Edge: WordPress

WordPress does a great job of making media easy to manage. Drupal will continue to see improvements in the near future, but right now it still feels clunky.

4. Creating pages

Creating new pages, such as general content pages and blog posts, is a common interaction that most admin users will need to do.

WordPress

WordPress new page Gutenberg editor

As of version 5.0, WordPress includes their much anticipated Gutenberg editor experience. This editing format is sleek, modern, and very intuitive. You start with a title and then continue piecing together chunks of content by selecting various types of “blocks” to build the page with. Blocks are a single, reusable type of content such as a heading or paragraph of text, an image or gallery, a list, a quote, etc. Custom blocks can be created and plugins may also add additional blocks that content creators can use. Along the right side of the page is a settings pane. This pane provides various page specific settings and customizations such as page visibility, featured image, an option to allow comments, etc. Additional settings for the currently selected content block also appears here.

Drupal

Drupal 8 new page creation

Out-of-the-box, creating a new piece of content looks like the screenshot above. Content in Drupal could potentially be something wildly different than just a basic page, so Drupal defaults to a standard “field based” editing interface where the different fields that are configured to make up the content are laid out on the page. All editors need to do is fill in the blanks. Field types can be text (with an optional WYSIWYG editor), and image, a file upload, a date, and anything else you can imagine. This again is where Drupal’s flexibility is both an advantage and a curse. The advantage is that a type of content can be anything you can imagine, but the downside is that someone has to configure that content type first. The field based editing experience is provided by default to ensure the editing experience is consistent across different content types.

Here’s the important thing to know about Drupal. Drupal doesn’t like to make assumptions as to what your editing experience should be. As an example, a used car dealership, a national newspaper, and an online retailer will all have entirely different content editing requirements. Drupal doesn’t want to get in your way and it doesn’t try to. What it does do is give you a solid foundation to create YOUR ideal editing experience. This might not be ideal for organizations and businesses with simple website requirements, but for those with complex workflows and unique requirements, Drupal is ideal.

One last important note to make on this topic is that Drupal does also have a Gutenberg editing experience, it just doesn’t come packaged with Drupal out-of-the-box. This module and other editing interface modules and initiatives can be installed in Drupal to make the default editing experience more capable and modular.

Edge: WordPress

When based solely on out-of-the-box functionality, WordPress pre-packaged Gutenberg editing experience is modern and intuitive for new and experienced users. However, it’s important to note that Drupal modules exist that greatly improve Drupal’s default experience. You can even add the same Gutenberg experience.

5. Editing pages

Once a page has been created, sometimes you still need to go back and edit it once in a while. This is a different experience from creating new content, so let’s now look at how it works with each CMS.

WordPress

WordPress editing existing pages

Pretty standard, as a logged in administrator you have access to editing content by viewing the page on the website frontend and using one of the various “edit” buttons. You’re then brought to the same Gutenberg interface that you see when creating content.

Drupal

Drupal 8 edit existing pages

I would say Drupal has the upper hand for editing existing content. Similar to WordPress, as a logged in administrator you have access to page edit links when viewing the content which brings you back to the same interface as when the content was created. However, in Drupal you also have additional links to view content revisions as well as the view and edit page translations for multi-language sites.

Drupal 8 inline page editor

The current version of Drupal, Drupal 8, also includes an additional edit icon that contains a new “quick edit” option. Depending on the content, the quick edit allows on-page inline editing (shown above) instead of taking you to a separate page! This makes simple edits quick and easy. Furthermore, the edit icon also appears when administrators hover over menus and other configurable page elements too, giving you a quick way to access their configuration.

Edge: Drupal

While WordPress has the edge when creating new content, Drupal’s on-page inline editing feature makes editing existing content quick and easy by keeping content editors on the website frontend.

6. Managing widgets and blocks

Widgets (WordPress lingo) and blocks (Drupal lingo) are two words for essentially the same thing. While not limited to these locations, the header, footer and often left and right columns beside the main content area contain defined regions where certain elements can be placed. I’m talking about slogans, menus, a search bar, your copyright, recent posts, social feeds, etc. WordPress and Drupal have similar but different ways to manage these elements.

WordPress

WordPress widgets page

WordPress includes a backend and frontend methods for editing page widgets, both of which are quite basic and lack a lot of real capability.

The backend method (shown above) is accessed through the backend Appearance menu. This page gives you a nice list of available widgets on the left side and another list of active widgets within the available regions on the right. A simple drag and drop interface lets you move elements around and opening each widget allows for basic configuration.

WordPress widgets live editor

The frontend method is through a "Live Preview" mode (shown above) where a version of the site theme is presented and widgets are managed through the left column. Settings for existing widgets can also be quickly opened by clicking its blue edit icon, as you can see in the image above.

Out-of-the-box, it’s difficult to understand exactly where a widget will appear throughout the site because you don’t have the ability to see or control which pages accept the widget. Some third-party plugins are available to give you this functionality, but they must be added. New widgets are also a bit more difficult to add as they must be created by a developer or added though a plugin.

Drupal

Drupal 8 block layout page

Like WordPress, Drupal has the ability to manage blocks from both the backend and frontend of the website, although Drupal handles both situations better.

The backend method (shown above) is accessed through the admin toolbar’s Structure menu. Here you can view all available regions and the blocks contained within each. Regions are a big part of Drupal theme creation, so you will often see 10+ available regions to choose from. If you’re not sure of your themes regions, the “Demonstrate block regions” link above the list of regions will give you a preview. Each region has a “Place block” button for adding new pre-configured blocks. Existing blocks can be moved dragged between regions and each block can be configured independently. Block configuration in Drupal is very robust, including but not limited to control over what pages the block is visible on and what account roles can view it. Like content, blocks can be translated and even have revisions.

Custom blocks can also be created by more advanced Drupal users in a similar way that new media and content types are created. In the screenshot above there is a link to the “Custom block library,” which is where new blocks can be created. Like WordPress, modules can also be installed which will add new blocks.

Drupal 8 frontend block quickmenu

Drupal’s frontend method for managing blocks takes on the same familiar editing experience that we discussed for editing content. When logged in and viewing the website frontend, navigating to a page and hovering your cursor over an element will reveal an edit icon if that element is a configurable block. Options for the block are then given. The block in the screenshot above contains a menu, so we see options to configure the block and edit the menu. In this case, clicking one of these options will take you to the backend page for performing these actions. If the block contained text, we would also be given an option to edit the text directly on the page, just like we can with content.

Edge: Drupal

Simply put, Drupal’s block management is robust yet not too difficult. Being able to manage existing blocks directly from the website frontend is both user friendly and familiar given that existing pages can also be managed in the same way.

7. Managing menus

Menus connect the pages within a website. Commonly you’ll find a primary navigation and some sort of footer menu, but menus are used in many other places as well.

WordPress

WordPress menu management

The menu system in WordPress is a bit strange at first, but overall it’s pretty simple. You create a menu (or select an existing one using the menu selection dropdown), then add links by selecting pages, categories, or by creating custom links (add menu items in image above), then use a drag and drop interface for moving and nesting the menu items (menu structure in image above). Each menu item within the menu structure can be opened for a bit of customization.

The menu settings area controls where the menu is displayed within predefined template locations. Just check the box and the menu will appear once saved. Any menu created here can also be assigned to region as a widget or through the template live preview screen.

One odd thing I’ve found with WordPress is that, when editing a page, you’re not able to add it into a menu. I’m sure there are plugins that allow this, but out-of-the-box you have to add the page through the menu system or check a setting within the menu that all new pages get added… but then you might have to remove some.

Drupal

Drupal 8 menu management

Drupal’s approach to menus is what I would consider more standard. You navigate the “menus” page which lists all of the menus that have been created, then you create a new menu or edit an existing menu. The screenshot above is what you see when editing a menu. Here you manage this menu’s links by either adding a new one or manipulating the existing ones. When adding a new link you can easily search for content that the link will link to or specify a custom link.

Pages can also be added to a menu when the page is being created or edited. Within the page settings, all you do is select the menu and specify a link title.

Like WordPress, once you create a menu you can then add it into a region of the site as a block. However, within the menu itself you don’t have the ability to put the menu anywhere.

Edge: Drupal

A more standard approach makes managing menus clearer and more user friendly. Also being able to choose if a page should be included in a menu while creating the page is a nice feature. That said, I appreciate being able to manage a menu in its entirety on a single page like you do in WordPress.

8. Managing users, roles and permissions

Managing users is common for both controlling who can edit the website and who can login for other reasons, such as non-admin accounts for an online store or community.

WordPress

WordPress user management

WordPress has six predefined user roles: Super Admin, Administrator, Editor, Author, Contributor, and Subscriber. Each has varying degrees of what they can do, but it’s pretty clear for the most part and goes back to when WordPress was mainly a blogging platform. Users can be created and managed through a “users” page (shown above), which is laid out in a straightforward manner displaying

But WordPress has some major drawbacks here. First, WordPress doesn’t have any frontend user self-management, meaning users can’t view or edit their own profiles. Second, the predefined roles and their associated permissions don’t work for everyone and actually complicate user management when you don’t need it. Third, there is nowhere to really manage role permissions in a granular way. These drawbacks can be fixed through custom development and/or various plugins, but many consider this to be a general weak point of WordPress.

Drupal

Drupal 8 user management

User management is another area where Drupal shines. In contrast to WordPress, Drupal only starts with three default roles: Anonymous, Authenticated and Administrator. Anonymous is a user who is not logged in, authenticated is a user who has an account but isn’t someone who typically isn’t managing content and site configuration, and administrator is a user with full site and admin access. These three roles are minimal, clear and cover all of the basic needs of most sites. If and when another role with different permissions are created, this is easy to do right out-of-the-box.

The image above shows Drupal’s version of the current list of users. It follows a similar look and style to the rest of the admin pages, giving administrators a place to add and manage user accounts, including assigning users to specific roles. Anonymous and authenticated users can also create or manage their own account through the website frontend (although this functionality can be turned off if desired).

Drupal 8 user permissions page

Drupal’s strength in user management comes in the form of roles and permissions. When a role is created, a column of permission checkboxes for the role is added to the Permissions page (shown above). Almost every piece of functionality within Drupal has an associated permission. Simply checking the boxes determines what each role can and can’t do. It’s powerful and easy.

Edge: Drupal

A simple yet powerful user management system combined with frontend self-service functionality gives Drupal a clear edge over WordPress.

9. Site status report

Both WordPress and Drupal include a site status page that gives you information about the website and server configuration as well as an overall health report that outlines any issues. These automated health checks help keep your CMS up-to-date and secure.

WordPress

WordPress site health page

The “Site health” page (shown above) gives you an overall health status and list of any issues. This status page is clean and each item can be expanded for more information, but there is no visual urgency that makes the “2 critical issues” stand out. In my opinion, critical issues should be resolved and so highlighting these issues in some way is a necessary UX improvement.

An info tab at the top of the page can be opened which gives more information about your installation of WordPress, the server, the PHP version, and the database.

Drupal

Drupal 8 status report page

Drupal contains both site information and site health in one “Status report” page (shown above). Like WordPress, this page gives you everything you need to know at a glance about your Drupal installation and the other components that make it run. Here we can also clearly see what errors and warnings have been found and some information on how they can be resolved.

Edge: Drupal

While both WordPress and Drupal have similar pages that show similar information, Drupal’s status report does a better job at laying out the information and visually capturing the severity of any issues.

10. Plugins and modules

Plugins (WordPress lingo) and modules (Drupal lingo) extend core CMS functionality and add new features. Extensions are usually created by third-party developers and released to the platform communities for anyone else to use. Whether it’s to increase performance, enhance SEO capabilities or create an online store, extensions are a powerful way to improve and adapt the CMS platform.

WordPress

WordPress plugins page

Visiting the “Plugins” page (shown above) is a quick way to see what additional plugins are currently packaged with your WordPress installation and can be activated if desired. Plugins shown here all provide some sort of new functionality or feature that is not part of the core WordPress software.

WordPress plugin search page

When you need new functionality, WordPress provides an excellent and convenient plugin library browser (shown above) accessible within the website backend. Here you can search for, view, and install plugins easily with the click of a button.

Drupal

Drupal 8 extend page

Drupal’s module list is where you can see all current extensions, activated or not, for your Drupal installation. The big difference here between WordPress and Drupal is that for Drupal you are able to see all modules installed, even those that are part of the core software. Modules are also nicely grouped which nicely organizes the large list.

Installing new modules isn’t nearly as easy in Drupal. Unlike WordPress, Drupal doesn’t include a module library browser within the backend interface. Instead, users must search for modules within a web browser and manually install them. Finding modules can be difficult if you’re not familiar with the process.

Edge: WordPress

While both platforms have a massive library of extensions, WordPress offers users a much friendlier and intuitive way of finding and installing extensions that users of any skill level can appreciate. This may or may not be an issue for you if you have a capable IT team or development partner, but for small teams WordPress has the clear edge.

WordPress & Drupal comparison summary

I hope after going through this comparison you now have a good understanding of the differences and similarities between WordPress and Drupal. As you can see, both platforms out-of-the-box have different strengths and weaknesses, but it’s important to know that all of the weaknesses can be overcome through platform extensions and experience. In extreme cases, both platforms support custom development to overcome unique problems.

For convenience, here is a quick summary showing which CMS has the edge in the 10 categories compared. However, I would recommend that you go back and read the edge summary for each category, if you haven’t done so already.

Comparison category WordPress Drupal Admin toolbar   ✓ Login dashboard ✓   Managing media ✓   Creating pages ✓   Editing pages   ✓ Managing widgets and blocks   ✓ Managing menus   ✓ Managing users, roles and permissions   ✓ Site status report   ✓ Plugins and modules ✓  

A final word of advice

In my opinion, you shouldn’t be turned off from one platform or the other simply because you’ve heard that one is better or easier to use. Both platforms are mature and constantly improving, user experience is top of mind, and usability gaps have become less of an issue in recent years.

My advice, select the platform you use based on your requirements. WordPress is a great authoring tool and is good for small and medium sized organizations. Drupal is fantastic for medium and large sized organizations or anyone who has complex workflows, products, and/or a need to integrate with other platforms. That’s a pretty general summary, but if you’re considering either of these platforms, first know what your requirements of the platform are and then start talking to the experts for each.

Acro Media is an ecommerce consultation and development agency who can help you in this regard. We specialize in open source ecommerce and a large part of our work is based around Drupal. Drupal typically works better for our clients but we know WordPress, too. If you’re researching your requirements or evaluating your options, hit us up for a quick chat, we would love to help. Otherwise, check out some of these related resources.

Contact Acro Media Today!

Related resources

Jan 14 2020
Jan 14

New legislation from the EU means that public sector websites must comply with the EU Web Accessibility Directive if they are launched after 23rd September 2019. For existing websites, public sector organisations have slightly longer to make their services accessible to everyone. With the next deadline for existing sites in September 2020, not too far away, this guide explores the practical steps organisations can take to comply. 

What is the EU Web Accessibility Directive?

An estimated 80 million people in the EU live with a disability, making it more necessary than ever to ensure everyone has equal access to digital products and services. The EU Web Accessibility Directive is a new piece of legislation which aims to consolidate accessibility standards, making web accessibility a legal requirement.

The Directive requires that member states have processes in place to “ensure that public sector bodies take the necessary measures to make their websites and mobile applications more accessible”. 

As with most legislation, there are some exclusions which apply. These include broadcasters, some schools and nurseries, and private organisations, along with non-government organisations (such as charities) which “provide services that are not essential to the public or services that do not specifically address the needs of persons with disabilities”.

Unlike the Web Content Accessibility Guidelines (WCAG), the Directive does not include rules about how to make websites and mobile applications accessible. However, the four WCAG principles which provide the foundation for accessibility (perceivable, operable, understandable and robust) are present throughout. This begins to unify the digital accessibility standards for EU member states, by putting WCAG at the core.

How does this affect public sector organisations?

Any new websites launched after 23rd September 2019 must meet accessibility standards and must have an accessibility statement.

If a public sector organisation launched a website before 23rd September 2019, the website must meet the accessibility standards by 23rd September 2020. Improving accessibility for an existing website is notoriously more difficult than building with accessibility in mind from the beginning. Organisations with older sites therefore have slightly longer to meet the required standards.

Accessibility standards also apply to mobile apps, however, organisations have until 23rd June 2021 to meet that deadline.

While organisations are progressing in their efforts to make services more accessible, it’s clear there is a lot more to do for existing websites and apps - and they are running out of time. With the next deadline approaching rapidly, what practical steps can public sector bodies take to raise their accessibility game?

Audit your websites

A recent survey revealed that 40% of local authority homepages aren’t accessible to people with disabilities. Organisations must therefore first understand how an existing website is performing in terms of accessibility.

Common issues include: failing to provide a good heading structure and links with sufficient context, not using visible indicators to show where the keyboard focus is, not adding skip links to jump over repetitive page content and not having sufficient contrast between text and its background. 

Completing an accessibility audit will help find where there are barriers for people with disabilities and help plan in any remediation work necessary to meet the standards.

Add an accessibility statement

The Directive set a deadline of 23rd December 2018 for public sector organisations to add an accessibility statement to their websites. 

When an accessibility audit or accessibility evaluation has taken place, the results from the audit can be used to help write an accessibility statement. The accessibility statement should be regularly updated and the W3C suggests including the following as a minimum:

  • A commitment to accessibility for people with disabilities
  • The accessibility standard applied, such as WCAG 2.1
  • Contact information in case people encounter problems
  • Any known limitations of the website, to avoid frustrating your visitors
  • Measures taken by your organization to ensure accessibility

Make the content as accessible as possible

The most difficult stage for any organisation is making the content as accessible as possible. While building accessibility in from the start of a web development project is always the best route to ensure your services are accessible to everyone, it is vital the team responsible for planning, updating and writing content are also committed to high accessibility standards.  

Web accessibility isn’t a one-time task, it’s an on-going commitment. Website content and development work needs to be constantly monitored and updated to achieve ongoing compliance. Performing regular audits or evaluations and asking people with disabilities to test products and services ensures websites and apps are as accessible as possible.

This article originally appeared on Open Access Government published on the 10th December 2019. 

Can we help you on your accessibility journey with an healthcheck, audit or consultancy? Get in touch

Jan 14 2020
Jan 14


It’s really awkward when our clients or prospects ask: “Why do you suggest moving to Drupal 8 while it’s about to reach the end of life as well as Drupal 7? I’m not buying this.”

Well, first of all, Drupal 7 is not going to be abandoned - it will be set for the Drupal 7 Vendor Extended Support at least for 3 years.

As for Drupal 8, its last minor release (8.9) will be put for the LTS program from June 2020 until the end of life in November 2021. Also, this very last release will be the basis for Drupal 9.0. 

So let’s check out why we think it’s high time for Drupal 7 update that we all love. 

Updated Drupal 8 means being Drupal 9-ready

Staying on Drupal 7 means the necessity to execute a migration to Drupal 9. Moving from Drupal 8 to Drupal 9 will look like a minor website update that you usually do in less than a day.

So we don't see the reason to wait for Drupal 9 to do Drupal 7 to Drupal 9 straight away. Migrate to something familiar - Drupal 8.

Limited Drupal 7 support


Drupal 7 will be supported by vendors (not by the Drupal Security Team nor the Drupal Core team) at least until 2024. 

What this support means:

  1. No more core commits 
  2. Features development on-demand only
  3. No community support at large when it comes to massive bug fixing, documentation writing


Besides, it’s supposed to be a bad practice to use unsupported software due to security issues. 

No new Drupal 7 websites will appear as well: this point should be taken into account by the dev teams who maintain some specific Drupal 7 solutions.

Drupal 8 utilizes a widespread tech stack and approaches


Drupal 8 has a tech stack that allows more developers to embrace this CMS.

  1. Symfony components
  2. Twig -” the flexible, fast, and secure template engine for PHP” as it’s described on the official website
  3. OOP approach
  4. Composer support
  5. RESTful Web Services


Drupal 8 is more secure and has minor releases more often


Drupal 8 has a minor release once in 6 months which is quite nice: the new functionality can be added to the core more frequently. For example, these features were added within minor Drupal 8 releases (ask your developers why these features are cool):

  • Media (standardized and improved media management)
  • Workflows and Content Moderation
  • Layout Builder (page layout management and the possibility to add different elements and blocks through UI and drag-n-drop)
  • BigPipe for better performance


Also, the patch releases provide consistent secure updates, bug fixes and peace of mind.

Drupal 8 is feature-rich


One might think that migration is just an act of creating a hassle for no reason. Say, a website works well, the workflow is okay, and web developers always find a way out. 

Cutting the costs on web development also throws you back on your way to improvement. You won’t pay more for development but you also won’t earn more money with the help of your website.

These features in Drupal 8 will ease website development and management:

  1. New editor convenient for non-tech managers
  2. Quick Edit right on the page
  3. Drupal 8 is mobile-friendly out of the box
  4. Responsive images
  5. Better accessibility (which is trending now)
  6. The better multilingual feature implementation and its support
  7. Built-in Web Services: RESTful Web Services and JSON API out-of-the-box. All of this opens the world of the Internet of things (the devices that can be connected and communicate some data to each other), mobile apps and multi-channel integrations (PC, TV, tablets, etc), internal services and so on.
  8. The decoupled approach allowed out-of-the-box, including the static websites generator Gatsby
  9. The convenient migration tool Migrate API will ease the migration from Drupal 6 and Drupal 7. Also, there are tools that allow migrating from Wordpress.
    It’s worth saying that now popular contributed modules have stable Drupal 8 versions and that significantly reduces the migration effort. 
    When it comes to Drupal 9, in April 2019 46% of contributed modules were ready for Drupal 9, states Dwayne McDaniel from Pantheon.


There are big changes (planned) for new Drupal versions


Below are just a few things that are already in progress or planned for the nearest future.

  • New admin user interface managed by a React application
  • The API-First initiative
  • New Configuration Management
  • Content workflow improvement
  • Further improvements for Media management
  • Automatic updates for Drupal websites (!)


Are you ready for the big changes already? Invest, not cut costs - it will pay off. 

Useful links


7 reasons to migrate to Drupal 8 (and don’t wait for Drupal 9)

Why migrate from Drupal 6 to Drupal 8

Jan 14 2020
Jan 14

In my 2019 Acquia retrospective, I reflect on our business momentum and the evolution of the Acquia Experience Platform.

Wow, what a year 2019 was for Acquia!

Acquia 2018 business metrics

At the beginning of every year, I like to publish a retrospective to look back and take stock of how far Acquia has come over the past 12 months. I take the time to write these retrospectives because I want to keep a record of the changes we've gone through as a company and how my personal thinking is evolving from year to year.

If you'd like to read my previous retrospectives, they can be found here: 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009. This year marks the publishing of my eleventh retrospective. When read together, these posts provide a comprehensive overview of Acquia's growth and trajectory.

Our product strategy remained steady in 2019. We continued to invest heavily in (1) our Web Content Management solutions, while (2) accelerating our move into the broader Digital Experience Platform market. Let's talk about both.

Acquia's continued focus on Web Content Management

In 2019, for the sixth year in a row, Acquia was recognized as a Leader in the Gartner Magic Quadrant for Web Content Management. Our tenure as a top vendor is a strong endorsement for the "Web Content Management in the Cloud" part of our strategy.

We continued to invest heavily in Acquia Cloud in 2019. As a result, Acquia Cloud remains the most secure, scalable and compliant cloud for Drupal. An example and highlight was the successful delivery of Special Counsel Robert Mueller's long-awaited report. According to Federal Computer Week, by 5pm on the day of the report's release, there had already been 587 million site visits, with 247 million happening within the first hour — a 7,000% increase in traffic. I'm proud of Acquia's ability to deliver at a very critical moment.

Time-to-value and costs are big drivers for our customers; people don't want to spend a lot of time installing, building or upgrading their websites. Throughout 2019, this trend has been the primary driver for our investments in Acquia Cloud and Drupal.

  • We have more than 15 employees who contribute to Drupal full-time; the majority of them focused on making Drupal easier to use and maintain. As a result of that, Acquia remained the largest contributor to Drupal in 2019.
  • In September, we announced that Acquia acquired Cohesion, a Software-as-a-Service visual Drupal website builder. Cohesion empowers marketers, content authors and designers to build Drupal websites faster and cheaper than ever before.
  • We launched a multitude of new features for Acquia Cloud which enabled our customers to make their sites faster and more secure. To make our customer's sites faster, we added a free CDN for all Cloud customers. All our customers also got a New Relic Pro subscription for application performance management (APM). We released Acquia Cloud API v2 with double the number of endpoints to maximize customer productivity, added single-sign on capabilities, obtained FIPS compliance, and much more.
  • We rolled out many "under the hood" improvements; for example, thanks to various infrastructure improvements our customers' sites saw performance improvements anywhere from 30% to 60% at no cost to them.
  • Making Acquia Cloud easier to buy and use by enhancing our self-service capabilities has been a major focus throughout all of 2019. The fruits of these efforts will start to become more publicly visible in 2020. I'm excited to share more with you in future blog posts.

At the end of 2019, Gartner announced it is ending their Magic Quadrant for Web Content Management. We're proud of our six year leadership streak, right up to this Magic Quadrant's end. Instead, Gartner is going to focus on the broader scope of Digital Experience Platforms, leaving stand-alone Web Content Management platforms behind.

Gartner's decision to drop the Web Content Management Magic Quadrant is consistent with the second part of our product strategy; a transition from Web Content Management to Digital Experience Management.

Acquia's expansion into Digital Experience Management

We started our expansion from Web Content Management to the Digital Experience Platform market five years ago, in 2014. We believed, and still believe, that just having a website is no longer sufficient: customers expect to interact with brands through their websites, email, chat and more. The real challenge for most organizations is to drive personalized customer experiences across all these different channels and to make those customer experiences highly relevant.

For five years now, we've been patient investors and builders, delivering products like Acquia Lift, our web personalization tool. In June, we released a completely new version of Acquia Lift. We redesigned the user interface and workflows from scratch, added various new capabilities to make it easier for marketers to run website personalization campaigns, added multi-lingual support and much more. Hands down, the new Acquia Lift offers the best web personalization for Drupal.

In addition to organic growth, we also made two strategic acquisitions to accelerate our investment in becoming a full-blown Digital Experience Platform:

  1. In May, Acquia acquired Mautic, an open marketing automation platform. Mautic helps open up more channels for Acquia: email, push notifications, and more. Like Drupal, Mautic is Open Source, which helps us deliver the only Open Digital Experience Platform as an alternative to the expensive, closed, and stagnant marketing clouds.
  2. In December, we announced that Acquia acquired AgilOne, a leading Customer Data Platform (CDP). To make customer experiences more relevant, organizations need to better understand their customers: what they are interested in, what they purchased, when they last interacted with the support organization, how they prefer to consume information, etc. Without a doubt, organizations want to better understand their customers and use data-driven decisions to accelerate growth.

We have a clear vision for how to redefine a Digital Experience Platform such that it is free of any silos.

A diagram shows how Acquia solutions unify experience creation, content and user data across different platforms.

In 2020, expect us to integrate the data and experience layers of Lift, Mautic and AgilOne, but still offer each capability on its own aligned with our best-of-breed approach. We believe that this will benefit not only our customers, but also our agency partners.

Momentum

Demand for our Open Digital Experience Platform continued to grow among the world's most well-known brands. New customers include Liverpool Football Club, NEC Corporation, TDK Corporation, L'Oreal Group, Jewelers Mutual Insurance, Chevron Phillips Chemical, Lonely Planet, and GOL Airlines among hundreds of others.

We ended the year with more than 1,050 Acquians working around the globe with offices in 14 locations. The three acquisitions we made during the year added an additional 150 new Acquians to the team. We celebrated the move to our new and bigger India office in Pune, and ended the year with 80 employees in India. We celebrated over 200 promotions or role changes showing great development and progression within our team.

We continued to introduce Acquia to more people in 2019. Our takeover of the Kendall Square subway station near MIT in Cambridge, Massachusetts, in April, for instance, helped introduce more than 272,000 daily commuters to our company. In addition to posters on every wall of the station, the campaign — in which photographs of fellow Acquians were prominently featured — included Acquia branding on entry turnstiles, 75 digital live boards, and geo-targeted mobile ads.

Last but not least, we continued our tradition of "Giving back more", a core part of our DNA or values. We sponsored 250 kids in the Wonderfund Gift Drive (an increase of 50 from 2018), raised money to help 1,000 kids in India to get back to school after the floods in Kolhapur, raised more than $10,000 for Girls Who Code, $10,000 for Cancer Research UK, and more.

Some personal reflections

With such a strong focus on product and engineering, 2019 was one of the busiest years for me personally. We grew our R&D organization by about 100 employees in 2019. This meant I spent a lot of time restructuring, improving and scaling the R&D organization to make sure we could handle the increased capacity, and to help make sure all our different initiatives remain on track.

On top of that, Acquia received a substantial majority investment from Vista Equity Partners. Attracting a world-class partner like Vista involved a lot of work, and was a huge milestone for the company.

It feels a bit surreal that we crossed 1,000 employees in 2019.

There were also some low-lights in 2019. On Christmas, Acquia's SVP of Engineering Mike Aeschliman, unexpectedly passed away. Mike was one of the three people I worked most closely with and his passing is a big loss for Acquia. I miss Mike greatly.

If I have one regret for 2019, it is that I was almost entirely internally focused. I missed hitting the road — either to visit employees, customers or Drupal and Mautic community members around the world. I hope to find a better balance in 2020.

Thank you

2019 was a busy year, but also a very rewarding year. I remain very excited about Acquia's long-term opportunity, and believe we've steered the company to be positioned at the right place at the right time. All of this is not to say 2020 will be easy. Quite the contrary, as we have a lot of work ahead of us in 2020, including the release of Drupal 9. 2020 should be another exciting year for us!

Thank you for your support in 2019!

January 13, 2020

22 sec read time

Jan 13 2020
Jan 13

For a nonprofit, raising enough funds to do the most good is at the forefront of goal setting this new year. Direct and recurring donations have always been time-proven and effective ways to achieve this goal. But how can a nonprofit differentiate themselves and maximize the revenue available to aid their cause? Adding an e-commerce store with profitable products that both connect to your organization’s vision and add funds to fuel your efforts can be a game-changer.

Charity:Water’s success in the e-commerce space is both aspirational and strategic genius. By implementing an e-commerce solution, powered by a payments processor similar to the Commerce iATS module available for both Drupal 7, 8 and the iATS extension on CiviCRM, Charity:Water has turned branded products into additional brand recognition, a compelling story, and increased financial support. They are successfully speaking the language of millennials, providing authentic alternatives to traditional donations.  

While nonprofits explore different income streams, there are important considerations.

Make an Impact with your Product Selections

Reflect on the demographics of your donors when choosing products to boost profit possibilities. Some products will appeal to different age groups and doing your research ahead of time will allow you to curate the most appealing product lineup.

Keep your Nonprofit’s Mission Top of Mind

The e-commerce addition that best represents the values and aspirations of your organization are more likely to be received as genuine by your existing donors. 

Protect your Organization

Avoid costly fraud complications by selecting a payment processor that is secure and easy to use. With the payment processing modules and extensions already available for Drupal 7, Drupal 8 and CiviCRM, you’ll have your store up and running in no time.

Ready to get started or have questions? Feel free to reach out for more information.

Jan 13 2020
Jan 13

Gone are the days when a company’s technology lived in silos: as the global landscape changes, so do the tools. Sales, marketing, and IT are no longer in their own bubbles. As stacks overlap, it’s important to understand which stakeholders are involved in making technology decisions, and why.

The evolution of technology has led to a simultaneous rise of specialized knowledge and a blurring of the line between teams. Traditionally, marketing departments have had minimal say in their company’s technology selections. Increasingly, however, the marketing team has needed to have input on their employer’s digital tools and processes since they impact the team’s ability to get their jobs done. These technologies, in turn, need support and maintenance from technology and IT teams, and contribute to the total cost of technology ownership across the organization.

For many organizations, open-source content management systems (CMS) are proving an excellent investment of resources. An open-source CMS like Drupal can reduce technology cost, increase team agility, and improve data transparency so that the CMO and marketing team can get more out of their marketing efforts.

Technology and the CMO’s agenda

As organizations prepare for the 2020s and all of the changes coming in the next decade, many CMOs are increasing their digital team sizes to handle an array of channels such as search, social, affiliate marketing, and so on. Those teams in turn need their employer to invest in a new digital experience ecosystem for orchestrating marketing automation campaigns, managing content and assets, and offering a personalized visitor experience to increase customer loyalty.

Based on a recent study from Deloitte Review, the CMO’s agenda is increasingly influenced by the following high-level goals:

  • Collect customer data glean insights from the information
  • Be able to demonstrate a quantitative impact
  • Increase the organization’s talent pool with digital capabilities
  • Build a digital experience ecosystem

Those four goals, plus the new team/platform hybrid, dovetail very neatly with the priorities of the open-source CMS industry. Systems like Drupal are specifically configured to allow teams to use data to better understand users and drive quantifiable results. 

However, choosing tools can be tricky, since government initiatives such GDPR, ePrivacy and CCPA make data compliance a necessity for the marketing team. This means that now more than ever, CMOs must work more closely with their technology counterparts to increase their understanding of how their organization's digital technology functions.

Though introducing new tools can create friction between marketing and technology departments, open-source technology is designed to reduce fragmentation, provide better security and privacy controls, and eliminate vendor lock-in, so that an organization’s teams can work better, together.

Technology as long-term growth enabler

So how do you make sure that your technology will enable, not inhibit, your long-term growth? The answer lies in three main premises that technology needs:

1. Scalable and agile. Modern organizations need to quickly react to evolving market needs and be able to move rapidly. This means they need technologies that have a scalable infrastructure and a secure operating model that respects users’ privacy. Open source technologies are built with scalability and agility in mind, and are constructed to be as flexible as possible.

2. Available pool of expertise. For organizations adopting new technology, access to expertise is critical, both for configuring/maintaining the platform, and for training your staff. To grow and scale, your team needs to be able to use the technology— and they won’t be able to if there’s nobody available to teach them. Most importantly, well-constructed open source technologies will allow you to benefit from transferable skills that your people may already have.

3. Work on your own terms. Whether it is in-house, outsourcing, insourcing, near-shoring or any hybrid model, you need a technology (and technologists) that can operate the way you need. The global nature of open source software, especially Drupal, allows your team to work according to your own unique needs, without risking the quality of delivery for the tools.

Getting the right mix

All of these different factors end up influencing a CMO’s decisions regarding the procurement of tools and technologies. But while it might feel exhausting trying to account for all of these different priorities, choosing an open source software actually makes it quite simple to check the boxes mentioned above.

For example, consider how Drupal acts as the foundational basis of a Digital Experience Platform. Drupal is built to be incredibly customizable, so that organization can tailor the application to their particular needs— and pay only for what they use. Drupal’s thriving community means that there’s also free support, maintenance and security releases for the parts that are common. 

Drupal has a worldwide community of highly involved contributors, which helps CMOs serve (or tap into) users and talent in a wide variety of markets. Due to this community of freelancers and agencies, there is a vast pool of expertise that can support projects of any scale, spanning any region of the world.

With a global, widely-used platform like Drupal, your team won’t be locked-in with a particular vendor or supplier. The cost of change is low and gives you more control. Additionally, with open source software like Drupal, code and documentation is readily available to your organization at no cost. And because Drupal is built by web developers, for web developers, there is a strong adherence to the industry’s best practices and standards. 

Though we’ve used Drupal as an example, there are plenty of other open source softwares (many of which with commercial backing) that offer the same capabilities. Ultimately, open source offers a number of competitive advantages to CMOs. To learn more about how open source can meet your team’s specific needs, contact us. We’re here to help you figure out how to configure your digital toolkit so that your organization (and all of its teams) can truly shine.

Jan 13 2020
Jan 13

Too often, compliance with WCAG 2.1, to ensure web accessibility for people with disabilities, is an afterthought of the web development process. WCAG 2.1 compliance is a multifaceted endeavor, and when accessibility is incorporated into every phase of development, the result is greater efficiencies and superior outcomes.

Let’s look at the key phases of the web development workflow, and the advantage of keeping accessibility top of mind every step of the way. 

Planning and Wireframes

When planning and wireframing out a website project, accessibility needs to be considered at the very outset. During this phase, different functionalities of the website are flushed out, but  accessibility tends to not be a top-of-mind. Here are a few practices to help keep the workflow on track for an accessible site and avoid unwelcome setbacks later in the process. 

  1. During planning and wireframing processes, developers and site architects need to take notes and continuously question: “How is this going to work?”  “How will we make this component accessible?” This initial inquiry helps in planning and anticipating certain “pain points” or larger components -- such as a Calendar of Events -- that might take more time to be made accessible.
  2. When planning out specific or custom functionality, it’s important to always stop and consider how it will be conveyed to a user who is visually or hearing impaired. 

Design

The design phase represents an whole new range of accessibility considerations that need to be taken into account. While color contrast is the most obvious issue, other issues such as focus styles or link text size are more likely to be overlooked. Below are a few of the many accessibility checks that need to be in place during the design phase. 

Evaluate elements of the website from the perspective of a person with color blindness, age-related sight loss, or other visual impairments. Can the text be clearly distinguished from the background image? Contrast checking resources and WCAG 2.1 provide support and guidelines for ensuring adequate contrast between the text and background elements.

Every website design should include a style guide that encompasses heading sizes, button styles, and other elements. Often, however, the style guide is not detailed enough and certain elements are forgotten or specific accessibility checks are missed. For example:

  • Different font sizes require different color contrast ratios between the foreground and the background.
  • Accessibility for heading colors varies by font size.
  • Alert boxes need to be legible with adequate contrast.
  • Primary and secondary colors need to be checked for accessibility with the site background.

Development

If accessibility has been top-of-mind up to this point, developers will be well positioned to avoid accessibility related setbacks and surprises. Notes taken during planning and wireframing can help to guide an accessibility roadmap during development. Below are a few items that are often overlooked:

“Read More” links. Almost every site created within the past 10 years has “Read More” links on landing pages, blog posts, and throughout interior pages. It is not accessible, however, to have the same text on multiple links that direct the user to different places. Link text needs to be descriptive and specific to the page, such as “Get Further Insights,” “Check Out this Special Offer,”  or “Learn the Key Benefits.” 

Forms and error messages. Forms are extremely common sources of accessibility issues. Ensuring accessible forms involves many distinct elements that need to be developed properly.

  • All form elements need to have proper labels with properly linked “for” attributes. Inputs with invalid “for” attributes cause the labels to not link to the inputs.
  • All accessible form elements require properly set up labels with descriptive text, and linked “for” attributes. 
  • Error messages need to be adequately informative for screen-reader users. Error messages such as, “This field is required,” don’t provide enough context for a visually impaired person using a screen reader. Consider more specific error messages such as, “Phone number required."

While accessibility considerations might feel like time-consuming additional steps, getting it right during development represents a significant savings of time and resources. It takes far more time and effort to find and fix accessibility issues once a site goes live, or even before it reaches the quality assurance (QA) phase than it does to understand the full scope of accessibility while the site is under construction.

Rules and Tools - It’s QA Time

Once development is complete and the site enters the QA phase, it is critical that QA testers are fully knowledgeable concerning what to check for from an accessibility standpoint and are familiar with WCAG 2.1 accessibility guidelines and testing tools. 

If accessibility issues arise during the QA phase, there needs to be a proper workflow and documentation processes in place for the QA team to successfully explain the scope of the issues, along with recommended fixes.

Want to Know More?

At Promet Source, we’re passionate about accessibility. We develop accessible sites, audit sites to uncover accessibility issues, remediate existing websites for accessibility, consult with clients on accessibility, provide accessibility training, and much more.

Contact us today for help with any or all of your web accessibility needs. 

Jan 13 2020
Jan 13

My journey with Drupal contributions started in Oct 2019 and I started by understanding basic issues and reviewing  patches created by the experienced contributors.  

As we start a New year, I am proud that my contribution has played an important part in moving Unimity to Page one of the Service Providers list. I wish to share in this blog my learnings and I hope that this will inspire organizations and developers to contribute in the new year! 

Five aspects I have learnt through my contributions are:

  1. Understanding of  how Drupal software is built

  2. Connecting  with core contributors

  3. Improving my Technical knowledge

  4. Staying up to date with Drupal

  5. Mentoring  others

Understanding of  how Drupal software is built:-

Drupal is built from community contributions from all over the world. Lot of hard work by core contributors results with the successful implementation of this open source software. Other aspects about Drupal and the issue queues include:

  1. Understanding the  issue workflow from how an issue starts from active to needs work, needs work to needs review and needs review to reviewed & tested by community, RTBC to fixed.
  2. The different ingredients of this software include: modules/components, issue queues, core contributors, patches, tags, version control, credits, commits
  3. Understanding Drupal’s roadmap and the features mapped to each of the releases
  4. Initiative leads & initiative meetings

Connecting  with core contributors:- 

Had the privilege of interacting with top 10 core contributors:  Kjamlaluno, Jrockowitz, RajabNatshah, VolkswagenchickBojanz, Alonaoneill, Thalles, Wim Leers, Webchick, Lauri, Jhodgdon, Xjm and few others.

It was a truly wonderful experience to get appreciated by core Drupal maintainers for my work .
 

Recognized by Alexpott

Con

Recognized by Webchick

claro

Improving my Technical knowledge:-

Drupal Contributions also helped me in gaining the technical knowledge in many areas such as :

  1. Drupal’s folder structure
  2. Concepts such as Layout Builder, View modes, JSON API, Help topics
  3. Front end CSS, JS and TWIG implementations
  4. Writing Test Cases
  5. Documentations

Staying Up to date with Drupal:-

Drupal Contributions introduced me to Drupal roadmap. Following the roadmap helped me to stay updated with  new features. When Drupal 8.8 was rolled out, I knew about the New Administration Theme Claro and Media Library. I also follow core maintainers on twitter and have recently started working on the new Olivero Theme that Dries spoke at length during his session at DrupalCon Amsterdam.

Mentoring  others:- Contributions improved my role as Drupal Trainer at Unimity. I started being a mentor to all those willing to contribute and give back to Drupal. 

It has been an exciting journey and I thank Unimity for sponsoring the time to contribute. I also want to share few other members at Unimity who have Contributed to Drupal in 2019 are:

  1. Gayathri: Contributed in various areas as :- Help Topics , Media Library Documentation, Umami Profile 
  2. Madhura: Contributed in areas such as :- Migration, Help_topics
  3. Vinodhini:- Contributed in Claro new Admin Theme, Deprecated code
  4. Gnanagowthaman:- 
  5. Tarun: Contributed in Olivero New Front end theme
  6. Iyyappan:- Contributed in Migration
  7. Punam:- Contributed in Migration 

Together Unimity contributed: 13 core patches, 3 olivero patches, 1 Claro patches, 38 contributed patches.
I welcome more users from the Drupal community to join and benefit from the contributions.

Are you looking for help to climb the Drupal Contribution ladder? Just reach out to  me "Shimpy" on drupal_ contribute slack channel! Happy to help :) 

Jan 11 2020
Jan 11

Your website can be a mirror of your business ideas reflecting them exactly. Displaying data the way you want it to makes your website more user-friendly. Today, we discuss how relationships in Drupal 8 Views can be helpful if you want to show related content. The video will make our story more vivid.

Benefits of showing related content

By showing related content we mean including the content somehow related to the main one into the page display. It’s great when you can show, for example, the favorite articles of a user, the reviews and the blog posts about a product together with their author pictures, and so on. The unquestionable benefits of showing related content are:

  • the pages look more interesting
  • this creates a richer content ecosystem
  • users are kept engaged and stay on the site
  • your website’s session duration increases
  • the chance for conversion grows

Luckily, there are great tools for this. Relationships in Drupal 8 Views allow you to show related content in very flexible ways with no limits to your ideas. Let’s get acquainted with them step by step.

What are Views in Drupal 8?

Whatever Drupal website you see, many of its pages are likely to be built with Views. Drupal Views is the SQL query builder that fetches data from your website’s database (content, users, comments, etc.) and displays them on your site as a data collection.

Example of Drupal Views on a website

This does not require coding — Views has a user interface to configure which data you want to display and how. You can sort and filter the results, choose to show dynamic data via contextual filters in Drupal 8 Views, and so on.

The Views is built into Drupal and does not require installation, which is among the best Drupal 8 benefits. However, dealing with Drupal Views requires a profound understanding of Drupal and should be entrusted to a web development team.

What are relationships in Drupal 8 Views?

When created, every Drupal view is configured to retrieve the data from a particular database table.

Choosing base table in Drupal 8 Views

To create richer displays and show related content, relationships in Drupal 8 Views connect your initially chosen table to others. So, thanks to relationships added, the view becomes able to display the data from different tables together.

Here are a few scenarios when relationships in Drupal Views can help you show related content. For example, you can:

  • show related author pictures in articles
  • show related user pictures in comments
  • show related favorite content in user profiles
  • show related real estate properties in owner profiles
  • show related user mentos’ pictures in user profiles

and much more.

How to use relationships in Drupal 8 Views?

Let’s create relationships in Drupal 8 Views that will help us display customer reviews together with their pictures. We will need to show the data from the “Content” table together with the related data from the “Users” table.

1. Creating the Review content type

Let’s go to Structure — Content types and create a new content type called “Review.”

Creating a Drupal 8 content type

2. Adding a user field

Our reviews will belong to particular customers who are users on the Drupal website. So we need to add a “user” field to the Review content type. It will be a referenced entity. We will name it “Review author.”

Adding a referenced entity user field to a Drupal 8 content typeGiving a name to a user field in a Drupal 8 content type

3. Adding test reviews

For testing purposes, we then add a few actual reviews in “Add content — Reviews”. We assign a different test user to each of them in the “Review author” field.

Adding Drupal content with the author field

4. Creating a view based on reviews

In Structure — Views we add a new view:

  • give it a name “What our customers say”
  • set it to display content of the Review type
  • choose “create a page”
  • set its display format to “Grid of fields”
Creating Drupal 8 Views

5. Adding fields to the view

Our view is based on fields, so let’s add the ones we need:

  • review author
  • body

The review title, the default field for a content type, will not be needed and can be removed from our view.

Adding fields to Drupal 8 Views

6. Adding a relationship to the view

We will also need an author picture, for which we go to the “Advanced” section in Views, click on “Relationships,” and add a new relationship. By searching through the available options, we choose “User referenced from field_review_author.”

Adding relationships to Drupal 8 Views

By clicking “Add and configure relationship,” we are almost done — we may only check “Require this relationship.”

Then we come back to the Views fields and add the “User Picture” field. When configuring the field, make sure the “field_review_author” relationship is selected. To make all pictures look standard, apply an image style.

Adding user picture field to Drupal 8 Views that has a relationship

Now the user picture will be fetched to our page from every review author profile to make it all look much more colorful now. This is our page with customer reviews created via a relationship in Drupal 8 Views! But, of course, it is a rough version that needs some good theming.

Drupal 8 Views with a relationship

Video about adding a relationship in Drupal 8 Views

We've started a good tradition of sharing the information from our blog posts in a video, so enjoy watching our example of how to use relationships in Drupal 8 Views.

[embedded content]

Entrust our team with displaying your website’s data right

The above was a very simple example of how to use relationships in Drupal 8. There is really no limit to how your data can be displayed and your pages built. You can display related content in any way or anything else you might have an idea about.

Share your ideas with our Drupal maintenance and support team so they will come up with a good solution and bring it to life.

Jan 11 2020
Jan 11

The large business world knows no compromise. Your website should stand out from the competitors and keep up with all the business requirements. And not just keep up — a site can move your business forward by offering advanced digital experiences to customers.

Whether the website is capable of doing this, largely depends on the choice of the platform you build it with. In this post, we discuss why it’s worth choosing Drupal for large business website development.

How large business website development can benefit from Drupal

If you have an idea to create a large business website, it may have some specific needs. For example, this site needs to be content-heavy, complex in architecture, high in traffic, unique and robust in functionality, and so on. See how Drupal, an enterprise-level CMS and CMF in one, can help you build a big website for your big idea.

Exceptional and unlimited functionality

Provide your large business website users with any functionality desired. Drupal empowers developers with creating even the most complex and specific site features.

It has 44+ thousand free contributed modules for various spheres of your site’s work — content display, search, security, third-party integration, SEO, access control, e-commerce functionality, etc. And, of course, any custom features can be created by a development team to match your business scenarios exactly.

The Tesla’s site (Drupal + Adobe Experience Manager):

Tesla website

Modern technology inside

Efficient development workflows, clean code, and fast performance of your large website also depend on what is “under the hood” of a CMS. Drupal 8 uses OOP (object-oriented programming), the Twig theming engine, the modern PHP 7, Symfony components, and more.

Your brand’s multichannel reach

Your large business website can be part of a whole multichannel ecosystem for your brand. It can share its content to iOS or Android applications, JavaScript-based web apps, various Internet-of-Things devices, and so on. The “Create Once, Publish Everywhere” (COPE) method will speed up your content management.

Make use of the API-first principle and the exceptional support of third-party integration in Drupal 8! There also are plenty of add-on modules, helpful development kits for third-party frameworks, etc.

Going global with a multilingual site

Large business website development can also let you go global. Having a multilingual site means multiplying your audience and profits as well.

D8 has strong multilingual features that are among its “visiting cards.” To help you create a big website that speaks different languages, it offers an extremely easy setup, a hundred languages supported out-of-the-box, flexible options as to what website elements should be translatable, RTL support, and much more.

Multisite support

If you want to create a complex website, here is another idea that might be interesting. Large organizations and businesses often need more than one site — they need a collection of related sites that are easy to manage.

Drupal offers a multisite feature that allows you to run multiple sites from the same Drupal installation. They are created, managed, and updated from one place.

Powerful search even on complex sites

Large and complex sites especially need ways for users to quickly find things. Drupal allows you to create the most advanced search features.

They include faceted search, alternate spellings, content suggestions, result highlighting, search in attachments, multilingual and multisite search, and much more. This is thanks to such modules as Search API, Search API Solr Search, Elasticsearch Connector, Facets, etc.

The General Electric’s site:

General Electric site on Drupal

Easy content workflows

If your large business website is content-heavy, Drupal can save your editorial team’s time a lot. Drupal 8 has a user-friendly CKEditor for content publishing. The Media system provides for the easy media handling in Drupal 8 and enriching the content with various videos, audios, remote videos, etc.

There are strong built-in capabilities to have flexible editorial workflows thanks to the Content Moderation and Workflows modules. Another novelty for large websites is the Workspaces module that allows you to quickly deploy tons of content from a stage to a live environment.

Outrunning your competitors in SEO

Let your large business website be better found through search engines thanks to such a SEO-friendly CMS as Drupal.

It has plenty of built-in and add-on modules for SEO that take care of its every aspect. For example, SEO-friendly URLs (including automatic, pattern-based URL creation on large sites), keyword optimization, meta tags, XML sitemap, broken link fixing, and much more.

A high level of security

Cybercriminals never sleep and are always trying to find vulnerabilities in sites that they could exploit for malicious purposes. A large business website faces more risks than smaller ones because it has more to lose.

When it comes to security, Drupal has a very good reputation. It stands against the most critical security vulnerabilities of the web. This is thanks to the vigilant security team, strong coding standards, a watchful community, a flexible system of site roles and permissions, and more. Here is why governments trust Drupal across many countries of the world.

The Pfizer’s site:

Pfizer site on Drupal

High website speed

Creating a big website that loads fast is easy with Drupal. D8 uses flexible approaches to caching and has robust built-in caching modules. One of them is the BigPipe that loads the unchanged parts of the page instantly to not keep your users waiting.

There are also plenty of add-on performance modules to speed up Drupal sites. Finally, it’s a hot trend to combine Drupal 8 with JavaScript frameworks like React, Vue, or Angular to reach exceptional speed and interactivity.

Hire experts to create a large business website

We have outlined the key reasons why choose Drupal for a big website. Let’s discuss more details in a conversation. Entrust your large business website development to our professional Drupal team and let your large site help your large business flourish!

Jan 10 2020
xjm
Jan 10

Drupal 8 and higher provide a continuous upgrade path with a deprecation policy that requires old APIs to be marked deprecated and retained until the next major version. Drupal 8.8 was the final release to introduce new deprecations that will be removed in Drupal 9. This means that all new deprecations in 8.9 and higher will be retained in Drupal 9 and marked for removal in Drupal 10 instead.

For now, in order to continue work on issues that add new deprecations without causing disruption and noise for Drupal 9 readiness tools that detect deprecations, issues with new deprecations for Drupal 10 should be moved to the 9.1.x branch.

9.1.x is not yet open for development and so patches will not apply to it, but work can continue on these patches in the meanwhile by testing them against 9.0.x instead when the patch is uploaded:

The 'Test with' select field on Drupal.org issue file uploads

We may change our policy in the future and allow 10.0.x deprecations to be backported to 8.9.x and 9.0.x in certain cases (discussion in issue #3088246). Otherwise, 9.1.x will open for development in either March or April, depending on progress on Drupal 9 release blockers.

Jan 10 2020
Jan 10

The new, stable version 2.0 of Droopler – Droptica’s Drupal-powered distro is coming soon, offering numerous new features aimed primarily at corporate websites. 

You can already test the new release at demo.droopler.com, you can also install the latest beta version, which is available at drupal.org and github.com

Below, you can find a selection of the most important changes.

New demo

Let’s start with the most notable and striking change, which can be seen right after setting Droopler up. The new demo presenting Droopler’s features is now much more extensive and provides an excellent foundation for you to build your own website. It contains subpages, as well as a full demonstration of the new menu and the footer. You should also take a look at the mobile version of the menu.

New Droopler demo

Media and Media Library

2019 brought a very important new feature in Drupal – its version 8.8 introduced the stable Media Library module for managing multimedia on a website, and Droopler 2.0 takes full advantage of its capabilities. We got rid of the previous way of adding photos to paragraphs, which was deemed inconvenient and inflexible. Now, you can add all the media on the website using a special library with reusable elements. What is more, you are no longer limited to static images! Paragraphs can now be illustrated in the background with Vimeo and YouTube videos. Droopler 1.4 users can take advantage of the full migration path to version 2.0, which encompasses converting the “image” type fields to the new solution.

Droopler media library

Colours

Version 2.0 brings totally new and more dynamic colour schemes. Of course, if you want, you can stick to the existing colours. Various shades of blue were replaced with deep red, which is better suited to corporate websites. We decided to change both the backgrounds and small accents.

SEO and website performance

We made every effort to ensure that websites powered by Droopler rank as high as possible in search engines. We focused on optimising page loading speed according to Google Page Speed, we also improved accessibility standards. From now on, content editors can have an impact on SEO by changing types of paragraph headings (H1 through H5).

Choosing header type in Droopler

Mega Menu

Droopler 2.0 features a brand-new menu, similar to the features you can find on large corporate websites. You can configure each submenu to be displayed in columns, with graphic elements and different sets of links. The menu is fully compatible with mobile devices. In addition, we introduced another feature, allowing you to use a second menu with less important links. Easily configured social media icons are another important new feature.

MegaMenu in Droopler

New footer

We redesigned the footer – it is now divided into several areas and uses a column model. This approach makes it easier to create pages for large clients, who need it to fit several addresses and key links at the bottom of each page.

New footer in Droopler

Paragraph settings

You are now able to change paragraph settings in Droopler. Using a couple of checkboxes, you can now invert their colours or stretch them to the entire width of the page. Styling individual paragraphs was also made much easier than before. Before, you had to reference them in CSS stylesheets using less-than-convenient IDs. From now on, every paragraph on your website will be able to have its own class, assigned from the editing form.

Paragraph settings in Droopler

“Reference Content” paragraph

To date, Droopler offered no way to show users the list of the latest blog articles on a single subpage. The new “Reference Content” paragraph adds this feature – and makes it amazingly flexible, since it allows you to change its display settings and select articles, which will remain pinned. The remaining spaces will be filled with articles sorted in descending order, according to the publication date, allowing you to display, for example, two sponsored posts and two latest news posts.

New blog paragraph in Droopler

“Side by Side” paragraph

Ever since we started working on our distro, we paid close attention to the needs and behaviours of the users, which is why the subsequent Droopler releases included a variety of useful paragraphs, which divided the page into two columns, enabling users to add text, photos, maps, videos and galleries. However, there were some restrictions, which prevented them from using any combination of these types of content. Droopler 2.0 gets rid of these obstacles by introducing the universal “Side by Side” paragraph. Each of its columns can contain independent elements – as of now, the choices include text with a graphic background and a reference to an entity, for example a product.

New Side by Side paragraph in Droopler

Bugfixes

We squashed hundreds of bugs, including those reported by users on GitHub and drupal.org, which allowed us to build an even cleaner and more stable codebase, developed according to the latest standards. Many of Droptica’s frontend and backend experts worked on the 2.0 release, and the project repository saw more than 1000 new commits and 180 pull requests. We have improved adding content, in particular the integration with the Geysir module.

Updated libraries and drupal.org compatibility

Until recently, Droopler’s architecture was not fully compatible with a slightly outdated distribution building system on drupal.org, which – in some rare cases – led to conflicts and errors when updating the websites. We managed to overcome these issues for the 2.0 release. What is more, we already started working on adapting Droopler to make sure that it is compatible with the upcoming Drupal 9. In addition, we eliminated various bugs, which popped up in connection with various latest Drupal 8 features. All these improvements will lead to greater security and long-term support for your websites.
 

Jan 10 2020
Jan 10

Happy New Year, everyone! If you’re not willing to let go of the holiday spirit just yet, you’re in luck - we’ve prepared an overview of our favorite Drupal blog posts from December. We hope you enjoy revisiting them!

Commerce 2.16 adds Cart Expiration, improves Views integration

The first post on December’s list pertains to the last release of Drupal Commerce in 2019, version 2.16. Bojan Zivanovic of Centarro, the team behind Drupal Commerce, breaks down the new features of this version and announces a different release schedule for this year - quarterly rather than monthly releases.

The new features, meanwhile, are: cart expiration, which had a Drupal 7 module but is now part of core for 8; integration of Views; the ability to set Start / End times of promotions in addition to dates; and product-specific tax rates enabled by the Commerce Product Tax module. 

Read more

Drupal 8.8.0 is available

This next post also touches upon a new version of software - the latest minor version of Drupal, 8.8, released on December 4th. Written by Gábor Hojtsy, it is a combination of an overview of its new features and a helpful manual on what this means for owners of Drupal websites.

Since Drupal 8.9, to be released together with Drupal 9 in June, will be focused on backwards compatibility, version 8.8 is Drupal 8’s last feature release. As such, it brings several important features to core: a stable Media library, a new experimental admin theme Claro, greatly improved Workspaces, and even native Composer support.

Read more

Why You Should Upgrade to Drupal 8 (Even with Drupal 9 on the Way)

The release of Drupal 9 is fast approaching, and this makes updating to version 8 now seem a bit redundant. Ethan Schug of Zivtech shows that this is not the case in his blog post which highlights the benefits you’ll get if you decide to upgrade to 8 today.

Not only does Drupal 8 provide a better developer and editor experience than 7, it is also much more secure and enables much better API integration. 

Since Drupal 7 end-of-life is scheduled for November 2021, upgrading to a newer version will be necessary sooner or later anyway; the sooner you do it, the sooner you can benefit from its more powerful capabilities, and the more thorough the migration can be. 

Read more

Happy Holidays! We got you something nice | Automatic Updates Phase 1 is Complete

Our fourth pick from December marks the first stable release of the Automatic Updates module for both Drupal 7 and 8, and thus the completion of phase 1 of Drupal’s Automatic Updates initiative

While still not applicable to each and every use case and won’t become part of core until phase 2 is complete, the module offers quite a few powerful capabilities, such as automatically updating Drupal core for sites on 7 and 8. 

Author Tim Lehnen finishes the post with some priorities for phase 2 of the initiative and a call to action for sponsoring or otherwise supporting it. 

Read more

Acquia to acquire AgilOne to solve data challenges with AI

The next post on December’s list isn’t a strictly Drupal one, but is nonetheless very important for the biggest company in the Drupalverse - Acquia. In their quest to become the leading open digital experience platform, they’ve already made 2 important acquisitions in 2019 (Cohesion and Mautic), and now the acquisition of the AgilOne CDP has only brought them one step closer to achieving this goal. 

In this post, Dries gives their reasons for choosing AgilOne (one of the major ones being their machine learning capabilities). The end goal is providing top-notch customer experiences, and for this, they needed a platform that will integrate all the relevant data in one place - and AgilOne will provide just that.  

Read more

Drupal Mentoring Gives New Contributors Superpowers!

In the next post, Tara King, Pantheon’s Community Developer Manager, talks about the importance of mentoring to new contributors. She truly hits the nail on the head with her definition of open source: “People working together to make something new, helping each other and learning new skills along the way.”

She was so impressed by this welcoming attitude of the Drupal community that she decided to join the mentoring team and help out others with their entry into open source. Likewise, her company Pantheon is also an active supporter of Drupal and open source. 

Read more

Getting Started: React In Drupal 8

Written by Kemane Wright of Texas Creative, this post is perfect for everyone who’s excited about React and/or decoupled Drupal and wants to take a stab at it. 

Kemane’s post starts off by explaining the concept of “decoupled” and the difference between headless and progressive decoupling, then goes on to guide the reader through progressively decoupling their Drupal site with React. 

The React module then allows you to include highly interactive elements to Drupal and as such improve the user experience of the sites. For those not yet that familiar with React/Redux, Kemane recommends checking out some further documentation and/or Texas Creative’s session from Texas Camp. 

Read more


Drupal 8 migration: why now is the time to upgrade

Finally, we finish with another blog post concerning Drupal 8 migration, this one authored by Inviqa’s CTO Richard Jones (no surprises there, considering Drupal 9 is only 5 months away). 

Richard points to the benefits of Drupal 8 (its ‘API-first’ approach, flexibility and scalability, among others) and supports his argument for upgrading by showcasing some well-known brands already using Drupal 8, such as Arsenal FC

He ends the post with some key considerations for migrating from older Drupal versions to 8, as well as some best practices for launching a site with Drupal 8. 

Read more

This concludes our first recap of the previous month’s blog posts of the decade. We have some interesting things planned for our blog in the coming months - stay tuned!

Jan 10 2020
Jan 10

We're thrilled to announce that we will be back in Berkeley on October 14th - 17th, 2020!

We are stoked to be returning to The Hotel Shattuck for 4 days of roaring sessions, training classes, summits, sponsors, and parties for all you flappers, philosophers, and Drupallers!

We’re still working on all the details, so if you want to follow along with news hot off the presses, sign up for our mailing list!
 

Jan 10 2020
Jan 10

As 2019 comes to an end and we wrap up another decade of Drupalling, we’re excited to announce another BADCamp that’s sure to be the bee’s knees, and invite you to join us over at 2020.badcamp.org. We'll be back in Berkeley on October 14th - 17th, 2020!

We are stoked to be returning to The Hotel Shattuck for 4 days of roaring sessions, training classes, summits, sponsors, and parties for all you flappers, philosophers, and Drupallers!

We’re still working on all the details, so if you want to follow along with news hot off the presses, join us at 2020.badcamp.org and sign up for our mailing list!

Jan 09 2020
Jan 09

At DrupalCon Amsterdam we announced the formation of a Contribution Recognition Committee. The purpose of this committee is to recommend solutions for how we recognize contributions to the Drupal project made by both individual and organizational contributors, and to advise the Drupal Association on how to weight each type of contribution relative to the others.

We kicked off the process with this call to action, seeking volunteers to participate on the committee who represented a variety of personas within the Drupal community: 

We saw a tremendous response to this call to action, and the committee has now been assembled. The members are: 

_________________

Mike LambCommittee Chair: Mike Lamb

Mike Lamb has just completed his second term on the Drupal Association board. He has been a member of the Drupal community for 8 years and is the Vice President of Global Digital Platforms at Pfizer. He brings his perspective as a former board member, a leader of digital teams, and a representative of a large end-user of Drupal to the table. His particular interest is in finding ways to incentivize other end-user organizations to make contribution history part of their vendor selection process.

Tiffany FarrissCommittee Member: Tiffany Farriss

Tiffany Farriss has a long history of leadership and service in the Drupal community, and is the CEO and co-owner of Palantir.net. She served on the Drupal Association board for 9 years, most of those as Treasurer; chaired the organizing committee for DrupalCon Chicago in 2011; and has served in many other ways, most recently on the executive search committee for the new Drupal Association Executive Director. Tiffany has personal experience across many kinds of contribution, as well as leading Palantir to be a top contributing organization.

Ryan SzramaCommittee Member: Ryan Szrama

Ryan Szrama is well known for his work on Drupal Commerce and for co-founding Centarro (formerly Commerce Guys) in 2009. He's been a member of the Drupal community for nearly 14 years, was elected by the community to serve on the Drupal Association Board of Directors in 2017, and has just been appointed to another 3-year term. He lends his perspective as a Drupal business leader and D.A. board member to committee discussions and is interested to see how the data we gather about contributions can be used in ways beyond just crediting contributors.

Stella PowerCommittee Member: Stella Power

Stella Power is a respected leader in the Drupal community in Ireland and is the Managing Director of Annertech. In her almost 14-year journey with Drupal, she's done everything from contributing code to volunteering at and organizing local events, consistently serving as a volunteer organizer of DrupalCon and Trivia Night quiz master. She provides the committee with her extensive experience in all of these areas - and as someone with connections to contributors around the world.

Jaocb RocowitzCommittee Member: Jacob Rockowitz

Jacob Rockowitz maintains the Webform module for Drupal 8, as an independent Drupal consultant. Jacob has extensive experience collaborating with dozens if not hundreds of developers because of the wide usage of Webform, and he has pioneered a number of efforts to improve the sustainability of open source. He brings a unique perspective as a sole proprietor, as well as the knowledge gained from these sustainability experiments. One aspect of this project that is of particular importance to Jake is ensuring that the system incentivizes the quality of contributions, not just their quantity.

Rakhi MandhaniaCommittee Member: Rakhi Mandhania

Rakhi Mandhania is a Project Manager Colab Cooperative and co-founder of the DrupalCampus Ambassador Program. For more than six years in the Drupal community Rakhi has been a frequent attendee at local events in India, as well as international events like DrupalCon in Asia, North America, and Europe. Rakhi brings the perspective of Drupal users in the higher education space, as well as her experience as a project manager.

Paul JohnsonCommittee Member: Paul Johnson

Paul Johnson has been working with Drupal since 2006 and is the Drupal Director at CTI Digital. Much of his client work is focused on the nonprofit world, and he brings that experience as well as knowledge of how to encourage for-profit, closed organizations to become more open. Among his many contributions to the project, Paul has focused on international social media efforts, including promotion from the @Drupal Twitter handle, and initiatives like #CelebrateDrupal8. His more recent experience includes work on the Promote Drupal initiative, and specifically the Drupal pitch deck. His passion lies in helping the Drupal project to realise the potential of its scale, ensuring contributions of all forms and scale are recognised and valued in particular beyond code.

_________________

These committee members are by no means the only community members who will be involved in the process. Seven people are not enough to represent the breadth of diversity in our community. This is why the committee, both collectively and individually, will be seeking out feedback from every corner of our community to feed this process.

They'll also be working closely with the Drupal Association itself, particularly myself (Tim Lehnen) as CTO and maintainer of the system, and Rachel Lawson as our community liaison who already has tremendous insight from the community feedback she's gathered on this subject to date.

The committee will be meeting regularly over the next several months, with the goal of reporting significant progress and first recommendations at DrupalCon Minneapolis in May of 2020. 

Jan 09 2020
Jan 09

We started the "All things Drupal 9" meetings all the way back in October 2018 to start preparing for the new major release. Now in 2020, the year of Drupal 9, it was natural to make the meeting happen every Monday given the target dates coming up fast.

Contributed project maintainers, site owners, core developers are all welcome. If you are planning a Drupal 9 project for later in the year, this is your place as well. We open the floor with equal opportunity for people to propose topics, so we can cover your pressing questions as well! Join at 7pm UTC in the #d9readiness channel on Drupal Slack any Monday. The next meeting will be on January 13th, 2020.

We've been promoting Drupal 9's June 3rd 2020 target release date a lot, but that can only happen if the Drupal 9.0.0 beta requirements are all done by the end of February 2020, which is coming up real fast. There are still a lot to do and we need your help! If that does not happen, then the release will happen in August or December. While that would give less time for Drupal 8 users to update, we cannot compromise on the stability of Drupal 9 out of the gate.

The three Drupal 9 release scenarios

Check out the detailed alternate timelines at https://www.drupal.org/core/release-cycle-overview

Jan 09 2020
Jan 09

We started the "All things Drupal 9" meetings all the way back in October 2018 to start preparing for the new major release. Now in 2020, the year of Drupal 9, it was natural to make the meeting happen every Monday given the target dates coming up fast.

Contributed project maintainers, site owners, core developers are all welcome. If you are planning a Drupal 9 project for later in the year, this is your place as well. We open the floor with equal opportunity for people to propose topics, so we can cover your pressing questions as well! Join at 7pm UTC in the #d9readiness channel on Drupal Slack any Monday. The next meeting will be on January 13th, 2020.

We've been promoting Drupal 9's June 3rd 2020 target release date a lot, but that can only happen if the Drupal 9.0.0 beta requirements are all done by the end of February 2020, which is coming up real fast. There are still a lot to do and we need your help! If that does not happen, then the release will happen in August or December. While that would give less time for Drupal 8 users to update, we cannot compromise on the stability of Drupal 9 out of the gate.

The three Drupal 9 release scenarios

Check out the detailed alternate timelines at https://www.drupal.org/core/release-cycle-overview

Jan 09 2020
Jan 09

Your browser does not support the audio element. TEN7-Podcast-Ep001-D7-to-D8-Migration.mp3

Summary

Ivan Stegic and Tess Flynn discuss migrating Drupal 7 sites to Drupal 8.

Guests

Tess Flynn, TEN7 DevOps, and Ivan Stegic, TEN7 Founder and President

Transcript

Tess: You're listening to the TEN7.com audiocast. We're here to discuss Drupal, migration, technology, and I'm here with -

Ivan: Ivan Stegic

Tess: And

Jonathan: Jonathan Freed

Tess: And I'm Tess Flynn otherwise known as Socketwench and... so, we have some questions to go through today, Jonathan. Why don't you get us started?

Jonathan: Thank you very much, Tess. Let's see, our first question: why are we launching this informational program of an audiocast?

Ivan: Well, we're doing it because we don't want to do a podcast and have audio out there the web and in the iTunes store that lingers and never gets repeated so we're going to try this, we're going to experiment with short audiocasts because we know our listeners' attention span is very short. And we're going to hopefully put them up and transcribe them, and have them as enhancements to our blog posts.

Jonathan: For our second question, what are the key feature differences between Drupal 7 and Drupal 8?

Tess: Where do we start with this one? Because there are so many of them. There's a lot of backend changes, there's a lot of technology changes. Some have compared Drupal 8 to removing an entire house from the foundation and then putting it down on a new foundation. And that's not necessarily inaccurate. That's a pretty good description. We went through a huge amount of effort to rework Drupal 8 to be based on newer technologies such as PHP 7 so it's faster and more memory efficient; with Composer so that we can bring in more efforts from the external -- outside Drupal PHP community, with twig for better theming -- the list goes on and on and on.

Ivan: And just some user interface changes in the upgrade between D7 and D8. We added in place editing, which never happened before, so you can now change content on the page that you're on just by -- just when you're looking at it. We designed a theme so that it is mobile first. We also designed and implemented multilingual first, as well. There's internationalization: that's a part of core. Accessibility has been improved, and was a core initiative. And actually, I've read that there are fewer modules now involved in Drupal 8 compared to the original core of Drupal 7. So, fewer modules, bigger punch, and we've brought in additional functionality from contrib as well.

Jonathan: And the last question: what are the factors that a website owner should consider when trying to decide if they really need to do a Drupal 8 upgrade?

Ivan: In my mind, the biggest factor is how old your current site is, and what technology it's currently based on. If you have a Drupal 6 site, you are more at risk from a security standpoint than you are in Drupal 7 and Drupal 8, mostly because Drupal 6 is no longer supported. So, if you're in Drupal 6 you should absolutely be considering an upgrade to Drupal 8. And then, depending on how old your Drupal 7 site is, if it's anything less than a year or a year-and-a-half old -- so if it was built at any point starting in 2016 -- you probably don't have a good case to upgrade to Drupal 8. But, anything older than 2016, there's a definitely a reason to be considering Drupal 8 and an upgrade to Drupal 8, especially if you feel like there is a user-experience issue with your current site.

Jonathan: Thanks, Ivan! And Tess, do you have anything to add to that?

Tess: No! I think Ivan covered that really, really well.

Ivan: Thank you.

Jonathan: Excellent! Well that brings us to the end of our first audiocast and I would like to thank Tess and Ivan for sharing their insights today. Please visit us at TEN7.com and keep an eye out on the TEN7 blog for future audiocasts. This is Jonathan Freed and thank you for listening!

Jan 09 2020
Jan 09

Migrating content from an existing site or an external data source can help reduce the effort required by content editors to get a new site ready for launch. As a result, constructing and executing content migrations is a common task we undertake as part of the site build process. While these migrations can vary in type, typically spreadsheets are exported in a comma separated value (CSV) format due to their simplicity.

While Drupal has robust support for migrating in from a CSV file, the current structure can struggle when presented with large CSV files. In particular, the migration import process can run out of memory part way through the migration process. We encountered this problem while migrating tens of thousands of locations for a client. Increasing the PHP memory limit for the migration was an initial step, but proved not to be enough:

Memory usage is 1.21 GB (80% of limit 1.51 GB), reclaiming memory.

[warning]

Memory usage is now 1.21 GB (80% of limit 1.51 GB), not enough reclaimed, starting new batch
[warning]

Even though the migration module attempts to reclaim memory and start a new batch, the process does not always complete.

Some approaches to get around this issue include scripting your migration and utilizing the limit option when running a migration. However, we wanted a solution that could be more versatile and wouldn’t require custom scripting for each new migration we would write.

As a result, we wrote a custom Drush command that acts as a wrapper around the default Migrate import command. Our custom command splits a large CSV file into smaller files that can be imported in batches.

As an example, the following command may be run:

drush migrate:import:batch sample_migration --batch-size=100

When the migration is run, the CSV source file for the sample_migration is split into smaller CSV files with 100 lines each. The migration runs for each of these files. These files are temporarily stored in the private files directory and are cleaned up after the migration is finished.

Other migration operations run like normal and all of the default options may be passed in. Migration mapping hashes are maintained, so the migration may be rolled back like normal, too.

The module’s code currently exists in a Github repository which also contains more information on the module’s usage, but we plan on releasing it as a contributed module on Drupal.org in the future. Feel free to give it a try on your project and let us know how it works for you!

Fall migration copy by ashokboghani licensed under CC BY-NC 2.0.

Jan 09 2020
Jan 09

Code of Conduct sign standing up at DrupalCon

Over the last two years, we have managed to make some significant improvements to the DrupalCon Code of Conduct (CoC) so that it:

  1. Is more clear what is and is not acceptable behavior
  2. Details ways to raise issues through to the CoC Team for action
  3. Lists exactly who on the CoC Team handles issues
  4. Requires leaders — such as speakers, sponsors, etc. — to be held to the highest standards of all
  5. Explains the consequences of unacceptable behavior.

Thank you to everyone who has been involved, both staff and community members, for their work.

We have also taken the opportunity to train members of Drupal Association staff in CoC management through the course provided by Sage Sharp at OtterTech, organised by the Drupal Community Working Group. If you organise events, we highly recommend attending this online course in 2020.

No Code of Conduct can ever be considered “final”, however, and the Drupal Association have a process of making a release of a new DrupalCon Code of Conduct in the first quarter of each year, including any approved updates collected during they previous year.

It is that time again to call upon the Drupal Community to propose any refinements they see beneficial, by creating issues in the project issue queue. Anyone with a Drupal.org user account can create an issue and you do not need technical expertise to do so.

You will notice that I have already raised one issue, related to adding caste as a protected characteristic alongside others such as gender and race.

I look forward to reviewing your proposed refinements and continuing to build and maintain a world class Code of Conduct for our world class tech conference.

Jan 08 2020
Jan 08

Drupal Association offers special discounted registration rate to the nonprofits on a need basis. 

Jan 08 2020
Jan 08

2019 set the stage for a new decade of innovation driven by open source, design driven by insight into how humans interact with technology, and digital accessibility driven by high court decisions and consumer demand. Throughout the year, we at Promet Source reached out every week with updates and insights.  

We’ve now taken stock of nearly 50 blog posts contributed by the full slate of talent that passionately serves our clients. 

Here are the posts that had the highest readership.

1. Supreme Court Marks New Era for Web Accessibility

By Andrew Kucharski, President, Promet Source

Andrew wrote the year’s most-read post immediately following U.S. Supreme Court’s decision to not review, the Ninth Circuit Court’s ruling in Robles v. Domino’s Pizza, LLC. His post pointed out the significance of this development, which signaled a long-anticipated answer to to the question of whether Title III of the 1990 Americans with Disabilities Act, applies to an organization’s online presence. The answer is yes and the result is an anticipated acceleration in the pace of lawsuits pertaining to web accessibility.

2. Better Instructions for Your Drupal Content Types

By Cindy McCourt, Training Instructor, Promet Source

Our roots are in Drupal. Last years’ posts that focused on Drupal best practices, how-tos, or the scheduled June 2020 release of Drupal 9 consistently drew in a lot of interest and attention. Topping the list of Drupal posts in terms of readership: Better Instructions for Your Drupal Content Types. This Drupal how-to covered four Drupal 8 default features that provide instructions for content authors.

3. Great Websites Are Created before the First Line of Code is Written

By Mindy League, Director of User Experience and Design, Promet Source

This post reflected a breakthrough approach to web design and development that Promet Source adopted with the 2018 acquisition of the DAHU Agency. DAHU's team of UXperts and design thinkers have advocated for the application of human-centered design principles to web development, fueled from a foundation of:

  • collaborative problem solving, 
  • elimination of  assumptions,
  • deeper knowledge transfer, 
  • empathy for users, 
  • early stakeholder alignment, and 
  • excitement about what’s possible.

The result: deeper engagements, more fun, and superior outcomes.

4. A Marie Kondo Inspired Guide to Content Migration

By Chris O'Donnell, Business Development, Promet Source 

Chris O’Donnell, Promet’s entertaining and wickedly smart business development lead, had an epiphany in 2019 that content migrations would be well served by following the principles supported by anti-clutter enthusiast, Marie Kondo: tidy up, follow the right order, and discard what no longer serves.  

Onward to 2020!

Consistent outreach contributed to a significant growth in readership last year and we are committed to continuing that trajectory. With our talent base of experts and writers, we are tapped into a wide spectrum of expertise and insights. Contact us with your thoughts concerning what you want to read more about this year. 

Jan 08 2020
Jan 08

Your browser does not support the audio element. TEN7-Podcast-Ep-079-Best-of-2019.mp3

Summary

2019 comes to a close, and with it, another year of fascinating podcast guests that taught and inspired us. We’ve selected some of our favorite clips from this year’s guests for you to enjoy. Listen to the full podcasts if you like what you hear.

Guest Clips

  • Episode 50: Dries Buytaert, Founder of Drupal, on his evolving role in the Drupal community
  • Episode 74: Rob Harr, VP at Sparkbox, on how Sparkbox alums are still part of their story
  • Episode 56: Lynn Winter of Manage Digital on burnout
  • Episode 66: Jeff Archibald of Paper Leaf on the “false hustle”
  • Episode 67: Alison Paris of Parisleaf on G-RICE, their five values
  • Episode 63: Carl Smith of Bureau of Digital on scaling intimacy
  • Episode 53: Heather Schrock of Bonneville Environmental Foundation on their water stewardship business engagements
  • Episode 64: Hans Bjordahl of Culture Foundry on Conscious Capitalism
  • Episode 77: Jeff Geerling, Software Developer and Creator of the Pi Dramble on writing books on LeanPub
  • Episode 78: Gareth van Onselen, South African Journalist, Political Analyst, Author on the similar narratives of Jacob Zuma and Donald Trump

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’re starting off the new year with a retrospective.

We published 29 episodes last year, which is slightly more than once every two weeks, or as we say it here, every fortnight. That’s a great deal of content, all of which was created by an amazing team here at TEN7. So, let me begin with some thanks. I’d like to thank our transcriptionist Roxanne, who works tirelessly transcribing the audio for every episode, so that we can publish the text online. Thank you! To Charlene, who edits each of the transcripts and comes up with the summaries, links and social media posts, thank you! And of course, to Jonathan, the producer of the show, who masterfully records, edits, mixes, schedules, uploads and makes my life magically easy to record this show. Thank you! None of the almost 30 episodes of 2019 would be possible without you.

So we’re going to look back and play some of our favorite excerpts of the year. Before each clip, I’ll tell you who the guest is, what episode it came from and I’ll try to set it up with additional context. And don’t worry, today’s podcast webpage has links to the episodes, so you can always go back and listen to them all.

We started off 2019 with our 50th episode, and who better to have as a guest than the founder of Drupal himself, Dries Buytaert. I asked him about how his role and how it had changed over the years, since starting the project and writing the initial code in his dorm room in Belgium.

DRIES BUYTAERT: I think my role has evolved a lot over time. I mean, in the early days I would write 100% of the code, and I would spend a lot of my time building Drupal.org. I would help run the servers behind Drupal.org. I would organize the DrupalCon events or help organize them, like intensively. And over time I’ve scaled more and more. Drupal Association would be one example of that, as a step in evolving my role, which put in place an entity, a non-profit entity specifically, that could take over the organization of DrupalCon which now is a serious event. It costs a few million dollars to put on and takes a whole team of people to organize. Same thing with managing our website and the underlying hardware infrastructure.

It’s now being managed professionally by people at the Drupal Association and again, also with the help of people in the community, just like DrupalCon. But these are examples of how I’ve scaled my role. Obviously on the technical side, I went from being the sort of single core committer, to now having teams of core committers for each of the major releases, having committees and task forces around different aspects of the project, like a technical working group that defines coding standards. We have release managers and product managers and framework managers, all these kinds of roles to subsystem maintainers that are responsible for different aspects of Drupal core. And so, these are all examples of me scaling my role over time, and we continue to make governance changes all the time and to scale the project as needed.

I think that’s the right thing to do. As projects or organizations get bigger, you need to put the kind of organizational structure in place. You also need to scale the culture of the project and so, I try to help with that through my keynotes. Actually, last year at this time, I helped write Drupal’s Values and Principles document, that’s a way to help scale our culture. So, it takes a lot of effort and different people to maintain and run the Drupal project today.

IVAN: After I had been to the ManageDigital conference, I was enamored with Rob Harr’s keynote and his leadership of a company called Sparkbox. His style is squarely focused on all the people that are connected to his company, whether that’s current employees, clients, partners or even former employees. In Episode 74, that published in November of 2019, I asked him about this focus.

IVAN: I love the friendly disposition you have, and how inviting you are, and it doesn’t just extend to clients and partners and current team members. It also extends to Sparkbox alums. When you gave your keynote at Manage Digital, I was really impressed with how you talked about the wider Sparkbox community, not just the people that are working there right now, but people who have worked and humans that have been with you in the past. What’s your philosophy around that and how do you get those people together, if you do?

ROB HARR: My philosophy around all of this is I got into this for the humans, and I believe that we have to treat them well. I think that your former employees are the ones that actually control your reputation. I want to make sure everybody leaves well, and things end well for people. I think so much of how people view a relationship, and that’s really what employment is, it’s defined by how it ends. A perfectly good, even successful relationship, if it ends poorly, can feel horrible and can color the whole thing, and that’s not at all what I want to do. I think that what we look for is for people who, during at least a season—because there’s seasons for all things—where our seasons line up and we can kick a bunch of butt together on projects, and that season will probably end, and that’s okay.

And I think that’s really healthy to think about life that way that, “Hey, our goals lined up and we did a bunch of great work together, and now our goals don’t and we’re going to go our own ways.” That doesn’t remove that person or alum from our story. It doesn’t take us out of their story. There’s a lot of good stuff that happened. And why not respect that by throwing a party on the way out?

I think the other part that is so fundamental is, I can’t talk about caring for humans the way that I do and believe what I believe and then only live that when it benefits me, when they’re employees. I think that’s fundamental. If you really care about the people, then it has to transcend when it makes sense, when it’s convenient. I invite people to come in and talk to me about what they want to do next, and I’ve written letters of recommendation to help people find new jobs when they’re current employees.

That’s all good stuff. Sometimes people grow. Well, all the times we hope people grow. That should be a common thing that we want out of people. Our alums are part of our story. I still talk to them. If I end up in a city where there’s a Sparkbox alumni and I haven’t seen that person in a while, doing dinner or taking them out, or just saying “thank you” is totally commonplace.

IVAN: Why do you call your company a “studio?” It’s a subtle distinction from being an agency or a firm or a dev shop. I think it’s worth explaining and exploring.

ROB: I hate the word “agency.”

IVAN: Yeah, I do too. [laughing]

ROB: It makes me think of Don Draper, with the brown liquor sitting in his office, smoking, and the whole power dynamic that comes with that. I think the word “agency” has been overloaded a lot and doesn’t make clients think of partnership they have. It thinks like, “Hey, we’re going to throw some work over the wall and it’s going to come back and you’re going to be our agency of record.” It’s everywhere. I like the word “studio” because I think it speaks better to the creative problem-solving work that we want to do in partnership with our clients, and it invokes the right feeling of that.

IVAN: Rob was one of the keynote speakers at Manage Digital, that’s the annual project managers conference in Minneapolis put on by our good friend Lynn Winter. She was on the show as part of Episode 56, in March. And at the conference, she was giving a mini-keynote about burnout, so I asked her about it. She had some wise words to share with us.

IVAN: Let’s talk about burnout. How prevalent do you see that? Do you have any data to show? What have you noticed and what are you hoping to achieve with your mininote?

LYNN WINTER: In general, stats, if you start looking at people across the industry, or working people, and then specifically, across the industry, there’s so much pressure and change of environment from, where is the line between home and work, from working at home or having technology accessible all the time? It’s really blurred the line of when do you go home? When do you put things down? When do you turn off? And it’s becoming a problem, and honestly this talk came out of my own personal challenges with burnout, but as I started talking about it with people, I heard these stories over, and over and over. I’d be speaking at conferences and people would talk to me about, “How do you deal with this?” and “How do you deal with that?” and it was all about boundaries, and all about taking ownership of the path that you actually want to go on, versus letting the path take you.

I think it’s a thing that PMs deal with more in this industry, because of maybe the role and how it’s often positioned at agencies. So, what I mean by that is, a lot of times it’s not as valued as a developer, for instance. Like, when you’re going to hire, “Oh, we can get any old PM, they don’t really need to be a PM, they can be anyone, they can do that, they’re just scheduling meetings,” but hire a developer, it’s, “We’ll get a recruiter and it’s going to be harder.” And, it’s hard for different reasons, to hire different roles, but there’s just oftentimes that situation setup or less responsibility or value placed on it.

Some PMs aren’t even allowed to talk to clients. They have to go through account managers, they’re not given the responsibility or the value in that role. And so, there’s some positioning at certain places, and then there’s also that impact of how you personally come to your role and for me, I personally have an issue, balancing, l like, don’t take on too much, and stop running the hamster wheel kind of situation.

So, I had a kind of career change back in 2017, and I’ve been really trying to force myself to step back and try to realign what are my goals in my career and what are my personal goals, and things like that. So, since I’ve started talking to people about it, I’ve gotten, honestly, a lot of feedback that has been positive, as well as a lot of sad stories. So, it’s something we need to talk about.

IVAN: In Episode 66, from the end of July, I talked to Jeff Archibald, CEO of Paper Leaf, about two articles he wrote, one about the false hustle and the other about the 60-hour work week. I asked him about what motivated him to write them.

IVAN: It segues into this article you wrote on Fast Company about the false hustle, how keeping busy is just a way of not getting things done.

JEFF ARCHIBALD: Right.

IVAN: And you’ve also written about humble bragging, about how a 60-hour workweek is actually symptomatic of larger problems that you might have as a company. I’ve talked to Lynn Winter in a previous episode about burnout, and it just seems to come up more and more. Like we are trying to be cognizant of what we’re doing, of what our employees are doing, so that we’re not detrimental to our own mental health, and so that we’re happy in the work we do, so that we have careful focus in work and life and home. So, the question is, what motivated you to write those two articles? The false hustle one and the one about the 60-hour work week?

JEFF: The 60-hour workweek one was just a bit of a direct response to what I was exposed to, and what I’m sure virtually every listener and yourself has been exposed to as well, through social media, and just is that humble bragging, right? “Oh, man. Crazy week. Finally shutting the laptop down. It’s 10 p.m. on Friday.” It’s indirectly talking about how important we are—and I’m totally guilty of this in the past as well—how important we are, how busy we are and how successful we are. But in reality, that’s not sustainable. It’s symptomatic of not having enough process in place, or not having enough revenue coming in, or just symptomatic of a host of potential flaws with the business model.

So, instead of bragging about it, it’d be great if we were bragging about how everybody in our shop worked a 25-hour work week and it was super stoked, and we’re hitting 30% profit margins, and everyone is getting paid properly. Those are the things we should be bragging about. And I get that, especially when you’re starting a business, a start-up or an agency or whatever, there is an inordinate amount of time that needs to be put in to get to the point where you have enough clients and you can support bringing on somebody to help ease that workload. I understand that. But, if it’s continually what we’re toting as success, then I think we have it totally backwards.

The false hustle article, that was more just like, I suppose, a moment in self-awareness for myself. I’m a productive person, I can get a lot of stuff done very quickly, but I have a tendency to overvalue the volume of tasks I complete, versus the importance of those tasks. I could sit down and crank out 12 things in a day, but did it actually move the needle anywhere? I was working really hard and I was being really busy, but it’s the equivalent on some level of, in that article the analogy I drew to Sammy Sosa’s sprinting from the dugout to the outfield, in between innings, but then jogging after a fly ball. [laughing] It’s the same kind of thing.

For me I just wrote that more to remind myself that I need to make sure and understand what I really need to be working on. What’s truly important. And apply tools like the Eisenhower Matrix to understand what needs to be done now versus what can be delegated and plan my week out a little bit better. Or else you can get to the end of the week and think that you’ve moved the needle because you did a lot of stuff. But it doesn’t mean you actually have moved the needle.

IVAN: How do you keep yourself on track for that? It sounds like a great idealistic way of living, and I would love to do it myself, but how do I actually do it? How do you do it?

JEFF: It’s relatively straightforward, to be honest. It is, I suppose, a series of processes. So, we use OKRs here: objectives of key results. I set one or two objectives for sales and marketing, which is primarily my focus here for every quarter, and then I list out the key results. If you’re a listener and you’re wondering what that means, just google OKRs and you’ll find a whole bunch of really interesting methods and information about it. But I set up those results and those are the things that I really try to focus on. Those are the things that are going to move the needle.

So, I map those out. So if I have an objective to increase revenue for the next quarter, then some of my key results might be to pitch three new projects every month. It might be bid on $1.5 million of work. Just key results like that. So that’s where I start, and then at the start of every week, I have a reminder in my calendar and about a 30-minute window to actually plan and block out my week, and it says right in there, review your OKRs, figure out what you should be working on, and then I’ll go through my calendar and I’ll see what time I have available, that hasn’t been booked for meetings or whatever else.

And I’ll block in time to focus on this particular sales objective, or this key result. Or, this particular proposal that I know was due by the end of the week. So, for me, those OKRs ultimately are making sure I’m working on the really, really important stuff that’ll move the needle, and then that weekly calendar reminder and the subsequent blocking out of my time on a weekly basis, is how I make sure that stuff actually gets done.

IVAN: How many companies have you worked for that have gone to the trouble of figuring out your own personal love language? Well, Alison and Chad Paris, who run Paris Leaf, were my guests in Episode 67, and in this clip Alison talks about their company’s values: gratitude, responsibility, integrity, candor and excellence.

IVAN: Ali, what is G-RICE?

ALISON PARIS: G-RICE stands for our five values. And I do want to expand on that a little bit, what Chad was saying, because I think it’s important to talk about using your purpose and ambition statement and also your core values, to make strategic hiring—and sadly, firing—decisions, I think by evolving our core, kind of brand messaging, and really owning it and metabolizing it for ourselves, it strengthened our ability to make really strategic decisions about who we bring on our team, and as a result, the conversations are so much easier, making decisions as a collective are so much easier because we just bounce it off of our values, which are gratitude, responsibility, integrity, candor and excellence. So, that’s where the G-RICE comes from.

IVAN: How do you know when you’re not living up to those standards and who’s policing them?

ALISON: I think we’re quite a self-policing team. We are very open with one another, and we really turn to one another to hold each other accountable, so if we feel like one another is kind of out of line with our values, we’re very quick to bring that up, in a really kind and empowered way. So, there’s not necessarily one person with the policing badge on, making sure we’re having these as our core values. I think it’s somewhat easy.

And I’ll knock on wood as I’m saying it, it’s easy when you hire and fire for your core values, because the teammates who are ultimately on your team end up embodying those values. So, it’s not as much as a policing as it is like We’re a team doing this together.

IVAN: I met Carl Smith at Owner Camp in Bend, Oregon in the Spring. I went to this Bureau of Digital event not knowing anyone, but came home feeling like I had a new, intimate set of friends and peers I could talk to. In Episode 63, I asked Carl how he planned to scale this wonderful thing he was in charge of.

IVAN: So, I’m going to ask you what your daughter asked. How do you scale that good feeling? How do you make it even bigger?

CARL SMITH: It’s tough right? Because in a way you’re scaling intimacy. Lori Gold Patterson said that to me. Lori Gold Patterson runs Pixo out of Urbana, Illinois and we were at Owner Summit in San Diego a few years back, and she came up to me. She goes, “You’ve got a huge challenge.” I was like, “What is it?” She goes, “How do you scale intimacy?” She was like, “Most of these people know each other because they’ve met, but there are going to be so many people that want in, and you’re not going to be able to do events for everybody,” and all this sort of stuff.

So now, the goal is to find ways to do more stuff online in smaller groups. To have opportunities for people who have met in person to reconnect. And for us to be the facilitator and the organizer and handle the logistics of that.

Because we can do so much more online, that as long as there is some level of in-person connection once a year, maybe twice a year, then the online supplements really well. So, that’s a lot of it. We can’t just have events get bigger, and we can’t just put on more events. It’s going to have to be finding ways, using the means that we have—and a lot of it’s technology—to make sure that everybody’s feeling connected, more frequently. And, even voice over just pixels, right?

Even just like you said, “It’s so good to hear your voice.” So, having that happen. So, we’re working on an idea called Bureau Circles. We’ll see how it can play out. We don’t want to overcommit and then blow it. But the idea of eight to ten people that we help coordinate to get together once a month, it’s kind of like a NEO, kind of like a Mastermind, but it’s super focused on what they do and their role. We called them role calls in the past when there were more people, but this idea is getting it down to a smaller group that is there for each other all the time.

And one of the things, Ivan, that spurred this was we have a Biz Dev Camp. So many camps, dude! I can’t even remember them to list them. But Biz Dev Camp, everybody said don’t do it. Nobody is going to share. Nobody’s going to be willing to share. And we said it when we brought people in.

The thing was, it sold out with seven on the waiting list. And I told them, “We’re going to have an optional show and tell on the final day, where if you show up you have to show. You have to show your pitch deck, or you have to show a presentation, you have to show something.” But what was amazing is when we left that first Biz Dev Camp, monthly calls started.

And it was just hilarious, they started their own monthly call. They called it an “accountability” call. It is just unbelievable. So in a lot of ways, that’s become the model for us as we’re looking at how do we move forward to scale the intimacy, and it becomes, people have said, compared to AIGA or things like this, “I like the grass roots feel,” and, “I like the idea that in those circles there is somebody who connects with us,” but they’re also at liberty to make sure that they’re doing what the group needs, so that we’re continuing to support, but we don’t have to participate in every single thing.

IVAN: In 2019, TEN7 started to purchase renewable energy certificates, called RECs and water restoration credits, called WRCs for every full-time employee. It’s our way of trying to offset the carbon footprint that the company creates by being in business. In February, for Episode 53, Heather Schrock from the Bonneville Environmental Foundation joined me on the show. In this clip, she talks about the projects they’re involved in and how they come about.

HEATHER SCHROCK: Yeah, so I’ll just start with water, because that is, again, our more in-house piece. Because the water projects that we support are all directly—you know, if we’re going to create WRCs it’s from a project that we, as an organization, personally support and are putting some energy behind. Whereas with offsets and RECs, we’re on the retailer side of that relationship. So, we do vet and choose the projects carefully.

For RECs there’s Green-e, the certification for RECs, and then for offsets there’s several certifications that we mainly work with four or five of them, third-party verifiers, and we just like to have a nice array of those projects that we think people would be interested in. Currently in our offset portfolio we have various things from landfill gas to forestry projects. We have an interesting marine project, where it’s a project that makes marine shipping vessels more efficient and also protects some of the sea life. So, always some interesting stuff there.

But the water projects—and I’ll send you the link later—we have a project bank on our businessforwater.org website. So, we have a separate website that we send people to, that really, specifically talks about our water stewardship business engagements, and there’s a project bank, which we started because we were finding with water projects it was getting a little more difficult, whereas with carbon offsets and RECs, there’s almost an infinite supply.

But with water projects, it’s a little more difficult to match the needs of the funder or the person who wants to buy those water WRCs or invest in that type of water project. Trying to matchmake between the funder and the project can be quite difficult, trying to get something in their region, something where they have an impact, something that aligns with their goals and their ideals around what a water stewardship project should look like. So, we started this project bank and there’s now, just scrolling through it, several, maybe dozens of water projects that are in various stages of development.

So, some of them are done, some of them are in the middle, some of them still need funding, have funding gaps, but there’s some great—if you go to that link, again, which I’ll send you later—you can see examples of all these amazing water projects. And, again, we started this bank so that we could solicit water projects from other organizations who have projects that need funding, and then, so we can come in and help matchmake the funders to these projects.

IVAN: That’s wonderful. That’s businessforwater.org and we’ll link to that in the transcripts on our website. Is there one particular project that sticks out for you? Do you have a favorite?

HEATHER: A favorite water project?

IVAN: Yeah.

HEATHER: Oh gosh, there’s some really cool ones. Let me think about that. So, most of our water projects, historically, have been very much your traditional type water leasing type projects, where we’re buying water leasing rights to keep the water in the stream, instead of having it all go to irrigation. Those are very common types of water restoration projects, irrigation upgrades, things like that. We’ve recently branched out into more urban and green infrastructure-type projects, so there’s one we’re undertaking in Los Angeles, which is a green infrastructure project that’s a collaboration with Los Angeles City Council.

There’s a neighborhood association and also an organization called Heal the Bay, and we’re all working together to create this park that will have also an impact on the neighborhood. It will be a safe place for people to play and move, and there will be fitness stations, but the park itself will serve as a water quality improvement project in the Los Angeles River Watershed. So, that’s really exciting, that we’re going to be able to save hundreds of gallons of potable water that will serve this neighborhood, but also creating this safe and fun space for them to interact with. It’s turning what was just a block that had nothing on it, that was not a safe place to be, into something that will be a neighborhood gathering spot.

IVAN: When Hans Bjordahl, CEO of Culture Foundry, attended a talk on conscious capitalism at SXSW, little did he know it would make him question everything he’d been taught about doing business. You can’t just tack conscious capitalism onto a company, it must be baked into the leadership. In this clip from Episode 64, I’ve asked Hans to give us a definition of conscious capitalism. Listen.

HANS BJORDAHL: Conscious capitalism is a model that seeks to unlock the potential for social good and humanistic good in business. Not just do that as a feel good, let’s have a corporate giving program when we’re done counting our money,

but baking that concept right into the core of your company, and doing it in a structured way that actually yields better financial results at the end of the day. When I was first exposed to this system, I was at SXSW. John Mackey, who is one of the founders of this organization and an early champion and ongoing champion, was giving a talk about a book he wrote called Conscious Capitalism, and I’m like, This is interesting. It’s a fairly aggressive assertion that the way we’ve been doing business in this country is wrong, and that we need to evolve it to fit this different, and frankly, more difficult model of how business should work.

But it’s not just profit and loss. It’s things about core purpose and things about stakeholder orientation, conscious culture, conscious leadership. That these things can be defined. That they can be, to some degree, quantified, and that they can, through research, be shown to have not just an incrementally better return on investment, but an exponentially better return on investment. The research around it is still emerging, still evolving. The ideas have really caught fire because the hunger for this in business is acute. And everywhere I come across it, people who feel they have to be one person at home, and bring a different person to work, that they can’t integrate who they are with what they do, that’s a fundamentally unhealthy place to be.

And creating business environments where you can bring your entire genuine self to work and do that, hopefully, where there’s some social good that comes out of that, that’s a very compelling thing. That idea’s been around a long time, but it hasn’t been super structured. Now it’s getting more structured, and it’s getting more structured through conscious capitalism, through B-Corporations, through some of the work that Nick Hanauer is doing. He’s a Seattle billionaire who is making a very aggressive run at redefining what successful economics look like.

So, a lot of people are approaching this idea from slightly different directions. Conscious Capitalism was my introduction into that approach to business. Some of those tenets from the book I picked up directly and plugged them right into Culture Foundry. It’s been very useful to us in terms of how we want Culture Foundry to be, but I also think there’s an imperative worldwide, I won’t even stop at the borders of the U.S., but worldwide, to really think about business in this way, and very aggressively counter the traditional model that you only have an obligation to your shareholders and everyone else can take a hike, that everything else is a commodity.

This model is a broader stakeholder model where you need to accommodate clients, employees, partners, environment, community, and shareholders, but we’re going to slice this pie up many different ways, not just give everything to the shareholders and leave everyone else holding the bag.

IVAN: In my head, Jeff Geerling is the Pi Dramble guy. So, getting a chance to sit down with him and talk about Raspberry Pis and how he’s automated them, clustered them and bent them to his will was a lot of fun for me. In addition to being a lover of software and all things open source, he’s also an author. In Episode 77, I asked him about his latest book and what he’s currently working on.

IVAN: Now, in addition to all the hobbies you have, side projects, and so on, you are also an author, and I would love to hear about your latest book and the book that you’ve written on Kubernetes. What are you working on right now?

JEFF GEERLING: I love writing. I don’t know how many million words I’ve written in my life, on my blog and on other blogs and things, but I love writing. In 2013 or so, I think that’s when I started, I’ve always wanted to write a book my whole life, I want to write a book sometime. I think part of that was jealousy because my brother, when he was a kid, wrote a book and his book, you know, the 15 minutes of fame, his book caught fire and was a local very popular book. He sold maybe 15,000 copies or something. It was pretty cool being the little brother to the brother who wrote that cool book.

But I was also a little jealous, like, I want to do that too. But I also just love writing. I’ve always loved English and literature growing up, and I love reading and I love writing. So I put that together with the fact that Ansible didn’t have a book in 2014. I started in 2013, but in 2014 I’m like, There’s still no book for Ansible, and it’s really popular.

So I decided to start writing it with a goal that I would write 100 pages and sell 200 copies. And it was funny because I started writing it on a platform called Leanpub where you can publish it while you’re writing it and sell it while you’re writing it. And by the time I had written about 40 pages I already had sold 200 copies [laughing]. And then fast forward these many years later, it’s 2019, so it’s been in print for five years now, and I now sell it on Amazon and other places and it’s called Ansible for DevOps. And that book has sold over 22,000 copies and it’s now 480 pages, including a chapter on Kubernetes and a chapter on Docker and a couple examples that do Drupal.

One of them was inspired by the Raspberry Pi Dramble cluster. So, that was my first book effort, and it went incredibly well, and I was floored. There’s no word to describe, when you're like, I want to do this thing my whole life, and this is my goal. And then your goal is surpassed by 50 times over, and you get to meet awesome people because of it. It’s just so many cool things happened because of that book. It also helped my family.

We’ve wanted to remodel our kitchen and after writing the book and making some profit off of it, I was able to remodel the kitchen four years earlier than we thought we might be able to. That’s a huge change for our life, because our old kitchen was kind of hard with three kids, and the way that we live our life and stuff at home, especially since I work remote. And I’m at home all the time. We had an old cramped little kitchen, and we were able to get it better.

So, the book was just awesome. I don’t expect to have the same level of success, but who knows. You never know where it's going to lead. But I’m working on another book. I actually just finished the first chapter a few nights ago, and I have a structure for the rest of it, and I’m working on examples and chapters.

The next book is going to be called Ansible for Kubernetes, and maybe if Ansible is around in five years and there’s another game-changing cloud infrastructure thing, it’ll be Ansible for that and I’ll have a whole series out. But I’m working on that book. I haven’t published it yet. I probably will pretty soon. Even though it’s not finished, I’ll publish in-progress updates on Leanpub, but both of those books, if you go to ansiblefordevops.com or ansibleforkubernetes.com, those are the book sites. I love writing them.

And one of the best things about writing them in progress is for both books I’ve had a lot of interaction with the people who read it, and they can help me. If they’re interested in something, I can write about that. Or if they are like, “Your example didn’t work on my computer,” I can improve it before I actually make a published printed version that people will buy.

IVAN: As some of you may know, I grew up in South Africa only to immigrate to the United States at the turn of the millennium. As a result, my childhood friends are South African, and I was able to interview at least one of them for the show. Gareth van Onselen is a South African journalist, political analyst and author who joined me for Episode 78, right at the end of the year.

We try to stay clear from politics, but in this episode, I was all in. We mostly talked about South African politics, but in this clip, Gareth talks about former South African president Jacob Zuma and the parallels to politics in the United States.

IVAN: I’m glad now that I didn’t read it [van Onselen’s book on Jacob Zuma] back in 2014, because I don’t think I would’ve appreciated it as much as I do now. And mostly it shocks me how much of a parallel there is between Zuma and the current president here in the United States. At some points I was reading the book, and I wasn’t sure if I was reading something that was directed at Zuma, or something that was directed at Trump.

There’s this one place in the book where you say, “He can fill a vacuum with empty rhetoric, but once it is all done, you’re left wondering whether he has said anything at all.” Then you also go on to describe him as something of an ethical black hole. How did such a man become elected? Not once, but twice?

GARETH VAN ONSELEN: I would agree with you 100%. I think Jacob Zuma’s tenure is a brilliant template for what’s happening in the U.S. with Donald Trump. I think they are very similar in a lot of key respects. Not just in terms of the way in which they use or abuse popular sentiment to serve what is essentially an entirely personal political agenda, but in terms of the grand narrative of the entire tenure in office, and how these demagogues tend to affect the way in which society responds to them.

What actually happened with Jacob Zuma—and I think it’s not absolute but in a lot of ways very similar is happening in the United States—is essentially you get elected on a wave of popular appeal, which takes various different forms and has various different causes, but that’s the outcome. There’s some kind of populist zeitgeist that manifests, and you’re swept along by it if you’re this demagogic leader.

There’s then a process of the shattering of the illusion. And that shattering doesn’t happen to the opposition who never had any doubt as to your unsuitability for office. It happens to sections of your own support base. The nature of public office starts to reveal who you are, the demands of making hard, often neutral and magnanimous decisions which you’re kind of incapable of doing, because you’re demagogic, and biased in a certain way, start to reveal your true character.

Then there’s some fundamental problem, either a case of corruption or unethical behavior onto which your opponents then latch as a means to remove you from office. And it becomes a defining battleground along that particular issue. In the case of Jacob Zuma, it was his homestead in Nkandla, this abuse of taxpayers’ money. In the case of Trump, it’s Russia and impeachment and the various things that go about it. But that becomes the mobilizing point.

You then suck in all of civil society and independent institutions to help you deliver the outcome you want, the judiciary and so on and so forth. And how that plays out is yet to be known in the U.S., but that’s the way in which the narrative tends to unfold. As I’m saying all this, I’m realizing I’m going slightly sideways from the original question you asked.

IVAN: No, please keep going.

GARETH: You triggered a thought with regard to the overlap between the two, and I think Jacob Zuma is a real case study for democrats and conservatives in the U.S. to look at, because the narrative is playing out in hugely similar ways on a lot of different levels.

IVAN: Well, that’s it for 2019. Thank you for listening to our little podcast. We’re so glad that you join us as often as you do. We’ve got more in store for you this year, and hope you’ll join us as we continue to talk to interesting people from around the world. If you have a second, send us a message and tell us what you would like to hear in the coming year. Or, just send an email to say hi! Our email address is [email protected].

Until next time, this is Ivan Stegic. Thanks for listening.

Jan 08 2020
Jan 08

Happy New Year to all! 2019 was definitely a year we won’t soon forget, as it marked some of Agiledrop’s biggest successes to date: a significant expansion of our team, offices and technologies, topped with an even greater focus on providing the best possible experience for our employees. We are now more than ready to take on not only this new year, but rather the whole new decade.

From 40 to 60 full-time employees

In last year’s review, we announced that our team had grown to 40 full-time employees that year. Well, this number rose quite significantly in 2019 - at the end of the year, the Agiledrop family boasted as many as 60 members, making us one of the fastest-growing development agencies in the country. 

Most importantly, this growth did in no way come at a cost to a great employee and workplace experience: with all the new offices opened and all the perks added to existing offices, our employees are able to work in the best possible environment while maintaining a healthy work-life balance.

Unprecedented revenue growth

In terms of revenue, we can proudly say that 2019 was a year of unprecedented growth for us. We far surpassed the goals we set for ourselves at the end of 2018, while retaining everything that was already functioning perfectly before: our major clients come from different countries, meaning that we don’t have to rely on a single client or market to keep us afloat.

Moreover, we managed to secure clients both in the agency and end client space, and we are looking forward to continuing with this trend in 2020. A notable improvement was also that we started providing more and more managed development teams to our clients, rather than single developers. 

We were really happy with this as we see it as a testament to our clients’ satisfaction with our services and knowledge that they can always rely on us. The two also resulted in a number of longer partnerships that no longer feel only as mere business partnerships, but actual strong and sustainable relationships.

We plan on continuing with this trend going forward, while providing our clients with solutions and personnel that are tailored specifically to them. 

New offices

One of the most significant novelties for Agiledrop in 2019 was the opening of two new offices, the expansion of our existing Maribor office and the move of our Ljubljana headquarters to a much more spacious location

We already knew at the end of 2018 that our Ljubljana team would need a bigger office space, and we had also outlined plans to open a second office in the north-east region, in Celje. But, due to the unexpectedly rapid growth of our Maribor team, we also needed to increase the size of their office to accommodate everyone (especially during morning times when developers have their daily update calls with clients).

Another thing that caught our attention was the huge spike in popularity of IT services and development in Novo mesto, the capital of the south-east region in Slovenia, where we also saw a lot of interest in working with us. 

Thus, we killed two birds with one stone with our Novo mesto office: we’re helping the local development community there to evolve more significantly, while also expanding our team to another city and greatly cutting down commuting time for employees in this region. As such, we contribute to the community in Slovenia and also guarantee an excellent employee experience. 

Team activities

We figured out quite a long time ago that our team performs much better when we foster a culture of collaboration and a strong team spirit - a kind of “all for one, one for all” mentality. To this end, we schedule numerous activities throughout the year where we get to better know each other and forge new friendships.

I can safely say that in 2019 we held more of these internal events than any previous year, namely: 

  • Team lunches (dubbed “AgileFood”),
  • After-work sports activities, or “AgileSport”,
  • Internal lectures organized and given by our developers, called “AgileTalk”,
  • 2 larger “teambuilding”-esque events, where the entire team got together and combined several activities - you can read more about them here.

In addition to these, we also held several other internal and external events - e.g. we hosted meetups organized by the local PHP community, and one of them featured our developer Peter Kokot - one of the release managers of the latest version of PHP, PHP 7.4.

New technologies

With a greater number of clients and employees come new requirements and skills. 2019 cemented an observation that we made at the end of 2018 - namely, that we needed to expand our services beyond just Drupal. 

We’re proud to say, then, that we’ve successfully transitioned from being an exclusively Drupal agency to offering our clients solutions in a wide range of technologies. We’d previously worked with the powerful front-end framework Angular only as part of decoupled Drupal projects, but last year we executed a number of projects leveraging Angular alone. 

Similarly with the WordPress CMS - while it is a popular content management system for smaller personal sites, we started working exclusively on enterprise-level WordPress projects where we can truly make the most use of our developers’ skills. 

We plan to focus even more on WordPress and Angular, and have a larger share of our projects this year done with them. This also means that we’ll need to build larger and more dedicated Angular and WordPress teams, in order to also facilitate working more with managed teams rather than individual developers. 

Giving back to the community

Of course, like each year, we didn’t fail to give back to the community - both the global open source community and the local development community in Slovenia. In 2019, we organized the highest number of our free Drupal courses so far, and we plan on taking it even further this year thanks to being present all over the country.

We also sponsored and attended more events than any previous year - the majority were Drupal events, but we also started getting more involved in other open source communities (e.g. WordPress), with an even longer list of events already scheduled for 2020. 

As already mentioned, we also hosted several PHP meetups and were involved in other development-oriented events for fledgling developers. With the opening of our new offices in cities that aren’t as abundant in IT-related job offers, we also helped the local developer communities in those regions. 

Last but not least, we were again very active in contributing to Drupal’s open source code, with 59 issue credits on drupal.org. 

What's next?

With such a successful year behind us, we now have concrete proof that we’re on the right track and we’ll continue moving in this direction. We plan on further growing our team, with a focus on having more development managers and project managers for each individual Agiledrop office. 

Speaking of offices - we already have our sights set on at least one new office, so stay tuned for that. 2020 is looking to be another excellent year; we hope this turns out to be true for everyone! 

Jan 07 2020
Jan 07

On 7 January, 2020, the Drupal module JSON:API 1.x was officially marked unsupported. This date was chosen because it is exactly 1 year after the release of JSON:API 2.0, the version of JSON:API that was eventually committed to core. Since then, the JSON:API maintainers have been urging users to upgrade to the 2.x branch and then to switch to the Drupal core version.

We understand that there are still users remaining on the 1.x branch. We will maintain security coverage of the 8.x-1.x branch for 90 days. That is, on 6 April, 2020, all support for JSON:API, not in Drupal core, will end. Please upgrade your sites accordingly.

Thanks to my fellow maintainers Gabe Sullice and Mateu Aguiló for writing this announcement!

Jan 07 2020
Jan 07

Happy New Year!!! Our normally scheduled call to chat about all things Drupal and nonprofits will happen Thursday, January 16, at 1pm ET / 10am PT. (Convert to your local time zone.)

This month, in addition to our usual free-for-all, we'll be talking about Drupal and CiviCRM.  Have you got it up and working your Drupal 8 site? For those of us still working in Drupal 7, what can or should we doing to prepare for the inevitable upgrade? What are your favorite resources for working with these two systems?  Come share your experiences!

Feel free to share your thoughts and discussion points ahead of time in our collaborative Google doc: https://nten.org/drupal/notes

We have an hour to chat so bring your best Drupal topics and let's do this thing!

This free call is sponsored by NTEN.org but open to everyone.

REMINDER: New call-in information -- we're on Zoom now!

  • Join the call: https://zoom.us/j/308614035
    • Meeting ID: 308 614 035
    • One tap mobile
      • +16699006833,,308614035# US (San Jose)
      • +16465588656,,308614035# US (New York)
    • Dial by your location
      • +1 669 900 6833 US (San Jose)
      • +1 646 558 8656 US (New York)
  • Follow along on Google Docs: https://nten.org/drupal/notes
  • Follow along on Twitter: #npdrupal

View notes of previous months' calls.

Jan 07 2020
Jan 07

You’ve just freshly installed Drupal 8 on your computer and you are really looking forward to
getting your website up and running fast. You want all those amazing features you have heard
about of Drupal 8. So, what do you do next? Pick your Drupal 8 modules! Coz modules are the
building blocks of any great Drupal mansion.


Of course, it isn’t as simple as it sounds. Drupal 8 is powered by its ever-growing open-source
community who work hard to develop thousands of modules that can enhance and extend the
functionality of a Drupal website. Choosing out of thousands of Drupal 8 modules can be a
backbreaker.


Luckily for you, many significant contributed modules from Drupal 7 have made their way to
Drupal 8 core. Which means, you will only need to enable these modules once Drupal 8 is
installed. Let’s dive into a short list of top Drupal 8 modules you must have to build great digital
experiences. Following that, we’ll talk about how to pick your Drupal 8 modules.

Admin Toolbar Module

The Drupal Admin Toolbar module is extremely useful for better navigation for site admins and
site builders. The default Toolbar isn’t very user friendly. This module aims to extend the
functionality of the toolbar by offering drop-down menus that allow easy access to various
admin pages. It also offers a submodule to extend its functionality called Admin Toolbar Extra
Tools. This submodule adds more helpful links to the admin menu to perform tasks like flush
cache, run cron and more.

Paragraphs Module

The Drupal 8 Paragraphs Module gives a lot of power in the hands of content authors and
editors. It allows them to create flexible and structured content easily. You can now add various
paragraphs field types like images, text blocks, quotes, slideshows, videos and so much more.
Using the familiar node edit form, you can add/play around with as many paragraph items and
place them wherever you want to. It also offers widgets (still in experimental) which will allow drag and drop functionality, duplicating paragraphs and many other features that can elevate
user experience while working with the Paragraphs module.

Webform Module

This is one Drupal 8 module that is always on my recommended-modules-list. It is so versatile
and such an essential Drupal module that it is hard to ignore. Almost every website needs a
form. A contact form or a survey form or a feedback form – there is no running away from
them. The Drupal 8 Webform Module is a rich form builder that is easily customizable and
extendable. It allows to collect form data, send it to third-party applications or send emails to
admins or users. You can also export this data to spreadsheets for further analysis. There’s so
much more that the Webform module offers which cannot be summed up here.

Display Suite

The Drupal Display Suite module is a very easy-to-use and handy tool to build page layouts. It
offers a slick drag and drop interface to arrange content. There are a list of predefined layouts
and templates to choose from. Custom layouts and templates can also be created and added in
the theme. Custom view modes and custom fields can also be defined.

Devel Module

The Drupal Devel module is a very handy tool for developers and site admins. It is widely used
in testing purposes because of its ability to generate a lot of content for nodes, comments,
users and various content types and entities. Also, it allows developers debug any problems
with node access. Page footers can be added for all pages with the help of its submodule called
Webprofiler. Webprofiler also gives the site admins an insight to some analytics about the
caching abilities, database queries, resource utilization and much more.

Drupal GraphQL Module

GraphQL is a modern querying language that replaces old-timers like REST to communicate with
APIs. It is faster and yields only the results you are looking for – minus all the unwanted
baggage that comes along with a REST API call. The Drupal GraphQL module enables your
Drupal website to create GraphQL schemas and expose Drupal entities with GraphQL client
applications.

Pathauto Module

Having a well-structured URL does not only improve the user experience, it is very vital for
search engine optimization too. The Drupal Pathauto module is definitely a must-have module
in every Drupal project. It helps in automatically generating SEO friendly and well-structured
URLs. Site admins can also change the pattern system by changing the tokens it uses.

Google Analytics

The Drupal Google Analytics module adds Google analytics tracking system to your website.
Using this Drupal module, all features of Google analytics can be accessed and integrated with
your website. It allows for domain tracking, users tracking, monitoring tracked links, monitoring
downloaded files, site search, Adsense support and much more.

Things to Remember while choosing your Drupal 8 modules

Be it personalization modules, social media integration modules, marketing automation
modules or any other module, you can always find more than one for each functionality. Here’s
what you should keep in mind before making a choice:

Compatibility

Before you download a module, you should know if it is going to be compatible with your
version of Drupal. You just cannot install a version 7 module into your Drupal 8 installation
without cross checking if it is supported. To find out what version of the module has been
released in Drupal.org, you can go to the module’s project page and scroll right to the end
where you will see the download link and find the release versions specified. If it isn’t specified,
go to http://drupal.org/project/Modules/name and filter by Core compatibility.

They’re free but they consume space

You must keep in mind that although the contributed Drupal modules are free of cost, they are
not feather light. Unused modules can unnecessarily consume a lot of space and resources
which can make your Drupal website heavier and slower. So, before you download a module,
analyze if you really need it or if any other core module can perform the same functionality for
your website. Also, feel free to abandon those hardly used and inactive modules to make your
website feel healthier and light.

Actively Maintained Modules

It is very important to choose modules that are actively maintained, updated and published by
the developers. Because, if you run into any security vulnerabilities or any other issues, you
know that you can get a quicker response from the developer/contributor. Also, you will be
sure that an updated new version is on its way soon.

Popularity

Using popular modules means you can trust the module to do the job and be secure with less
issues. In the module’s project page on drupal.org, you can see the number of downloads and
how many websites are currently using that particular module.

Look out for issues

On the right side of the Drupal module’s project page, you can find the number of issues and
bugs (open and closed) associated with that module. On clicking on the link, you will be able to

see a detailed report of all bugs and issues. Looking at this can give you an idea if the module
can really help you with your functionality or not. The ‘Last Updated’ date can also give you an
idea of how active the developers are in solving issues and how responsive they are.

Jan 07 2020
Jan 07

We’ve already discussed in our previous blog, how Progressive Web Apps (PWAs) are trending and making web apps load faster, ensuring exceptional user experience.

For one of our clients, we implemented this solution to create a budget planner and currency calculator for a giant travel retail outlet and helped boost the sales just after 3 months of its deployment. 

Let’s dig deeper into the technical details and understand the nitty-gritty of creating PWA using React on a Drupal 8 website. 

Why Opt For This Approach

With the increasing popularity of ReactJS, JavaScript libraries and frameworks prove to be useful in building complex applications by seamlessly getting embedded on a Drupal site, thus combining the robustness of an API-first CMS with slick and quick React frontend to collectively give way to amazing digital experiences along with future-proof builds. 

To create PWA on a Drupal site, one can use Service Workers, Web App Manifest and HTTPS. However, opting this approach will not unnecessarily increase the load of the application and will reduce the entire application load time. Possessing knowledge of React in addition to Drupal is the only requisite here to implement the approach.

How To Create PWA With React on Drupal 

Step 1: Create React Environment

In our last blog on React, we learned how to set up Setup React App From Square One Without Using Create-React-App  Once the environment is set up, we shall move forward to creating a React app.

Step 2: Create React Application

Before looking into the process of creating a React application, let’s get a hold of the below terms:

  • Components - It's the building block of any react app. Basically, there are two types of components.
    • Functional
    • Class (From 16+ react version, this component is deprecated. Only functional components are used.)
  • Props - Arguments passed in react components to send data to components. 
  • States - Behaves like a data store to components. It’s mostly to update components when user performs some operation like clicking buttons, typing some text etc.

Now, let's write our first code block of React by using ES6 classes to create a React component called App.

index.html

class App extends React.Component {

  //...}

Now we'll add the render() method to render DOM nodes.

index.html

class App extends React.Component {

  render() {

      return (

          //...

      );

  }

}

In return, we’ll insert a simple HTML element. 

index.html

class App extends React.Component {

  render() {

    return <h1>Hello world!</h1>

  }

}

Finally, we're going to use the React DOM render() method to render the App class we created into the root div in our HTML.

index.html

ReactDOM.render(<App />, document.getElementById('root'))

Here is the full code for our index.html:

index.html

<!DOCTYPE html>

<html>

  <head>

    <meta charset="utf-8" />

 

    <title>Hello React!</title>

 

    <script src="https://unpkg.com/react@16/umd/react.development.js"></script>

    <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>

    <script src="https://unpkg.com/babel-standalone@6.26.0/babel.js"></script>

  </head>

 

  <body>

    <div id="root"></div>

 

    <script type="text/babel">

      class App extends React.Component {

        render() {

          return <h1>Hello world!</h1>

        }

      }

      ReactDOM.render(<App />, document.getElementById('root'))

    </script>

  </body>

</html>

Now if you view your index.html in the browser, you'll see the h1 tag we created rendered to the DOM.

hello world screenshot

Hello World screenshot

Step 3: Visualizing the React component in Storybook

Storybook is a user interface development environment and playground for UI components. 

Visualizing the React component in Storybook

The tool allows testing the components independently and interactively in an isolated development environment. Story file code looks like:

Story file code

After running `npm run storybook` command, storybook will open on localhost server as shown in the attached screenshot.

storybook screenshot

 

Step 4: Creating Custom Block API in Drupal 8 and Embedding React application 

On running npm run build command on React application, it creates this react minified JS file:

/drupal_root/module/custom/react_block/react_block.libraries.yml

jsfile

The minified js file searches for the markup in the /drupal_root/module/custom/react_block/src/Plugin/Block/ReactApp.php file

and on finding the div ID, it renders itself at that point.

file getting rendered

And this is how the React block renders itself on our Drupal 8 website and makes the website a PWA.

Srijan can help you leverage the power of React with API-first Drupal to create robust content workflows and hence lead to joyful editorial experiences for your business to evolve. Get in touch with our experts or leave your queries in the comment section below and let’s get the conversation started.

Jan 07 2020
Jan 07

We’ve already discussed in our blog how decoupling Drupal helps you achieve greater flexibility, to deliver data anywhere and everywhere to the user at a lightning fast speed, ensuring exceptional web experience.

Let’s dig deeper into the technical details of how progressively decoupled apps can be created using React on a Drupal 8 website.

Why Opt For This Approach

With the increasing popularity of ReactJS, JavaScript libraries and frameworks prove to be useful in building complex applications by seamlessly getting embedded on a Drupal site, thus combining the robustness of an API-first CMS with slick and quick React frontend to collectively give way to amazing digital experiences along with future-proof builds. 

How To Create Progressively Decoupled App With React on Drupal

Step 1: Create React Environment

In our last blog on React, we learned how to set up Setup React App From Square One Without Using Create-React-App  Once the environment is set up, we shall move forward to creating a React app.

Step 2: Create React Application

Before looking into the process of creating a React application, let’s get a hold of the below terms:

  • Components - It's the building block of any react app. Basically, there are two types of components:  Functional and Class (From 16+ react version, this component is deprecated. Only functional components are used.)
  • Props - Arguments passed in react components to send data to components. 
  • States - Behaves like a data store to components. It’s mostly to update components when user performs some operation like clicking buttons, typing some text etc.

Now, let's write our first code block of React by using ES6 classes to create a React component called App.

class App extends React.Component {
}

Now we'll add the render() method to render DOM nodes.

index.html

class App extends React.Component {
render() {
return (
);
}
}

In return, we’ll insert a simple HTML element. 

class App extends React.Component {
render() {
return <h1>Hello world!</h1>
}
}

Finally, we're going to use the React DOM render() method to render the App class we created into the root div in our HTML.

ReactDOM.render(<App />, document.getElementById('root'))

Here is the full code for our index.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />

<title>Hello React!</title>

<script src="https://unpkg.com/[email protected]/umd/react.development.js"></script>
<script src="https://unpkg.com/[email protected]/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/[email protected]/babel.js"></script>
</head>

<body>
<div id="root"></div>

<script type="text/babel">
class App extends React.Component {
render() {
return <h1>Hello world!</h1>
}
}

ReactDOM.render(<App />, document.getElementById('root'))
</script>
</body>
</html>

Now if you view your index.html in the browser, you'll see the H1 tag we created rendered to the DOM.

hello world screenshot

Hello World screenshot

Step 3: Visualizing the React component in Storybook

Storybook is a user interface development environment and playground for UI components. 

Visualizing the React component in Storybook

The tool allows testing the components independently and interactively in an isolated development environment. Story file code looks like:

Story file code

After running `npm run storybook` command, storybook will open on localhost server as shown in the attached screenshot.

storybook screenshot

Step 4: Creating Custom Block API in Drupal 8 and Embedding React application 

On running npm run build command on React application, it creates this react minified JS file:

/drupal_root/module/custom/react_block/react_block.libraries.yml

jsfile

The minified js file searches for the markup in the /drupal_root/module/custom/react_block/src/Plugin/Block/ReactApp.php file

and on finding the div ID, it renders itself at that point.

file getting rendered

And this is how the React block renders itself on our Drupal 8 website and makes the website a progressively decoupled app..

For one of our clients, we implemented this solution to create a budget planner and currency calculator for a giant travel retail outlet and helped boost the sales just after 3 months of its deployment. 

Srijan can help you leverage the power of React with API-first Drupal to create robust content workflows and hence lead to joyful editorial experiences for your business to evolve. Get in touch with our experts or leave your queries in the comment section below and let’s get the conversation started.

Jan 06 2020
Jan 06

In my last blog, I talked a bunch about some of the basics of our development efforts around Acquia ContentHub 2.x. There's a lot more I'd like to discuss about that module and the efforts our team has put into it, but one of the comments I got on twitter specifically asked about the Drush commands we packaged with 2.x, how they're used, and what you can do with them, so in an effort to both continue discussing the good work of the team, and the capabilities of the product, I'm going to dedicate this blog to that topic.

A Word about Data Models

I could certainly just document how to use the commands, but as with anything, I think understanding the theory involved is helpful, both for greater understanding of the product itself, as well as principles of good Drupal development. In the previous blog, we talked about the 5 basic steps of data flow, but I didn't get into the specifics much. So I want to talk first and foremost about how ContentHub finds and serializes data to be syndicated (since this will apply directly to one of our drush commands).

ContentHub 2.x relies heavily on a new contrib module called depcalc. Depcalc's got a rather simple API that allows a DependentEntityWrapper instance (a super lightweight pointer to load a particular entity) to be parsed for other dependencies. This API then recursively calls itself, finding all dependencies of all entities it encounters along the way, until it runs out of stuff to look at. Now, many data models are going to be processed pretty quickly, but there are lots of other data models which process slowly. Deeply nested dependency trees will take some time to calculate. I've seen trees of 1200-1400 take 6-8 minutes to process, but I've also seen trees of 300-400 process in just a few seconds. I've also seen data models that didn't come back with results after over 30 minutes of processing. The difference is HOW they're structured, so it's really critically important to understand your data model. If you don't you might not get the results you want or expect. ContentHub has a number of APIs dedicated to helping to streamline this functionality and I intend on discussing them at length in other blogs posts, but for the sake of this blog, it is just important that we establish a baseline understanding. Different data models have different processing characteristics. YMMV.

Calculating Dependencies

In order to understand the characteristics of your data model, you need to understand the basics of how depcalc is going to find dependencies for your entity(ies). First, when an entity is handed to depcalc, it dispatches a dependency calculation event with the DependentEntityWrapper. Event subscribers tend to focus on one classification of dependency, so for instance, one might check to see if the entity is a content entity with entity reference fields, and then dig through all those reference fields finding subsequent entities for processing. Another subscriber might execute if the entity is a config entity and process through Drupal core's config dependencies. Yet another subscriber might look exclusively at text areas finding the input filter that was used to process the data in the field. A handful of these sorts of events exist within depcalc specifically, and since it's an event subscriber pattern, if you have a custom relationship that won't be calculated through our existing subscribers, you can always add your own. As I previously mentioned, all entities found this way are recursively calculated until we find no new entities. We don't attempt to deal with simple configuration, and non-entity data is yet to be used in our syndication pattern.

Identifying Problematic Data Models

Now that you understand the basics of HOW we calculate dependencies, it's up to you to look at your own data models and make determinations about their compatibility with the process we're about to attempt. There are a few obvious guidelines to follow however.

  1. If an entity of a particular bundle has references to other entities of that same bundle, it's possible you will end up having a dependency tree that includes ALL entities of that bundle.
    One of our early clients asked us why they were getting ALL news articles when they exported any one news article. We looked at the data model and noticed that they had "previous article/next article" entity reference fields, and suddenly, this was a very easy question to answer. Similarly, I've had customers with less clear cut relationships between entities of "like" bundle. Organizations related to other organization, and this can lead to situations where calculation on one organization node might happen rather quickly while others simply seem to never finish. In future blogs we'll talk about how to handle these situations, but you need to identify up front if you have them.
  2. Paragraphs
    We support paragraphs, but if you've used it for page layout, it can be a real bear to calculate depending on how deeply nested it is and how many paragraphs are used on an average page. Also, we don't move twig templates around, so the receiving site likely won't have the templates to interpret the incoming paragraph data and it will be displayed oddly.
  3. Lots of entity references
    If you have a single entity bundle with many entity references, this can also be indicative of problematic data modeling, and can make it difficult to predict how long entities of a given bundle might take to process.
  4. Custom Field Types
    This isn't really "problematic" so much as you should be aware that ContentHub is going to make a "best guess" at field types it doesn't understand. If you have custom field types, or even contrib field types we've not yet written support for, some of your data may be incorrect or missing. If you find this to be true for any contrib field, feel free to file a ticket and we can look at what it would take to get it supported.

Ultimately, there's no harm in trying, but you might be surprised by how many entities are actually related to each other in these circumstances. In a future blog I'll detail how we break down these entities and make them processable even when they might be problematic. Also, keep in mind that if an entity you want to syndicate references an entity with the characteristics we've described above, all the same problems can apply.

Exporting Via Drush to Flat File

With all my caveats out of the way, let's get to the meat of this blog and talk about using Drush to export our data. We're going to use a file in the local file system to store our data for output. In order to do this though we'll actually need to files. ContentHub's Drush export command works on the idea of a manifest file to define the specific entities we want to see exported, so we must first create the manifest file. The file can be named anything you like, so you could actually have a series of manifests for different use cases. The manifest can have 1 entity, or however many you need. Start small and work your way up to whatever you might need. In the normal operation of ContentHub with Acquia's service, we seldom need to move many top level entities at once. While a lot of care was taken to make the import and export processes as lean as possible, Drupal core still has static caching of entities baked deeply into entity storage, which can exhaust memory if you have lots of entities loaded over the course of a single bootstrap.

The manifest file should be in yaml format. We support referencing entities in "type:id" or "type:uuid" formats. Your manifest could look as simple as this:

entities:
  - "node:1"

A more complicated manifest file might look thus:

entities:
  - "node:1"
  - "node:91644a22-8ec8-413e-91fb-b928dba88fd7"
  - "node:315a0239-57d2-4dcb-89bd-f9a76851b74c"

Our first example exports node 1 and its dependencies. Our second example exports node 1, and the two other nodes by their uuids, along with all the dependencies across all 3 entities. If all of these nodes were of the same type, the supporting config/content entities common to them all would only have one entry in the resulting exported output, so this can be a fairly efficient way to group entities together by top level bundle. Also, since we can export config entities, a manifest file can also reference config entities. If you wanted to export a view or some other entity with these 3 nodes, you could absolutely do that, you just need to use the Drupal entity type id, and the id or uuid of the entity you want to export.

Let's assume our manifest file is named "manifest.yml". We can execute our drush command from inside the Drupal directory like so:

drush ach-elc manifest.yml

Once the dependency calculation and serialization processes are complete, this will output what we call "CDF" directly into your terminal. CDF is a custom json data format we use for communicating about our entities. In future blogs, I'll break down CDF into its various components so that it's easy to understand and dissect. If you want to capture this CDF to file, we can do so with typical CLI notation:

drush ach-elc manifest.yml > manifest.json

A Quick Word About File Handling

CDF Doesn't attempt to make the binary representation of files portable. There are obvious reasons for and against doing this, but currently ContentHub depends on sites and their files being publicly accessible. We currently only support the public file scheme (though we want to support S3 and Private files in the long term). If the site you performed your export on is not accessible to the site you will import into, then your files will be missing once the import is complete.

Importing Data from CDF File

Assuming we have successfully exported CDF data to a local file, we can attempt an import. Let's discuss the basic requirements of the receiving site:

  1. Code base must be the same
    All the same modules must be available within the code base. They don't have to be enabled or configured (ContentHub will do that), but they do have to be present.
  2. A blank canvas is always best
    While not a strict requirement, a blank canvas in terms of content and configuration is always going to demo best. I'd suggest using the "Minimal" installation profile for your first attempt. Keep in mind, ContentHub attempts to unify your configuration settings, so if both the Originator (we call these sites Publishers) and the Receiver (we call these sites Subscribers) have the same entity bundles, ContentHub is going to bring the receiver's configuration inline with the originator. That's fine most of the time, but if your setup is more complicated and includes any sort of configuration conflicts, we'll need to solve those separately. While this CAN be done, you probably don't want to attempt it for your first try using ContentHub, which is why I'm suggesting the Minimal profile.

With those guidelines in place, we are now ready to attempt an import. Be sure to point the drush command at the json file you created, NOT our original yml file.

drush ach-ilc manifest.json

This should result in terminal output that tells you how many items were imported. Something like:

Imported 73 from manifest.json.

Conclusion

Congrats! You've just successfully moved content and configuration from one Drupal site to another via Acquia ContentHub! As I've mentioned before, ContentHub is actually backed by a service for doing this at scale, but the benefits of having a drush command for debugging and testing purposes is really invaluable. It works at a small scale, and makes it possible to trial ContentHub's features. We actually do this programmatically in our test coverage a lot to prove that ContentHub is working as expected, and covers the various use cases we want to see.

In future blog posts I'm going to dissect CDF and show what it's doing, and how it does it. I'll also be posting about manipulating your data models, controlling what field data is and isn't syndicated and calculated, and probably a general discussion of the different events ContentHub & Depcalc dispatch, what they're used for, and how they can customize and streamline your data flows. As always, I'm super interested in any feedback people have, and would love to hear about your experience.

Jan 06 2020
Jan 06

At BADCamp, you'll get a chance to learn from the best, see old friends, make new connections, and walk away refreshed, inspired—and a little bit smarter, too.

Join us for four days of talks, training classes, summits, contributions, and socials with some of the brightest minds from all over the planet!

Sign up for the newsletter today! Scroll down to the bottom of the Home Page to sign up.

Jan 06 2020
Jan 06

When Layout Builder was introduced into Drupal 8 Core, it gave Site Builders a tremendous amount of flexibility previously reserved for Front End Developers (or Themers).  While it represents a major leap for Drupal, there are still some shortcomings in the module, and that's where some great additional contributed modules are really helping.

In this blog post, we will highlight three of the best modules currently available.  (Note: more are being added all the time!). For a complete list of contributed modules for Layout Builder, visit https://www.drupal.org/docs/8/core/modules/layout-builder/additional-modules.

Layout Builder Styles

layout builder styles edit configThis module allows site builders to select from a list of styles to apply to layout builder blocks and layout builder sections.  Created by Brian Osborne (bkosborne) a Senior Web Developer from Princeton University, this module makes it incredibly simple to apply previously defined CSS styles to both sections and blocks (you'll need those styles in a stylesheet in your theme or use a module like Asset Injector).

A "style" is just a representation of one or more CSS classes that will be applied. Additionally for blocks, a block template suggestion is added for the selected style.

A simple user interface is provided for managing the styles available. Since a style is a configuration entity, it can be exported and imported just like any other configuration data on your site.

Please note that this module requires Drupal 8.7.0 at a minimum.  The full documentation is here at https://www.drupal.org/docs/8/modules/layout-builder-styles.  At the time of this writing, the module is still in beta; however, we've used it a number of times without issue.

Layout Builder Library

This module was created by Lee Rowlands (larowlan), a Senior Drupal Developer for PreviousNext (Tim Plunkett is a co-maintainer).

With this module, Site builders can create and deploy pre-defined layouts for each entity-type and bundle combination.  Content editors can then select from existing layouts.

Also, Site admins can prevent content-editors from creating their own bespoke layouts, but give them the ability to customize layouts on a per-content-item basis.

layout library

This module is also in Beta at the time of this writing; however, it is recommended by the project's maintainer, and we've had no issues with it.

Layout Builder Restrictions

layout builder restrictionsOut of the box, the Layout Builder "Manage Display" interface shows all blocks (including all entity-specific fields), and all layouts that are registered in the system. This module provides an interface for suppressing blocks and/or layouts. Sites can allow all options from a certain provider, or restrict all options by provider, or specify individual allowed blocks & layouts.

Created by Mark Fullmer (mark_fullmer) from the University of Texas.  

This module is very helpful in restricting what a content editor sees when they click add section or block.  

Restricting the layouts a content editor can choose, can prevent any "over-creativity" from creeping into your site.  By restricting blocks, the entire interface becomes less confusing.  The reasoning here is why should we display blocks (or anything) that we would never want to be added to a node?

This module is in version 2.4 as of this writing, and is recommended by the project's maintainer.  Mark has also committed to ensuring compatibility with Drupal 9.

Final Thoughts

Layout Builder is a game-changer for Drupal Site Builders.  These three additional modules really help make it easier to use!

Newcomers to Layout Builder in Drupal 8 should check out our 30-minute video class at https://www.ostraining.com/class/drupal-8-layout-builder/


About the author

Rod holds two masters degrees and has been training people how to do "things" for over 25 years. Originally from Australia, he grew up in Canada and now resides just outside Cincinnati, Ohio.

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