DrupalCon Nashville – A summary that is late, but better than never

DrupalCon is hands down the best Drupal summit/camp/conference that exists. The other formats may be more intimate, it is much easier to have quiet time for those of us who identify as introverts, but the energy and enthusiasm at DrupalCon is always infectious.

My last DrupalCon was 2015 in LosAngeles, and while Nashville lacked Palm Trees the weather was great and the music was everywhere. It was wonderful to connect in real life with those I generally only talk to via the Drupal issue queue, IRC, or Slack. I certainly walked away with more than I gave and have been spending the time since DrupalCon putting a lot of the ideas into practice.

I was honored to be a speaker on the accessibility panel at the higher education summit that happens the day before the full conference. We tended to talk about accessibility in general terms and the feedback received was that at a Drupal conference they want specifics on Drupal. Luckily, there were many great sessions on just that topic throughout the week so I hope everyone was able to attend or watch the videos afterwards.

Unfortunately, I was unable to attend the sprints at the end of the week, it is one of my favorite parts. I will be sure to stay while in Seattle next year. I was able to make significant progress on https://www.drupal.org/project/drupal/issues/2770835 though it is still not in core. As core gets bigger, these types of fixes are going to take longer to get approved as lots of modules now can be affected by small changes.

The following are my raw notes from the conference.


Style Guide stuff:


Migrating 10,000 great books to Drupal 8 – Princeton University Press

@dergachev – Alex Dergachev

  • 10,000 books and 18,000 static pages to migrate.
  • They chose Drupal 8 for the community, empowerment of content editors, integrated & extensible platform for search, e-commerce, SEO, APIs, and the ability to customize the information architecture.
  • To handle the migration from SQL, they had a PowerShell script that ran nightly to run sql queries that generated CSV files. Those CSV files then were imported into D8. That is a pretty slick way to decouple from SQL.
  • Used context, context_active_trail, entity_reference_revisions modules
  • Checkout blackfire.io as an xhprof alternative and it is focused on performance
  • Also, this github project, https://github.com/dergachev/sitediff
  • evolvingweb.ca/training for D8 – 5 day in person

Pre-Note & DriesNote

  • The total eclipse website is built with Drupal
  • 40% of speakers at DrupalCon are from under-represented populations
  • Drupal 8 migrate, api-first, media, and site management is in 8.5.
  • New Balance website mobile app is powered by Drupal
  • React VR headless drupal application for tours – freaking cool, nothing custom done to Drupal, just uses core
  • It takes 41 clicks and many many minutes (30+) to get Drupal installed compared to other PHP frameworks. Drupal is working on getting this fixed.
  • The UI for content creators will be refreshed and over time improved patterns will emerge
  • We should not compare ourselves to Drupal 6 or 7 but competitors like squarespace
  • Drag and drop media management is on the way. Really need more contributors to the media initiative to make this happen faster.
  • Contextual configuration management is something that is going to be built into core soon
  • https://drupal.org/promotedrupal
  • Use the “simplify drupal” tag in the issue queue for efforts related to all of the above
  • Drupal Values
    • Prioritize Impact
    • Better together
    • Strive for excellence
    • Enjoy what you do
    • Treat others with dignity & respect
  • Find more in-depth discussion at https://drupal.org/principles

Building Banging Websites with Bricks, Paragraphs, & Modifiers


  • https://www.drupal.org/project/bricks
    • Combines layouts and entities into one page
    • Works in tandem with paragraphs, you can expose your paragraphs by putting them in a layout bundle
    • Bricks have different view modes
    • Easy drag and drop
    • Now supports dynamic entity references module
  • https://www.drupal.org/project/modifiers
    • Inspired by the M in BEM
    • Looks really cool.
    • Extends bricks.
    • No more making classy paragraph derivatives
    • Can even hook into it or plugin
    • They have the drupal module modifiers_pack as a great starting point
    • Really saves time as all is reusable. Spend more time with customer. Less time building same thing over and over.
  • Paragraphs are scoped to content while blocks are global
  • Also, checkout the “look” module, https://www.drupal.org/project/look which allows sets of modifiers to be applied
  • The bricks and modifiers are all pretty new but it seems like a super recipe

