Evolving Web: 8 Rock Solid Reasons Why Drupal 10 is a No-Brainer

Image removed.

The release of Drupal 10—and the subsequent minor release of 10.1—has brought an impressive array of new features and improvements. If you attended our EvolveDrupal Summit in Toronto, you had the opportunity to walk through the best new features with Martin Anderson-Clutz, Senior Solutions Engineer at Acquia

Missed the summit? No worries! Use this article to catch up on key points from the presentation, or watch the recording below. 

 

//--> //--> //-->

 

Read on to explore eight awesome reasons why you should consider upgrading to Drupal 10.

1. Speedy Performance 

Sites that load quickly usually see more traffic and better conversion rates. Drupal consistently outperforms its competitors when it comes to speed, and version 10.1 brings improvements that make it faster than ever. 

Core Web Vitals (CWV) are a reliable measure of a performance—they consist of three metrics that measure how long a site visitor has to wait until they can see a page and begin to make use of it. From January to July 2023, Drupal achieved an impressive CWV score of 51.4%, far outstripping other open-source CMS rivals like Joomla (41.7%) and WordPress (32.5%). 

Drupal 10.1 improvements that are contributing to its speediness include:

  • Lazy loading. While lazy loading has been a part of Drupal since version 9, Drupal 10.1 takes it to the next level. It now also works for responsive images and OEmbed content.
  • Big Pipe. Building on the Big Pipe functionality introduced in Drupal 8, Drupal 10.1 now allows custom placeholder content. This means reduced layout shifts, resulting in a smoother user experience. With placeholders, the layout remains stable as Big Pipe loads in content.
  • On-the-fly JS minification. Minimizing code and markup through on-the-fly JS minification is another technique employed by Drupal 10.1. This optimization dramatically improves site speed, leading to a better user experience and lower bandwidth usage.

2. Global-Readiness

Drupal's advanced multilingual support has long been a standout feature, but the community hasn’t been resting on its laurels. There are several improvements that mean:

  • It’s easier than ever to manage translations and translation workflows
  • You can add and manage custom languages within Drupal
  • Language detection is more accurate as Drupal now uses browser settings to determine a user's preferred language, rather than relying on their location

3. Modern Functionality 

Drupal has dropped support for Internet Explorer, enabling it to support much more modern development techniques. This has resulting in some fantastic initiatives and features such as:

  • Olivero front-end theme. The new default theme in Drupal 10, Olivero is designed with accessibility in mind. It embraces modern CSS techniques and atomic design principles, setting a high standard for front-end theming.
  • Claro admin theme. Claro is not just a new UI for admin tasks; it's a complete design system with accessibility in focus. It's decoupled from Drupal, allowing for customization to meet specific admin requirements.
  • Views responsive grids. Drupal 10.1 introduces a new format for views using modern CSS. This neat feature has gained recognition beyond the Drupal community, even getting featured by CSS Tricks.
  • Single Directory Components (SDCs). SDCs make it easier for front-end developers to work with Drupal by grouping related files together. This simplifies customization and enhances the developer experience. SDCs are currently available as an experimental module in Drupal 10.1, and work is ongoing to convert regular components to SDCs.

Image removed.EvolveDrupal Toronto united 180+ professionals from the tech and design communities.

 

4. Intuitive Design

Drupal is continuously working to make its interfaces more intuitive for users. For example, the interface for reusing an existing field now provides more information, including field type and summaries, making it easier to select the right field for your content. The bulk content operations interface has also undergone a thorough overhaul. 

Meanwhile, the upcoming release of Drupal 10.2 promises a more visually appealing interface for creating new fields that will be easier and less intimidating for Drupal newcomers.

5. Built for Inclusivity

Drupal continues to deliver on its commitment to improving web accessibility and supporting customized digital experiences for people with disabilities. Drupal 10 introduces:

  • Nightwatch accessibility tests. This helps the Drupal accessibility team to identify and address potential issues in core.
  • Accessible default themes. Olivero and Claro offer out-of-the-box WCAG Level AA compliance. 
  • Support for assistive devices. The new default themes support HTML5 tags to improve context for assistive devices such as screen readers. 

6. Easy Content Creation

One of the biggest improvements to the Drupal content editing experience is the adoption of CKEditor 5. CKEditor 5 is a complete rewrite of its predecessor, making it far more extensible and compatible with modern JS frameworks. It also offers premium features such as real-time collaboration tools, which give users access to a Google Docs-like editing experience within the Drupal admin UI. 

