Dries Buytaert: A book for decoupled Drupal practitioners

The cover of the Decoupled Drupal book

Drupal has evolved significantly over the course of its long history. When I first built the Drupal project eighteen years ago, it was a message board for my friends that I worked on in my spare time. Today, Drupal runs two percent of all websites on the internet with the support of an open-source community that includes hundreds of thousands of people from all over the world.

Today, Drupal is going through another transition as its capabilities and applicability continue to expand beyond traditional websites. Drupal now powers digital signage on university campuses, in-flight entertainment systems on commercial flights, interactive kiosks on cruise liners, and even pushes live updates to the countdown clocks in the New York subway system. It doesn’t stop there. More and more, digital experiences are starting to encompass virtual reality, augmented reality, chatbots, voice-driven interfaces and Internet of Things applications. All of this is great for Drupal, as it expands its market opportunity and long-term relevance.

Several years ago, I began to emphasize the importance of an API-first approach for Drupal as part of the then-young phenomenon of decoupled Drupal. Now, Drupal developers can count on JSON API, GraphQL and CouchDB, in addition to a range of surrounding tools for developing the decoupled applications described above. These decoupled Drupal advancements represent a pivotal point in Drupal’s history.

Decoupled Drupal sites
A few examples of organizations that use decoupled Drupal.

Speaking of important milestones in Drupal’s history, I remember the first Drupal book ever published in 2005. At the time, good information on Drupal was hard to find. The first Drupal book helped make the project more accessible to new developers and provided both credibility and reach in the market. Similarly today, decoupled Drupal is still relatively new, and up-to-date literature on the topic can be hard to find. In fact, many people don’t even know that Drupal supports decoupled architectures. This is why I’m so excited about the upcoming publication of a new book entitled Decoupled Drupal in Practice, written by Preston So. It will give decoupled Drupal more reach and credibility.

When Preston asked me to write the foreword for the book, I jumped at the chance because I believe his book will be an important next step in the advancement of decoupled Drupal. I’ve also been working with Preston So for a long time. Preston is currently Director of Research and Innovation at Acquia and a globally respected expert on decoupled Drupal. Preston has been involved in the Drupal community since 2007, and I first worked with him directly in 2012 on the Spark initiative to improve Drupal’s editorial user experience. Preston has been researching, writing and speaking on the topic of decoupled Drupal since 2015, and had a big impact on my thinking on decoupled Drupal, on Drupal’s adoption of React, and on decoupled Drupal architectures in the Drupal community overall.

To show the value that this book offers, you can read exclusive excerpts of three chapters from Decoupled Drupal in Practice on the Acquia blog and at the Acquia Developer Center. It is available for preorder today on Amazon, and I encourage my readers to pick up a copy!

Congratulations on your book, Preston!

Mobomo: The End of PHP 5.6 is Coming!

PHP 5.6 will officially be no longer supported through security fixes on December 31, 2018. This software has not been actively developed for a number of years, but people have been slow to jump on the bandwagon. Beginning in the new year, no bug fixes will be released for this version of PHP. This opens the door for a dramatic increase in security risks if you are not beginning the new year on a version of PHP 7. PHP 7 was released back in December 2015 and PHP 7.2 is the latest version that you can update to. PHP did skip over 6; so don’t even try searching for it.

Drupal 8.6 is the final Drupal version that will support PHP 5.6. Many other CMS’s will be dropping their support for PHP 5.6 in their latest versions as well. Simply because it is supported in that version does not mean that you will be safe from the security bugs; you will still need to upgrade your PHP version before December 31, 2018. In addition to the security risks, you have already been missing out on many improvements that have been made to PHP.

What Should You Do About This?

You are probably thinking “Upgrade, I get it.” It may actually be more complicated than that and you will need to refactor. 90-95% of your code should be fine. The version your CMS is may affect the complexity of your conversion. Most major CMS’s will handle PHP 7 right out of the box in their most recent versions.

