Module Architecture Development in D8: Drupal Composer, Custom Entities, and complex relationships via Plugins

Speaker: jcandan
Audience: Intermediate
Track: Development & Performance

We'll go over architecture options for web applications built in Drupal 8, including modern PHP dependency management with Composer, Content Entities vs Nodes and when each is appropriate. We'll look at some excellent combinations of contrib modules and glue code to create flexible architectures.

Who is this for?

Though extensive experience with these is not necessary, you are at least familiar with:

  • D7/D8 Module Development
  • Composer

You are interested in grasping:

  • Composer for Drupal 8
  • Custom Entites
  • Complex relational architectures


  • Composer for custom modules
  • Custom fields via Plugins
  • Drupal Console badassery

Hope to see you at my session!

Introduction to Object Oriented Programming

Speaker: daggerhart
Audience: Intermediate
Track: Development & Performance

Object oriented programming (OOP) is a system design philosophy that aims to treat aspects of the system as "things" that consist of attributes and behaviors. This concept may be easier to understand if you consider how objects in the real world work, such as a dog. A dog has attributes such as breed, hair color, and weight, while it also has behaviors such as barking, running, and sleeping.

This session will provide understanding for the fundamental object oriented programming concepts, as they apply to PHP, while attempting to explain the value of the art. We will look at and attempt to demystify the following concepts:

  • Class - A template for objects that define the data (attributes) and/or operations (behaviors) the objects may use.
  • Object - A single instance of class.
  • Abstraction - The process of picking out common features of a system in order to provide greater reusability of those features.
  • Encapsulation - Wrapping related elements (data and/or procedures) of a system together to create a new abstraction,
  • Inheritance - A feature of OOP that allows the creation of different sub-types of a class. In other words, the ability for a class to inherit the features of another class.
  • Interfaces - The ability to provide strict specifications for a class to create predictability and thus reiability within a system.

Bonus: Programming to Interaces - A technique for creating systems that are both easily extendable and reliable in their extension.

Intended for developers who have no, or limited, experience with Drupal 8 or OOP.

Project Management for the Beginner

Audience: All Attendees
Track: Project Management and Consulting

An introduction to Project Management for both career and personal growth.

Join or Die: Converting an Organization to Drupal

Speaker: dozer55, cbfannin
Audience: All Attendees
Track: Project Management and Consulting

Converting an organization to using an open-source platform can be a challenging task. We'll take a look at how we converted Chattanooga State to use Drupal for the majority of their web presence, and show some examples of the sites and portals that are being used on campus. Some examples we will discuss include:

  • Chattanooga State Website: Migrated to Drupal from a proprietary CMS
  • TigerWeb: Our student portal that we replaced with Drupal
  • TCAT Time Tracking System: A system for tracking clock hours for technical programs
  • Others as time permits

Advanced Google Advertising + Q&A

Speaker: jengadigital
Audience: All Attendees
Track: Sessions Off the "Drupal Island"

Learn how you can apply your Drupal expertise and exposure to structured data in advanced Search Engine advertising. This session is designed to help you understand how advertising works at an enterprise level and help guide you through the optimization process.

Advanced advertising requires an understanding/familiarity of basic software development tactics to help automate your ad campaign optimizations. My goal is to give you a glimpse into this world, and hopefully, help you understand why those pesky marketers are making those strange requests.


Accessibility for JavaScript Powered UI

Speaker: iacweb
Audience: Intermediate
Track: Design, Theming, & Front-end Development

Site designers love tab panels, accordion sets, slide shows, and hover-drop-down menu bars: anything to squeeze more content into less space.  Unfortunately, many out-of-the box tools to generate these components can be severely lacking in accessibility compliance.  At some point, you may wish to just craft your own accessibility compliant components, but how do you do that?

Using WebAIM's tutorials as a reference, we'll dive into how to build the JavaScript needed to power these important UI tools while keeping the user experience fully accessible.  Lots of code samples with be provided with clear explanation of how they work.  The examples are based on using Drupal with the Paragraphs module as your website base, but the concepts can be applied to many other kinds of content systems.

* The basics of ARIA and specifically how it applies to JavaScript powered UI controls.
* How to apply and manipulate needed ARIA properties as users interact with such controls.
* Tips and tricks for working around some common browser shortcomings to achieve accessible JavaScript powered UI that still looks good, too.
* Specific tips for providing a slideshow (carousel) experience that balances designer desires with accessibility realities

Presenation Slides are available at

All Day Drupal 8 Beginners Training.

Speaker: DougVann
Audience: Beginner
Track: Beginner Track

An all day introuction to Drupal 8 taught by Doug Vann.

Using Patheon as a development environment, all you will need is a laptop. 

How-to: Using "drupal-project" with Composer to Craft your Perfect Start-State

Speaker: hawkeye
Audience: Advanced
Track: Development & Performance