CKEditor 5 also introduces autoformats, allowing users to apply formatting using only their keyboard. It supports markdown-like shortcodes for things like bolding or italicizing text and creating headings and bullet lists. For example, typing two asterisks either side of text (**like this**) will bold it.

Media integration has also been revamped in CKEditor 5. There used to be a modal overlay for doing things like setting image alignment or adding a caption, which was problematic as it obscured the content you were working on. There’s now a ribbon overlay instead, giving content creators more context and a much easier experience. 

Want to enhance your content editing functionality? Read how to port a CKEditor 5 plugin to Drupal 10 or explore our 5 favourite modules for extending CKEditor 5.

7. Advanced Security

Drupal has a reputation for being secure. It’s trusted by many governments, banks, insurance providers, and other organizations that deal with sensitive data and mission-critical projects. 

Drupal has a dedicated security team with a track record of 15+ years that regularly releases security updates and patches. Running security updates just got easier thanks to the Automatic Updates module, which allows you to update Drupal core simply by clicking a few buttons. It also helps with database updates and provides APIs for custom updates. It’s currently available as a contributed module, but work is underway to adopt it in core.

8. Continuous Innovation

With minor releases every 6 months and major releases every two years or so, Drupal continuously drives innovation within its community and ensures compatibility with the latest technologies (Drupal 10 is compatible with PHP 8.1 and Symfony 6.2). There’s also a new initiative to streamline Drupal core by removing less-used components, making it faster and more efficient for developers. 

Drupal’s open source community of 1.4 million members—of which more than a hundred thousand are active contributors—have created over 50,000 free modules and 3,000 free themes. This gives Drupal users tremendous power to customize and extend their websites.  

What’s more, it’s easier than ever to select the right module for you thanks to Project Browser—a new module that allows you to browse the repository of contributions from within the Drupal UI. 

In his presentation, Martin highlighted a few exciting new modules:

Get Expert Help With Your Drupal 10 Upgrade

If this article got you excited about adopting Drupal 10, why not start a conversation with our Drupal migration experts? 

We can help you plan and execute a smooth transition whether you’re switching to Drupal, upgrading from Drupal 9, or taking action due to Drupal 7’s end of life.  

 

//--> //--> //-->

+ more awesome articles by Evolving Web

Drupal Core News: Coding standards proposals for final discussion on 7 November

The Coding Standards Committe is announcing two coding standards changes for final discussion. Feedback will be reviewed at the meeting scheduled for 07 November.

Issues for discussion

The Coding Standards project page outlines the process for changing Drupal coding standards.

Recent changes

Allow constructor methods to omit docblocks

Documentation changes:

  1. Minimum requirements for in-code documentation
  2. Drupal API documentation standards for classes and namespaces

Always add trailing commas, for arrays and annotations

Documentation changes:

  1. Arrays coding standard
  2. @Annotation, @Plugin, etc.: Plugin discovery annotations

Join the team working on Coding Standards

Join #coding-standards in Drupal Slack to meet and work with others on improving the Drupal coding standards. We work on improving our standards as well as implementing them in the core software.

Drupal Core News: New members and process for the Coding Standards Committee

Welcome to new members!

We're thrilled to extend a warm welcome to the latest additions in the coding standards committee. 

Meet our newest team members:

  • Aaron McHale (AaronMcHale) 
  • Björn Brala (bbrala)
  • Derek Wright (dww)
  • Urvashi Vora (urvashi_vora)
     

We believe in the power of diversity and collaboration, and we’re confident that their contributions will add an incredible value to the committee.

Changes to the process for changing coding standards

A priority for the new committee has been to update 'The Process for Changing Coding Standards'. The key change is that coding standards issues now stay in the Coding Standards project. That is, they do not move back and forth between the Coding Standards project queue and the Drupal core queue. Instead of moving an issue that affects Drupal core a committee member will make sure it is on the agenda for the next Core Committer meeting.

You are encouraged to read the complete new process on the Coding Standards project page.

ComputerMinds.co.uk: Irina's experience of Drupalcon Lille

Image removed.

Drupalcon Lille 2023 was my first experience of a large Drupal event. I didn't know what to expect but I was so excited and looking forward to it! I have to say Drupalcon exceeded all of my expectations, in a good way!

In the beginning, I tried to remain humble as I’d never seen so many Drupal villagers before. But it didn’t take me long to start chatting to all the exhibitors, and contributors and connect with the community. It was a great opportunity to learn more about Drupal and be part of interesting sessions and informal conversations. It was a surprise to see community members not just from Europe but from all around the world. 