Nurturing a Productive Lifestyle

https://events.drupal.org/nashville2018/sessions/nurturing-productive-lifestyle Check this session out… I caught the tail end and it seemed good



  • Use Google Charts or High Charts

Journey to the Drupal Heart – Symfony 3  basics and a bit beyond


  • Symfony is a set of reusable PHP components and Drupal uses a set of these. It is really a MVC framework.
  • Symfony has its own server, we don’t use that in Drupal but handy for other stuff
  • It has a built in debugger that appears at the bottom of the web page that loads
  • Every page needs a route, controller, content, and
  • Each class is namespaced to be unique to avoid conflicts. It follows the folder structure\name
  • You can use @annotations or yml files for route specification
  • You do dynamic routes with parameters
  • Parameters and variables should match
  • $php bin/console debug router spits out all routes for you to see and you can add more specifics to router to narrow down the results
  • Services are useful objects – provide reusable functionality
    • To access services you need to get them through Container
    • Container object is provided by Symfony Controller
    • $php bin/console debug::container to see a list of them all that you can use before adding your own
  • Templates are the V in MVC
    • They use TWIG
    • {{ }} means say something
    • {% %} means do something

Maintain and improve team health and productivity


  • Kind of a neat thinking paradigm, be like water, respond to a request with the appropriate response of ripples to the level of the request
  • Everything is a lesson learned
  • A problem when managing multiple projects is that you are not able to give each team your undivided attention
  • Not everything is priority 1, you have to set boundaries. Pause and reflect and help the client figure out what is most important for your end-user.
  • Another reminder to time box effectively and to stick to your calendar
  • Get a 3rd person to weigh in on an issue if the issue continues to recur
  • Create a capacity calendar for ourselves

Maintaining Design Consistency Across Every Channel


  • Lightning, MailChimp, and Carbon style guides were dissected and highlighted
  • Sketch and Zeppelin are two products that can help with developing the guides

Integration of Drupal Coding standards with Git hooks


Think Your Website is GDPR Compliant? Think Again!


  • The spirit of the law is to put the data power back in the hands of the people
  • WWU is certainly at risk for non-compliance
  • The GDPR is not just an IT discussion.
  • There are several roles that need to be doled out
    • Supervisory authority (This seems to be only an EU requirement)
    • Controller
    • Processor
      • All 3rd party services that touch the data need to be GDPR compliant ~ that will take work with purchasing to confirm
    • Data Protection Officer
      • Should not someone with conflicts of interest
  • Rights
  • One a breach occurs you have 72 hours to notify
    • There are some ways to avoid that but you have to be transparent
  • Users have a right to have access to all their data, how it was obtained, and how it is used
  • Right to erasure (to be forgotten)
  • Data portability – they have the right to move their data to other systems
  • Privacy by design
    • We need to reach out to everyone on campus that collects data, EE, advancement/alumni, admissions, departments, etc…
    • Only collect exactly what you need
  • Privacy Experience (PX)
    • Always be transparent
    • Use easy to understand language / no “lawyer speak”
    • Users opt-in to how the data is used, not opt-out
  • No longer should developers and engineers have access to production data. We should anonymize it.
  • Privacy by design
    • Limit attack surface (remove modules from prod when not in use)
    • Keep solutions simple
    • Encrypt PII
    • Know your regulatory requirements FERPA, HIPAA, GDPR, PCI, CAN SPAM
    • Write policies and procedures and then follow them
    • Automate auditing and compliance processes
    • Log events and transactions
      • Keep the logs clean, get rid of PHP notice and warnings in WatchDog by fixing the issue
  • One encryption key per user – a concept to look at  https://info.townsendsecurity.com/gdpr-right-erasure-encryption-key-management
  • Marketing Advantages of Privacy
    • Make trust your competitive advantage
    • 94% of customers are more likely to be loyal to transparent brands
    • Trust enablers
      • Deliver value
      • Embrace education marketing
      • High Quality
      • Empower the individual
  • Consent for one campaign doesn’t mean consent for all anymore
  • Be able to prove you have consent – even on past opt-ins
  • Talk with marketing automation and CRM platforms to see if they offer tools
  • Creating an action plan
    • PX takes a team, we all need to come together on creating the positive PX experience
  • Data collection
    • What are we collecting and why
    • Active vs. Passive
    • Storage and Encryption
    • Integration Points
  • Messaging and Consent
    • Opt-in language
    • Privacy policy and legal documents
      • In plain language, not legal language
    • Internal messaging around value of a great PX GDPR experience and marketing impact
  • User Control
    • Data portability
    • Revoking consent
    • Data erasure
  • Next steps
    • Legal should assess risk
    • Create/Update security and privacy policies
    • Technology teams prioritize remediations
    • Implement remediations
    • Document remediations and next steps
    • Rinse and repeat

