Given there are so many sites still running on Drupal 7 and the upgrade process is more rebuild than upgrade, with Drupal 7's end-of-life past due, it's hard to know the path forward.
What if your site is already decoupled, and you are beginning to wonder if it was the right choice? The question becomes, does the higher effort required to maintain and iterate on a decoupled site still match your product or business goals?
Running build commands in parallel with Robo is a great way to reduce build times.
Configuring a Drupal library's version may seem mysterious, but it is important for caching.
All the new features and enhancements coming to Safari and Web Inspector this year that web developers should know about.
Chris shares why we dropped Drupal for the newest version of our website.
Hundreds of menu items can bring cache clears to a grinding halt if not managed correctly.
Struggling to keep your project’s environments using the same version of Node.js? Learn how to declare your Node.js version in a single file and reference it everywhere.
The missing illustrated manual to the Drupal configuration system and the processes around it.
Continuous website performance monitoring is critical to optimize speed and user experience. Use this approach to get started with free tools.
It’s not enough to test website performance. You need to test the right way, on an ongoing basis. Learn how.
Having a clear process is the key to avoiding website downtime and buggy application launches. Read this guide to website and app deployment best practices.
Your agency can leverage repeatability to make website development efficient and profitable while allowing time for innovative custom features. Learn how.
This article examines the advantages and disadvantages of using Docker and Lando for local development on MacOS machines in comparison to a native LAMP stack set-up. It raises questions, looks into common development scenarios and needs, and provides a personal recommendation for a sustainable and speedy solution.
Do you love the developer experience of NextJS? Or want to enjoy the benefits of a static site generator but prefer Vue over React? NuxtJS might be the framework for you!
We have been using Robo as our task runner of choice on PHP projects for some time now. Over time our set of Robo commands has grown, and often they are quite similar across different projects causing us to duplicate code and then keep them in sync when changes are made to our commands.
In this blog post you will learn the basics of live templates in PHPStorm and keyboard shortcuts to avoid repetitive typing while coding.
A quick win for your Friday afternoon. Dave leveraged a couple of open source projects to add a mute status to his menu bar.
We’re not the first to take one of the most popular React frameworks for a spin around the block, but we are definitely glad we did. GatsbyJS comes packed with easy to use features and plugins.
Sharing content across multiple sites with a publishing platform offers tremendous opportunities, but it isn’t always easy. Understanding the editorial and technical hurdles is key to creating a solution that works well and addresses the business needs.
Comparing Drupal template overrides with their counterparts in the base theme doesn’t have to be hard.
Managing Drupal configuration and keeping it in sync requires attention to detail and process. Automation can add to the problem, but also solve it.
Learn how Ansible can be used to standardize and automated Drupal deployments.
With security breaches proliferating in recent years, it’s more important than ever to protect your users and applications by implementing Two-Factor Authentication (2FA) which was developed to protect accounts and devices by adding security verification to the login process.
Composer 2 RC2 is now in the wild and the official release of 2.0 is quickly approaching. This is exciting for anyone who has complained about Composer’s performance in the past as Composer 2 brings significant performance improvements.
Our guide to improving website performance when using third-party assets.
Web security depends on following boring ole’ best practices, like keeping your software up-to-date. This makes it fairly dull, unlike Hollywood portrayals of IT security. However, if disaster strikes, you need a plan in place to fix things, fast.
Many of the common website speed problems in Drupal 7 are now a distant memory with Drupal 8 and Drupal 9. Features like Drupal’s built-in Dynamic Page Cache help bring great performance benefits to the two most recent versions. This article will highlight other tactics to assist with getting the best performance out of your Drupal site.
Some advice for engineers venturing into technical project management.
Internet Explorer still covers a statistically significant percentage of the current market share (as of the publication of this post) and front-end engineers would do well to recognize its caveats in order to solve problems quickly and deliver a great product to stakeholders.
Summary: Test-driven development (TDD) keeps you focused, encourages critical thinking, and improves code confidence. Here are some basic principles that have helped me write effective tests and which have proven useful when introducing other developers to the practice.
Properly linking to pages with dynamic routes can be tricky. Here's how to do it right.
Adam uncovers methods of firing code on every page in Drupal 8, the right way.
Dependency Injection in Drupal 8 Plugins can trip you up if you focus on the Dependency Injection part and forget about the Plugin part. This blog post shows key differences to keep in mind when you're working with D8 Plugins.
We're taking a deep dive into the Google Places Prediction and Autocomplete API to resolve our bug found in parts 1 and 2.
Discover the hidden dynamic allowed values and dynamic default values functionality of list fields.
In part one we learned how implement a Google Places Autocomplete widget on an address form. In doing so we discovered a critical bug in the widget that degrades the user experience. Let's take a closer look and resolve this bug.
This is the fifth post in a series about coding standards. In this post we’ll talk about how to use translation functions in both Drupal 7 and 8. This is so essential that it deserves its own post!
Tap into the power of Views with a custom sort plugin in Drupal 8. Code samples included.
A great user story or ticket can mean all the difference in the world. Here's our guide on what makes a great ticket.
Some real world examples of generating URLs from within your Twig templates in Drupal 8.