By upgrading to a version of PHP 7, you will see a variety of performance improvements; the most dramatic being speed. The engine behind PHP, Zend Technologies, ran performance tests on a variety of PHP applications to compare the performance of PHP 7 vs PHP 5.6. These tests compared requests per second across the two versions. This relates to the speed at which code is executed, and how fast queries to the database and server are returned. These tests showed that PHP 7 runs twice as fast and you will see additional improvements in memory consumption.

How Can Mobomo Help?

Mobomo’s team is highly experienced, not only in assisting with your conversion, but with the review of your code to ensure your environment is PHP 7 ready.  Our team of experts will review your code and uncover the exact amount of code that needs to be converted. There are a good number of factors that could come into play and affect your timeline. The more customizations and smaller plugins that your site contains, the more complex your code review and your eventual conversion could be. Overall, depending on the complexity of the code, your timeline could vary but this would take a maximum of 3 weeks.

Important Things to Know:

  1. How many contributed modules does your site contain?
  2. How many custom modules does your site contain?
  3. What does your environment look like?

The post The End of PHP 5.6 is Coming! appeared first on .

Amazee Labs: Upgrading vs. Upcycling – How to stay ahead of the curve

Upgrading vs. Upcycling – How to stay ahead of the curve

A full rebuild of a website can be a time consuming and expensive process. Upcycling is an incremental approach to relaunching existing websites. This blog will explain more about what upcycling is and why it might be the right choice for your website

Josef Dabernig
Tue, 10/23/2018 – 19:18

Upgrading vs Upcycling

Why upcycle?

Most websites will be rebuilt every three to six years to keep up with online trends, because of technical debt, or simply to refresh their appearance. At Amazee Labs, we have helped many clients transition from their legacy web systems onto Drupal 8 but not everyone is ready to do the move all at once. This is where upcycling can come into play.

As upcycling is intended to be an incremental approach it might not be suitable for every use case or every client. Upcycling de-prioritizes the “one-big-bang-launch-wow-effect” and allows us to partner with our clients to meet one primary goal: reduce time to market for big website improvements and maximising the value of time spent.

When to upcycle?

If you have a well-established web system that has been operational for several years, and you aren’t ready to spend the time and money to do a full rebuild, upcycling might be the answer.

Upcycling Process

 

As you can see, upcycling can be performed at any stage of an existing web project. Depending on the size of the upcycling project, we might transition from the maintenance and extension mode back to implementation. Alternatively you might do a smaller upcycling project within the maintenance & extension cycle. Large upcycling projects will often mean moving all the way back into a conceptual consulting & discovery mode before we start implementing new features or functionality.

What to upcycle?

We’ve designed an upcycling questionnaire to guide the conversation with the customer with regards to different aspects of the website. Although these are common areas for upcycling, we use this questionnaire as a starting point to discuss what will be the best fit for each project.  

Upcycling Areas

For each of these upcycling areas, we have a set of questions to validate the potential and& need for upcycling. For example, when we talk about designwith regards to design we would ask if the look and feel of the website is perceived as outdated or if there are any inconsistencies within the current design implementation.

If we identify an area that could benefit from upcycling a potential for upcycling in such area is identified, we will provide a set of recommended steps for improvement. In this case that might be a design refresh, establishing a design system, or rebuilding the frontend.

We also provide upcycling case studies to show our clients what is possible with upcycling, and help build on their ideas to improve their website without starting from scratch,

How to upcycle?

Upcycling demands that we are in a position to split things up.

An example is Sonova.com. The main website has been running on Drupal 7 since 2014. Last year, we started relaunching individual country pages using Drupal 8. These new pages allow the content managers on the client’s side to benefit from the better editorial features of Drupal 8 early on without needing to wait for a relaunch of the entire website. Gradually we keep relaunching country page by country page on Drupal 8.

Upcycling Sonova Drupal 7

Sonova Country Page Version in Drupal 7

Upcycling Sonova Drupal 8

Sonova Country Page Version in Drupal 8

The next step in upcycling this site will be a relaunch of the main website on Drupal 8. When we are ready for that step we can build upon the incremental steps we started for the country pages.