A New Help System for Drupal


D.O issues to take a look at:

  • 102254
  • 2516902
  • 2701289
  • 2587469

The goal is to provide inline help for the entire system, not just modules. You want to keep the structure that exists, but make it more flexible and easier to update and find for the end-user.

Customizable workflow help should be able to be created.

HigherEd BOF

Hard to take notes, standing room only

  • Automated site-owner emails that if not responded too, then they are shut down. Would be a great way to handle all of the dead WP sites.
    • Can CampusPress help with that?
  • Reiteration that compliance is a good tool for shepherding
    • Policies at the top are helpful to reference
  • This could be a good tool for us, https://www.drupal.org/project/profile_module_manager. It looks like it would replace “profiles,” not really sure about D8 support.

A smarter Way to Test Accessibility – a comparison of top tools (Lighthouse, Tenon.io and WAVE API)


Gaps in automated testing really do exist. Manual testing is needed, examples:

  • Image has alt text, but does it make sense in the context
  • Identify form field labels, but is the label clear and easy to understand
  • Has headings, but is the hierarchy correct
  • A menu is proper HTML, but does it work with keyboards opening a dropdown?

LightHouse is an open source tool developed by Google and is built upon the open source rule set AXE.

Tenon.io and WAVE have costs associated with them.

All of these have command line tools.

LightHouse – https://github.com/GoogleChrome/lighthouse

  • You can output this as json and then parse as a gulp task to have a nice report
  • Then have the gulp task run on save or git-commit (very neat)
  • You can use this service offline! That means you can run these tests against a local dev URL

Checkout git guppy that lets you run gulp commands on pre-commit hooks.


You can extend that concept to Jenkins to find ways to automate some of this checking on prod or prior to merges. Maybe some of these could be done as a suite against a set of archetypal pages.

More predictions on machine learning improving automatic captions and alt text on images.

From Feedback to Finish: How to Leverage User Focus Groups for Website Design


Chicago Park District – Serving all of Chicago

  • Migrated from a heavily customized older website/system
  • Had lots of data to work from with analytics, user surveys, and benchmark/comparison analysis

A focus group series was created to identify why people were accessing or ignoring the data, the need for external validation. The end goal is to find out how people really use the website.

One specific approach – http://cutgroupbook.org/

Where to start

  • Develop questions
  • Scheduling
    • You need to be available, have an appropriate physical space, and some equipment.
    • Do it in a timely fashion so that the results matter to the project
  • Get volunteers to proctor
    • People that manage the content
    • People that develop the systems
  • Review how the test will run
    • Outline how it will all work
    • Run through the test with each other (the proctors)
    • Procedure for people coming in through the post-test proctor questionnaire
      • Get feedback from testers and proctors
  • It ends up being really hard to not “help” testers, but you need to let it play out
  • Test on a variety of devices, not every tester needs to use all devices, have some use a phone, some use a desktop, others use a tablet, etc…


  • Cleaner homepage
  • A clear focus on mobile usage
  • Streamlined searching
  • Highlight mapping options

