11:15 AM-12:00 PM

Decoupled Drupal on DDEV with GatsbyJS

As microservices and decoupled architectures continue to mature it becomes increasingly important to be able to work efficiently between local and live environments across the entire stack. What does it take to build a decoupled interface against a Drupal backend and how can we share the work with others?

Best Practices for Securing Your Site

With new threats constantly emerging, how can website owners protect themselves and their business? In this session, we will cover this crucial topic for SEOs and share several demos of these threats, plus how they can be prevented. Find out what Google is seeing in hacking trends, Google’s view on what HTTPS does (and doesn’t do), and how to best address a hacked site. Attendees will learn how to protect against SQL injection attacks, sanitize user generated input, and come away with other practical tips that can immediately be implemented to secure their sites.

Level Up Your Development Experience with Lando

Asking members of your team to spin up local copies of your Drupal application can result in an assorted array of solutions to the same problem: Some may spin up virtual machines while others may cobble together their favorite combination of Docker Containers. Some may struggle with native solutions on their machines while others may be entirely uncertain on where to begin. Adding common services and development tools such as xdebug, mailhog, or Drush may pose additional problems to even the more savvy members of your team.

“But I’m not privileged!” Why diversity and inclusion are everyone’s problem.

As Dries Buytaert discussed in the DrupalCon Seattle keynote, open source has a serious diversity problem - and that includes our own Drupal community. We are people who care about fairness for all, and yet inequality persists. What can we do?

Anonymous Personalization Without Leaving Drupal

Drupal has always been very strong at customizing user experiences for authenticated users, but what about anonymous users? What if you wanted to show a new banner block on your home page for first time visitors? Or gate a resource until users have filled out a contact form? For the most part, anonymous user display is determined by the url path, and per-user customization is dependent on excluding the page from cache, custom javascript or third parties.

Navigating the Dark Arts of Configuration Management

There will be no foolish wand-waving or silly incantations in this session. As such, there are few who appreciate the subtle science and exact art that is configuration management. However, for those select few who possess the predisposition, this session will teach you how to bewitch the code and ensnare the configuration. This session will tell you how to bottle updates, brew features, and even put a stopper in update errors. Then again, maybe some of you have come to BADCamp in possession of abilities so formidable that you feel confident enough to not pay attention!

Translating Drupal into English… with Props!

When Lily first started working near Drupal (account and project management in a Drupal agency), she came from working near French (marketing and fundraising for a French cultural center). She immediately approached Drupal as a new language, and used this perspective to learn and then to teach. She saw how clients and non-technical colleagues can easily be left out of the conversation by pervasive jargon… fields, views, and modules, oh my! Most of the time, the team does not realize they are doing this, nor how to quickly and easily bring everyone into the discussion. 

Advanced migration techniques

In this session we are going to explore some advanced techniques for building and running migrations. Sometimes you can define your migrations in a single file, run them, close your laptop and go grab a beer. But let’s face it, most other times things are bit more complicated. What we will talk about in this session are some of the cases in which you need to get a bit creative. Such as standardise your source data. Transform it before it gets imported. Or build dynamic migrations.