As well as the additional editorial features, we also worked with the client to choose a different Drupal theme. . This means sites running on Drupal 7 feature a different design than the sites running on Drupal 8. So instead of merely optimizing for consistency across all country pages, together with the client, we chose to allow to innovate and bring newer design versions to the local markets without waiting for the relaunch of the whole site.

How does upcycling relate to decoupling?

If your site has some complex backend logic that you don’t want to rebuild but you are eager to relaunch the frontend, upcycling could be the solution. Usually, we would relaunch the frontend within Drupal’s theme layer. But in certain cases, it makes sense to relaunch the frontend as a decoupled site and then integrate the existing backend. We recently did this for a customer that wanted to get started with Drupal 8 but had some complex Drupal 7 Backend logic that needed to be maintained.

On the other hand, if the backend really needs an overhaul and you want to keep the existing frontend without rebuilding it, upcycling could work for that too, after decoupling the backend.

Decoupling your architecture will enable you to upcycle individual parts and bring value to the end user faster but it also comes at a price of added complexity. In the end, it’s important to compare the advantages and disadvantages

Pros of upcycling Cons of upcycling

Get the most out of your existing website infrastructure

Benefit from user experience, design or frontend performance improvements without the need to wait for a big relaunch

See your investments as quickly as possible

Potentially added complexity when maintaining two systems at once.

Potentially inconsistencies in the appearance if sections are upgraded separately.

Partly you need to invest into a legacy platform rather than spending everything on the new one

More details on upcycling can be found in this presentation.

What’s your experience & challenges when it comes to upcycling? Do you have an existing project that you would like to improve? Let us know in the comments or reach out via the contact form.

Bay Area Drupal Camp: BADCamp Needs You! 💥💥

BADCamp Needs You! 💥💥

rob.thorne
Tue, 10/23/2018 – 05:36

🎡🎡 Join the Circus!! Volunteer for BADCamp!!  🎪🎪

BADCamp is only 2 days away and we need your help! We have a ton of volunteer spots still open and we need you to help fill them. Volunteer Now

Our biggest needs:

  1. Registration Volunteers
  2. Session Monitors  (sign up for ones you are already in!)
  3. Trainings (sign up for ones you are already in!)
  4. Higher Ed Summit

Earn Drupal Credits for Volunteering:

Even if you tend to float and help where it’s needed, please commit to a few spots so that we can give you Drupal credits.

We are moving the Drupal project forward and putting on the best free Drupal Event in North America. We want to attribute those who help with organizing and planning, trainings, presenting, volunteering, and other thought leaders that help make the camp possible by giving them Drupal credits. After all there is so much more to Drupal than just giving back code!

Volunteer Now!


 

Sponsors

A BIG thanks Platform.sh, Pantheon & DDEV and all our sponsors who have committed early. Without them this magical event wouldn’t be possible. We are also looking for MORE sponsors to help keep BADCamp free and awesome. Interested in sponsoring BADCamp? Contact matt@badcamp.net or anne@badcamp.net.

Would you have been willing to pay for your ticket?  If so, then you can give back to the camp by purchasing an individual sponsorship at the level most comfortable for you. As our thanks, we will be handing out some awesome BADCamp swag as our thanks.

Platform.shPantheonDDev 
 

See You At BADCamp!!

Drupal Commerce: What’s new in the Commerce 2.10 release?

We made many important improvements to Drupal Commerce over the summer, including an improved promotions UI, BOGO offers, and product category conditions in the 2.8 release and full list price support with the 2.9 release. After a long sprint to the finish, we’ve now finally released 2.10, one of our largest releases to date that resolves 39 issues and feature requests.

Product administration improvements

Six years ago we released the first stable version of Commerce Kickstart 2.x and the new (at the time) Inline Entity Form module, which allowed us to manage multiple product variations from a single product page form for the first time. Since then, Inline Entity Form has become a popular Drupal module and a recommended way to manage products in Drupal 7. When we started developing Commerce 2.x for Drupal 8, we ported over Inline Entity Form and the previous approach to managing products, but now we’re ready to take another step forward to advance the usability and performance of product management.

As of the 2.10 release, product variations are managed on their own tab of the product page form. This follows the same UI pattern we established for coupons within the promotions UI.