The biggest challenge was to decide which sessions to go to. The topics for the sessions were so broad; from Drupal basics and best practices to deep technical skills. All of them looked interesting and it was hard to pick because I didn’t want to miss anything. I'm so glad all of the sessions are available on replay on the OnAir platform and I can check them out later. 

Search API Decoupled, CKEditor 5 plugin and Dashboard left lots of thoughts in my mind and I can't wait to try and see how I can apply them to my work with ComputerMinds.

Image removed.

Some sessions were just another perspective of what we at ComputerMinds are already doing.  For example, the performance audit session was a good review of the most common problems I encounter. It was a really helpful, structured way to show how important it is to implement best practice at an early stage.  Such as how often do developers disable cache to “solve” bugs? The quickest fix is not always the best fix and there are ways to avoid problems through good planning. I particularly enjoyed the discussion on the use of views and paragraphs. Views are great and I use them all the time but at the same time, queries can slow things down. Now when I develop views I will think about how I can make best use of queries. 

Drupal is open source and we all download modules, themes and features but I never really thought about how all these features were developed. A case study about building the field UI improvements was a good example. I never thought about all the stages that go into building a feature from identifying the problem to the actual development.  It shows how people all work and focus on building a better Drupal, and it was a good opportunity to ask contributorsImage removed. questions. I felt encouraged to raise issues and also to make a contribution myself in the future. 

Surprisingly, at some point, I developed a competitive spirit and started scanning exhibitors' barcodes so that I collected enough points to enter a raffle. Coffee is the best winner's gift, right? :)

Although we had very busy days at Drupalcon it went so fast and before long it was time to go home! 

I'd like to thank ComputerMinds for organising our trip and all the people involved in the actual event. I really enjoyed it and took on board a lot of useful information.

LN Webworks: How to Achieve Revenue Growth with Drupal’s Roadmap

Image removed.

There is no denying the fact that every business organization is established to make profits. As the total revenue generation determines the overall profitability of an organization, increasing revenue is important to escalate profits. Drupal is a top-notch content management system (CMS) that bestows websites with the capability to achieve organic growth and multiply revenue. This is precisely why most businesses are reaching out to Drupal companies for building sites powered by the phenomenal CMS. This blog will delve into revenue growth with Drupal’s roadmap. 

DrupalEasy: Mentoring a team of new contributors at DrupalCon Lille 2023

Image removed.

One of the signature events of every Drupalcon (IMHO) is contribution day, when community members from around the world gather to work together in the same physical space to advance various aspects of the project - from strategic and community initiatives to contributed modules and themes as well as non-code contributions like Promote Drupal and, of course, core contributions.

As part of this, space is always set aside for new contributors, with community volunteers helping to organize, train, and mentor community members new to project contribution. This space strives to be a welcoming environment to those of all skills and skill levels, and includes a "First time contributor workshop" to introduce new contributors to contribution areas and tools.

tl;dr The team I mentored managed to complete the core issue we selected and get it committed to core by the end of the day - something that hasn't happened at a Drupalcon in several years!

Setting a goal

This year, I volunteered to be a mentor in the Mentored Contribution room. Some mentors are provided with a free ticket to Drupalcon, with the understanding that they will not only volunteer a full-day of their time during contribution day, but will also dedicate several additional hours of their Drupalcon experience to attending a mentor orientation, helping out at the Community Mentoring table (graciously provided by Kuoni in the main expo area,) among other tasks.

I've mentored at community events previously (DrupalEasy also provides mentoring services for hire,) so going into the day, I knew exactly what the goals for my "team" were going to be:

  1. Find a core issue that was clear enough for our team to be able to make a strong attempt to get it to a "Reviewed & tested by the community" (RTBC) status by the end of the day - with a stretch goal of having it committed to core before the end of the day.
  2. Learn to work with Drupal.org issue forks.
  3. Utilize DrupalPod (thank you, Ofer!) for all work on the issue.

It is important to note that not all tasks at Mentored Contribution are code and/or project related. The mentoring team does a great job of mentoring other forms of contributions as well.

Finding the right core issue

Having some previous experience, I knew that the first task would likely be time-consuming, so I took it upon myself to spend a couple of hours prior to contribution day to browse through Drupal core issues tagged "Novice" . Finding the right issue to work on during a contribution day is always tricky. Newer core issues tend to be very dynamic with active contributors working on them. Older core issues tend to be more difficult for various reasons - sometimes consensus isn't reached, other times the issue is too complex to be approached by a group in a single day. Prior to the Mentored Contribution day, organizers perform issue triage to narrow down potential issues.