Take a look at the linked slides as there is a good slide at the end titled Practical Magic


One click upgrade to Drupal 8 – why, when and how


  • Quick overview of default out of the box migrate using the upgrade button
    • Field Collections are not yet support
  • Custom updates with Drush
    • Drupal upgrade, migrate tools, migrate plus, and migrate manifest
    • Supports roll back migrations and exposes it to the front-end
    • Also allows you to stop and reset messed up migrations

Feeds, https://www.drupal.org/project/feeds, may have a stable D8 release this week

Provision 4 – Aegir BOF


Try converting drush commands into pro commands

It is ready for testing

It is based on Robo, https://robo.li and Symfony Console

Follow this issue to see when it will drop, https://www.drupal.org/project/provision/issues/2912579. Supposedly soon.

Lots of talk of moving Aegir to host the websites in a docker container, but one container for all sites, unless you want a stack per site.

Drupal Console has a set of docker commands as well

Drush.inc files may not yet be supported. We want to test that for sure if this actually goes forward.

Webcomponents, Polymer and HAX: decoupling authoring for Drupal and beyond


Headless Authoring Experience (HAX)

  • Perils of ignoring content authors
    • Panic Mode calls coming in from authors
    • Content gets stale as no one wants to make updates because it is hard/confusing
  • Lots of attempts at making it easier over the years
    • Tokens
    • Short codes
    • Snippet templates
    • And more, paragraphs, bricks, Divi in WP
  • Try it at https://haxtheweb.org
    • Full on de-coupled authoring for not only Drupal but for everything
    • Everything is a new web component
    • It looks really awesome
    • One edit tool to rule across all platforms
    • That is really cool.
  • WebComponents power it all
  • Already can do tables via CSV import, tables via CSV import
  • An a11y compatible video player
  • Playing on working element queries
  • 147 components available now at https://www.webcomponents.org/author/LRNWebComponents
  • HAX is pluggable so any of the 15,000+ web components that exist can be brought into HAX
  • HAX objects follow JSON Schema – http://json-schema.org/
  • Allows us to turn off tons of wysiwyg and media modules 🙂
  • Polymer which is kind of like jQuery for web components and it can generate help documentation per component
  • A question was raised about the migration to Polymer 3?

Once Upon A Time: Telling Stories For Better Engagement


  • We can spot stories
  • Story structure – the Hero’s Journey – the protagonist
  • Contrasted Star Wars versus Mean Girls and pointed out they are pretty much the same story
  • Story elements
    • Ordinary world
    • Call to adventure or inciting incident
    • Refusal of the call
    • Meeting the mentor
    • Cross the threshold – start the journey into the special world
    • Tests, allies, enemies
    • Ordeal
    • Reward
    • The road back – beginning to move back to the ordinary world
    • The resurrection
    • Return with the elixir – the knowledge, the object, …
  • We remember story!
  • Effective advertisements that stick in your mind generally leverage story
  • Boring > Cheesy but other options do exist
  • The long game is important, build trust, don’t push
  • Add value with each touch, don’t just push reminders with no extra value added
    • What would that look like in higher-ed
  • You are not the hero in the story, the customer is the hero and you play the mentor role
  • No one is average, don’t design for the average. Specificity is what draws us to characters and engage with stories. UX persona’s can help. He shared a picture of the coke advertising “share a coke with NAME”
  • Celebrate the win – their success is your success.
  • Purchase is not the finish line. Once students are accepted and attending, keep mentoring, keep celebrating their successes
  • http://johnrhea.com/once

Entities 301 – Entities Elsewhere

  • Watch this

Leave a Reply

Your email address will not be published. Required fields are marked *