Product variations shown on their own tab.

Moving variations to their own tab allows us to extend the UI in future releases, specifically to add bulk operations for tasks such as price updates, image replacement, and even the creation of a full set of variations. We foresee other modules adding their own elements to the tab, like the Commerce Pricelist module adding a “Prices” dropbutton item to provide quick access to every price for a variation on multiple price lists.

Having variations on a separate tab would be a bit much for products that always only have a single variation, so we’ve made sure to accommodate that use case in the new version. Each product type’s settings form includes an “Allow each product to have multiple variations.” option that when disabled reverts to the inline editing experience for products of that type.

Inline product editing for single variations.

Query access filtering

If you create a new role for your merchant and only give it the “Book: View products” permission, you’d expect users with that role to be able to book products but no others. In Drupal 7, our solution for this was a generic query access API in Drupal Commerce itself that filtered entity loading queries based on user permissions.

To achieve this same result in Drupal 8, we’ve rebuilt this API and added it to the recent 8.x-1.0-rc1 release of the Entity API module. Commerce is now using it for administrative listings of products, orders, and stores. The API adds a QueryAccessEvent to allow modules to alter the access conditions, making it possible to apply further filtering (e.g. only show the user’s own store). Next we will extend the filtering to Search API to filter customer facing listings.

User-driven API improvements

Over 4,000 websites have launched on Commerce 2.x in the past year, pushing us up over 6,000 in total. As developers launch their projects, we keep our lines of communication open to hear about all the things that annoyed or hindered them, and we work to improve our APIs as a result. Several examples that made it into this release include:

(Note that as a result of the last two, if you have overridden the PaymentInformation or PaymentProcess panes on your site, you will need to update them for the new release.)

We love to hear stories of the great things you’re doing with Drupal Commerce, and we’d also love to improve the core APIs and data model to better support you, too. Feel free to join us and hundreds of other developers in the #commerce channel on Drupal Slack for real-time discussion or post your proposals directly to the issue queue for discussion.

Nextide Blog: Maestro Use Case: Nextide Assists NASA’s Jet Propulsion Laboratory

NASA’s Jet Propulsion Laboratory (JPL) needed to automate an internal document approval process where any given launch of the workflow could:

Have unique and a varying number of approvers.
Abort the approval process immediately upon a single approver rejecting, even if other approvers have approved or have yet to view the document.
Re-route rejected documents to the initiator of the approval process.
Upon all assigned approvers approving the document, route the document to completion, notifying stakeholders in the process.

Using Drupal and Nextide’s Maestro workflow module, JPL was able to prototype a base workflow template to automate their process. However, the missing element was the ability to implement a workflow that allows for on-the-fly selection of approvers, the number of approvers and managing the acceptance and rejection of the document.

Aten Design Group: Decoupled Drupal + Gatsby: Getting Started

Lately, we’ve been using Gatsby with Drupal for projects where we need it decoupled.

Gatsby is a unique project. It’s most often evaluated as a static site generator compared to the likes of Jekyll and Hugo. While Gatsby can generate a static website, it’s more accurately described as a content mesh.

Gatsby uses GraphQL to pull in one or more sources to generate site content. There is a large list of Gatsby source plugins including: Drupal, WordPress, YouTube, Twitter, Hubspot, Shopify and Google Sheets just to name a few. It’s optimized for blazing fast performance. Since it’s built using React, it can be used to build hybrid sites. Along with generating static pages it can also render client-side content. It can pull in dynamic data, add password protected content and take advantage of features typically not found in static generated sites.

Similar to Drupal, Gatsby is open source. It has a devoted and ever-growing community, with an expanding plug-in library which makes building your site even easier.

With this combination we can leverage Drupal as a content authoring platform and utilize Gatsby to render the frontend.

The screencasts below show how quickly you can configure a Drupal 8 website to pair with Gatsby.

With our Drupal 8 website set up, the next step is to configure Gatsby to pull the Drupal site’s content.

In my next blog, I’ll be covering how automate your Drupal to Gatsby content deployment to Netlify.

Download a Transcription of this Screencast

Download Transcription