Watch the video recording of this same talk from DrupalCamp Florida! And/or peruse the slides.


The drupal-project repository is quickly becoming the defacto starter for all Drupal 8 projects. In this session, I'll show you:

  • How to quickly spin up a new site with Composer and drupal-project
  • How to take drupal-project and customize it to suit your particular needs
  • How to leverage post-install tasks to keep yourself DRY

The goals of the learnings from this session are to:

  • Save time
  • Follow best practices
  • Make your development experience more enjoyable
  • Look cool in the process

This session is for you if:

  • You've been wanting to try out Composer
  • You already use Composer but want to learn more about the best practices
  • You frequently spin up new sites, whether for module development, agency work, or for funzies
  • You're thinking about using one of the popular distributions (e.g., Lightning)
  • You are a Composer expert, so you can heckle me and point out mistakes

Drupal vs. Static Site Generators

Speaker: JimSmith
Audience: All Attendees
Track: Sessions Off the "Drupal Island"

Drupal is not the best solution for every website.

There. I said it.

Sometimes a better solution is one that is faster to deploy, easier to maintain and has fewer security risks. Sometimes that solution is a static site.

Have I just committed a sacrilege? Am I suggesting we all ditch our careers as Drupal developers?

Fear not. Drupal is often still your best option. But it's true, static site generators can sometimes do the job better and faster.

This session will explore several ways to use static site generators to create and deploy sites quickly without the heavy lifting of databases, without the headaches of security patches, and without long, steep learning curves.

We'll talkl about several types of static generators, but we'll also make sure to discuss when and why Drupal is still a better choice. 

jsonmonger: Consume decoupled Drupal with ease

Speaker: agarzola
Audience: Intermediate
Track: Design, Theming, & Front-end Development

The json:api specification provides a powerful format to express complex data structures and relationships between records in a predictable manner. However, consuming json:api can be daunting: its data structure is deep, navigating related records can be expensive, and manipulating data on the server requires building verbose request bodies.

What if you could treat your json:api as any old data store? With jsonmonger, you can! Forget building requests, parsing responses, and writing lengthy lookups into deeply-nested object properties. jsonmonger exposes an abstraction layer between your JavaScript application and a json:api-compliant server, allowing you to truly decouple from your back-end and get full control over your application’s data models. We’ll learn how jsonmonger makes it a breeze to consume Decoupled Drupal (with JSON API module) from your JavaScript application.

Are you interested in a tool that solves decoupled problems before they start? Buckle up and get ready to simplify JSON API interactions with jsonmonger!

Drupal to Drupal Migrations, Deconstructed

Speaker: lhridley
Audience: Intermediate
Track: Development & Performance

So you've lovingly maintained and curated your Drupal site, carefully crafting content types for different types of content, setting up taxonomy vocabularies, updating content, enrolling users, building views...all the drupally things you do when you have a content driven web application.  But now, you want to update your site to the latest version of Drupal.

But you have all this content!  And tons of images!  And twelve different content types...and 10,000 users with 6 different roles...and...and...

Stop!  Breathe...

Drupal 8 has some built in components that significantly reduce the effort it takes to migrate vocabularies, content types, roles, users, taxonomy terms, and yes...content (including files and images).

In this session we'll take a look at the different components of Drupal 8 that take care of some of the heavy lifting when it comes to moving your carefully, lovingly curated Drupal site to Drupal 8.  We'll discuss some of the "gotchas" to be aware of, and some tips on making your move to Drupal 8 a reality.

How Not to be a Git

Speaker: vendion
Audience: Intermediate
Track: Sessions Off the "Drupal Island"

Back by popular demand

How Not to be a Git

So you have some or most of the basics of working with Git down, but what about some of the more advanced features? In this session we will go over some of the more advanced tools that Git has to offer, as well as talk about some of the more lower-level tools that Git provides and some workflow ideas.

How to create website using Drupal 8 Headless.

Speaker: abhay.pai
Audience: Beginner
Track: Beginner Track

Hi am Abhay Pai, working for Srijan Technologies, currently working from Makati, Philipines.


Simple Good looking website, where we will manage the content in the website from Drupal.

Things to know:

HTML5, SASS, Javascript, nodejs, modular approach, Rest API, Drupal 8.


We will use Drupal 8 as cms, and use the core module of rest to give the output in json format. We will catch that json formatted data using Javascript in the frontend. and just display the data using html.


  1. You can share the publishing article wherever and whenever you want.
  2. User Experience is easily handled/controlled.
  3. You can update your frontend platform keeping the data, so that you wont recreate all content.


Lightning Talks

Speaker: leew
Audience: All Attendees
Track: Non-Session

Lightning Talks⚡ are short (5min-ish) impromptu sessions on anything you want. Do you have something you’re proud of? Do you have a new technique that’s saving you time? Have you learned about something cool? Get up and share!