I eventually settled on an issue from November, 2020 titled Add autocomplete attributes on login form and password reset form. The task involved adding some HTML attributes to a couple of core forms to help password managers more reliably target username and password fields. There was an existing merge request (MR) for the issue, but it was without tests (and about two years old.)

This issue seemed to have the criteria I was looking for - something approachable and a relatively straight-forward end goal, something that would allow us to utilize merge requests, and something that required some, but not too much, coding so we had a chance at finishing before the end of the day.

The team

Generally, mentors declare the types of tasks they'd like to work on, then volunteer greeters welcome folks as they show up for the day and bring them to a table to get to work once the "First time contributor workshop" is complete.

Our team consisted of eager new contributors, including: guzmanb, maxime.rffd, hexaki, samuel_orhan, rauch, guiu.rocafort.ferrer, mullzk, and binnythomas.

Image removed.

Using DrupalPod

The mentoring organizers recommend that we use DrupalPod during contribution day. DrupalPod is a browser extension and a set of scripts that make it super-easy to spin up a core development environment on GitPod. DrupalPod utilizes DDEV (something I know a little bit about) and runs completely in a browser, making it very convenient for contribution events like this.

We took some time to ensure everyone was able to spin up their DrupalPod environment for the existing MR, but quickly faced some challenges, as the DrupalPod environment was not launching cleanly.

We worked together to eventually determine that the main issue was the fact that the issue fork was over 2 years old and didn't have an 11.x branch, so the DrupalPod scripts were unable to properly set up the development environment. This allowed our team to learn about diagnosing and correcting issue fork challenges.

This also allowed our team to learn about (and practice) the necessary configuration and workflow for pushing commits from a Gitpod environment back to drupal.org. This involved setting up a temporary .ssh key set (with assistance from DrupalPod) and using Visual Studio Code's Git UI for making pushes (and not the command line.)

These tasks took several hours to complete - ensuring that all team members were staying engaged. 

The issue code

Once we had the development environment and issue fork configured properly, it was time to discuss our approach to completing the issue. Several of our team members had to leave after lunch, so we were left with a core group of individuals, with new contributor guiu.rocafort.ferrer volunteering to take the lead. We planned out the change (and actually expanded the scope of the issue a tiny bit) and I received some guidance from an experienced core developer on what would be a reasonable PhpUnit test for this issue that I relayed back to the team.

I provided some guidance to the team to figure out where the test code should go (a new test class wasn't necessary; we just had to figure out the best existing test class to add to) and an overview of what the (relatively simple) test should look like.

At that point, I felt the existing team members had things well-in-hand, so I stepped back and let them get to work. 

Getting to RTBC

By now, it was mid-afternoon and I was very hopeful that we'd at least be able to get the issue to "Needs review" with an outside chance of "RTBC." While the team worked on the code, I recruited a couple of experienced code contributors to review the code as soon as it was ready.

The team had some minor questions as they proceeded, but no blockers. They were all experienced PHP developers, so for them, this was the easiest part of the task, I suspect.

When they felt they had completed the task, I did a line-by-line code review with them, suggesting several minor changes, before they committed and pushed to the MR. I then alerted our reviewers (jurgenhass and lostcarpark) and they both agreed that it looked good. While this was going on, I alerted the mentoring organizers that we would potentially have a core issue at RTBC.

Live Drupal core commit

As long as I've been a part of the Drupal community, during Drupalcon contribution days, "live core commits" have always been a thing. From what I've been told, there hasn't been one for "several years" for various reasons, so I was quite proud of our team when nod_ showed up to congratulate our team and commit their changes to Drupal core on the big screen at the front of the mentored contribution room

Retrospective

Looking back at the event, the only thing I would have changed is something that was completely out of my control - the fact that over half of our team wasn't able to stay for the full day and get the sense of pride that the rest of the team clearly had watching a Drupal core committer accept their contribution.

Personally, core mentoring is incredibly rewarding, and I always get more out of it than I expect. Along the way, I learned some additional details about DrupalPod as well as the pitfalls (and solutions) when working with old issue forks.

If you're an experienced Drupal developer, I encourage you to make a commitment to dedicate your time to helping to grow the next wave of contributors. If you're interested, say hello in the #mentoring-team channel of the Drupal Slack workspace.

Photos courtesy of Andy Blum