BADCamp 2022


For over 15 years the Bay Area Drupal Camp has gathered thousands from a worldwide community of Drupal users, developers, marketers, and content specialists to share their expertise level up their skills, and make new friends in the intellectual and cultural heart of the Bay Area. Whether it's your first time attending or your tenth, we look forward to seeing you in October!

Video Sponsor(s) / Provided by
Curated Videos
Kalaiselvan Swamy

With Drupal 10 around the corner, we still have (as of July 24 2022) 482,077 sites running on Drupal 7.x. According to the usage statistics from Drupal, this figure is 52.94% of the total 910,684 sites running on Drupal.

Due to this reason the Drupal 7.x end-of-life was extended to November 28, 2022. With the Drupal Rector and Automatic Updates initiative, it is now easy to migrate from Drupal 9 to 10, However, it requires one to be on Drupal 9.x first. Upgrading from Drupal 7 to 9 or 10 involves a host of changes for content editors, administrators, and end users.

This session will act as a step-by-step guide to migrating from Drupal 7 to 9 in an efficient manner. And this would not only be a version upgrade. It will be an entire CMS Experience Upgrade for all stakeholders.

Learning Objectives:
By the end of this session attendees will be able to understand

How to simplify the process and make grouping content more meaningful for those Drupal 7 users who are still using the old entity API for content types, and taxonomies?
How to handle the considerable burden accumulated by Drupal 7's contributed modules and make it more lean for Drupal 9?
How to streamline the content workflow in conjunction with the roles and permissions?
Should you migrate to media or stick with simple fields given that with the improved Media module in core for Drupal 9.x, there is an optional choice to enhance media handling capabilities for your site?
How to re-engineer the editorial process to make the big leap meaningful and life easier for editors?
In addition to the above factors, what else should you consider?
What is the best way to migrate from Drupal 7 to Drupal 9?
Brian Perry

The Generic Drupal Web Components project aims to create a library of web components that are accessible, framework agnostic, possible to style, and easy to use with data provided by Drupal. In support of the Decoupled Menus initiative, an initial menu component was created as a proof of concept. This talk will focus on the lessons learned creating this menu component, and how this model could be followed to create a full design system that could be maintained by the Drupal community at large. Topics will include:

- How using web components allows us to offer a single set of components that can be used in a variety of front ends, from popular JavaScript frameworks like React, to Drupal's Twig based templating engine.
- Structuring components to allow a variety of styling options and data sources.
- Finding a scalable approach to managing state.
- Thinking ahead to the possible impact of a community driven design system.
- Learning from similar efforts within the Drupal ecosystem.
- Keys to success for this project, and how you can help.

Anyone can be 'normal' online, but where does that leave our attitudes toward disabled people offline? In an era of digitalization, technology provides a way to innovate. Accessibility to the Web is essential to ensure equal access and equal opportunities for persons with disabilities.
Let us examine what tools they use. How does it look? How does it work? How to define digital web accessibility to understand the experience and use of technology among people with disabilities. An overview of basic concepts around accessibility, such as why digital inclusion is predominant.
For example, a video on a website has to be accessible to people who are blind. The video player should be controllable using a keyboard. Consider commands will be categorized correctly, and all the content in the video will be available as audio. But, if there are no subtitles or text transcription available, then the video will be inaccessible to someone who cannot hear the sound. Innovative products, applications, and websites are not easy to use and accessible to everyone. Several government agencies worldwide have made numerous legal changes to make IT products accessible to people with disabilities. Please join my session to understand the high-level introduction to the Web Content Accessibility Guidelines 2.1 (WCAG).
Learning Objectives: Attendees will develop insight, empathy, understanding, and inspiration to prepare project strategy in new, more accessible ways.
* Accessibility considerations & inclusive design
* Why does accessibility matter?
* How do people with disabilities use the web?
* How will assistive technologies help them?
* Let's discuss the statistics, laws, and more!
* Web Content Accessibility Guidelines, v2.1
* Role-based accessibility practices and the shift-left approach
Target Audience
* Project Managers, Product Owners, Scrum Masters, Quality Assurance Engineers
* Interested contributors (developers, testers, clients)

Developer Experience (DX) describes the experience developers have when they use a product. It matters in the same way that User Experience (UX) matters. When users are happy, they’ll continue to use and tell everyone about your product.

But Why GraphQL?
Introspection; this allows the user to see the entire GraphQL schema. Sending in a request for types and their objects will return everything one needs to know to perform queries on the data presented by the API. This allows a developer to write queries without any other API documentation.

Granular queries; GraphQL is a query language for APIs that allows customized, compact queries that return small responses, that in turn eliminate unnecessary response data and makes applications faster. It also reduces the need for response parsing, which increases developer velocity and makes developers happy.

How about the GraphQL ecosystem?
There are plenty of tools in the GraphQL ecosystem that will help you provide a delightful DX for your team. During this session you learn about some of those tools.

How about Drupal and GraphQL ?
Well this is where things start getting a little complicated, every modern CMS platform as Contentful, GraphCMS, Storyblok, open source project as Strapi, Keystonejs and even legacy CMS as Wordpress provide a GraphQL API that expose data in a structured way but that is not the case for Drupal at least not on the v4.x
But there is a module for that, and you can take advantage of the GraphQL Compose, a Toolkit for generating GraphQL schemas in Drupal. The main goal of this project is to provide a GraphQL spec compliant schema generation for the GraphQL module v4.x
We are working on making Drupal 8 truly API-first: API-first initiative.

Improving Drupal GraphQL, to become best-in-class.
Bringing Drupal GraphQL support for automatic schema generation stable.
During this session you will learn about the current state of the schema generation in Drupal and GraphQL v4.x and what the plans are to shape the future of the web using Drupal.
Melissa Miller

Storybook is a tool used to build a UI component library, and is a favorite of many front-end developers. But because there isn't a Drupal or Twig-specific version of Storybook, we must hack our own. The approach can vary based on your specific needs. I will talk through some possible approaches and provide tips and tricks to help you tackle this problem and craft your own solution.

Lots of work in the community is happening around how to best design, define, theme, and author components in Drupal, and seemingly everyone has their open source/contrib solution to make at least one aspect of building a component system easier. The question is why? What problems are all of these solutions looking to overcome? Why is the community not consolidating on a common approach?

In this session, we'll establish the parts of an individual component and what a component system needs to be successful. From there we'll look at various component system architectures and try to identify common pain points to see if there are bigger problems we should be addressing as a community.
Irina Zaks
Tori Sparkman Lewis

We have been building research applications for academia since 2014. We will demo how we are using D9 and Backdrop for new apps and for migrations
Anthony Horn

In the last couple of years I have been developing a UX Improvement process and I want to share my story; how the process was built, how it is implemented, what are the deliverables, what it looks like to go through it with a client, and how to build your own.
Vineet Bhardwaj

Queue API allows to handle a number of tasks at a later stage.
What this means is that we can place items into a queue which will run some time in the future and process each individual item at that point and at least once. Usually, this happens on CRON runs, and Drupal allows for a quick set up for cronjob based queues. It doesn’t necessarily have to be CRON, however.
Session will include :
What is Queue Worker and why is this useful ?
Triggering queue using cron or manually both.
Dividing a task into sub steps and show the usage of hook system.
Sharing a working example of Queue API from my last project experience.
Objective of the Session:
Introduction to Queue API
How it is helpful in later stage to complete tasks.
Demonstrate working example from project.
Enabling the developer to use cron for triggering a task.

For many of us, asking for and receiving feedback can be the most nerve-inducing part of our working lives. Our discomfort with this topic results in lost opportunities to proactively address areas of improvement before they influence our career. By taking a passive approach to feedback, we rob ourselves of control over our future impact within our teams, companies, and communities.

During this session, I will share how turning the fear of the unknown into a willingness for open conversation can empower you. You'll learn to take ownership of your growth and make decisions that will make "future you" grateful.

Attend this session to learn how to:

* Adapt to a feedback-positive mindset,
* Harness the power of proactively asking for feedback,
* Leverage different approaches to asking for feedback, and
* Process the feedback you receive to get the most benefit from it
Arlina Espinoza Rhoton

We are all good developers. At least we think we are. Our code works, it's performant - oh, and it's elegant. So let's deploy that new release for our module. Wait, 10 issues are reporting that our new release broke their site? What went wrong?

In this session I'll share my experience helping maintain the Apigee suite of modules and other projects. This includes thinking about upgrade paths, backwards compatibility, documentation and testing. Tips shared will be useful for anyone maintaining modules, installation profiles, or deployment scripts.
Jody Hamilton

The state of leadership in tech is dire. Software teams badly need technical leadership, but engineers typically have little to no mentorship in how to lead teams. Meanwhile the prevailing 'wisdom' from upper management of how to increase the output from an engineering team is still to pile on more 'resources.'

I've been at this game a long time, grew high-functioning teams and got existing teams back on track. Recently completed my MBA. I have many thoughts to share.

I hope this to be an insightful talk for everyone from veteran leaders to aspiring/curious folks, helping to provide some clarity on what teams need most to be high-functioning.

Anyone can be a great leader, no matter your personality or other attributes, so I hope for some of you this talk will boost your confidence. The teams need you.
Steve Zipfel

We show you how to leverage Promet Source's Provus Drupal distribution to get up and running easily and quickly create robust and attractive landing pages in mere minutes.
Irina Zaks

Gitlab Acceleration Initiative enables use of standard Gitlab tools, including Gitlab CI. In this session we will talk about how this change will impact Drupal testing.

Learn more about initiative
Jody Hamilton

The render cache is a system using cache tags, cache contexts and cache invalidations. Like most Drupal developers I've worked with this system for years and thought I had it mastered. But I met my match this past year, with a very customized, large, slow, frequently updated, and authenticated-user-accessed D9 site. I 'just' wanted to fix the caching.

I got help from cache experts Fabian Franz (cache API creator) and Janez Urevc of Tag1. Janez will be joining me to co-present this session.

I've learned some gotchas in the system and some tools to find problems and get data. I'll be sharing what I know now that I wish I knew a year ago.

This talk is for backend developers who already work with and understand at least the basics of the cache API, and would like to further their cache API skills or improve a difficult site's backend performance.
Fran Wyllie

Creating websites that can be understood and operated with ease by everyone no matter the method of access should be the top priority.

This session will cover helpful automated tools and manual auditing tips to ensure accessibility conformance. As well a walk through of building common complex components for best accessibility conformance.

- Importance of Accessibility
- Automated Testing Tools
- Manual Testing Steps
- Common Accessibility Issue Remediation
- Complex Accessibility Issue Remediation

This session will review some of the approaches to creating a progressively decoupled application in your Drupal theme using React and Paragraphs. Learn how to send data to your applications from Drupal. This idea isn’t limited to Paragraphs of course, we will demonstrate how to apply this to Blocks to be used in Layout builder as well. Additionally, if time permits, we may cover other progressive applications using VueJS and Angular.

Back in 2018 I was the Manager of Web Development for the University of Colorado's Web Express service. We had ~1000 D7 sites we needed to migrate to something else before the EoL. We seriously considered Backdrop, WordPress and many other solutions. As a team, we ported D7 modules to Backdrop. Launched Backdrop sites on Pantheon. I posed many times about why I personally thought Backdrop was a better fit for our use case than Drupal 8. I went so far as to wear a T-shirt at DrupalCon Nashville asking attendees to Change My View about D8 for our use case.

- This session will review the major issues we had with version 8 of Drupal for our use case
- Some of the CMS solutions we tried to replace Drupal with (both open source and commercial)
- How the Drupal community addressed most of the issues we had with Drupal 8 in version 9
- Why I think modern Drupal deployed with a modern build process is the right choice for ambitious marketing sites in 2022, but Backdrop is a more cost effective solution for most of the sites I've built for higher ed
- Why after helping to fund distribution packaging on and maintain the Packaging Allow List of 3rd party dependencies, I'm so excited about sunsetting that functionality
- How we leverage a modern build process with Pantheon's Auto Pilot to empower Ambitious Site Builders
- How the University of Colorado contributes back to Drupal to ensure the higher ed use case is well served

Creating large amounts of content from external sources can be tedious but is a common problem for many Drupal builds. Importers are tools that can be created and used to make this process easier while maintaining control over content-specific details.

This session will cover what importers are, why and how to make a custom importer, as well as tips and tricks for handling different real-life import scenarios.

- Introduction
- What are importers?
- Available import methods
- Why make a custom importer?
- Walkthrough of creating a custom importer
- Import scheduling and automation
- Gotchas
Ronald Aguilar

The web is continuously growing and evolving. As a result, powerful and developer-friendly tools and frameworks are part of the daily work for most front-end developers nowadays.
Next.js is one of the most popular choices that meet the expectations of developers, clients, and final users. If you're thinking of starting a project that needs to be highly performant and accessible, this will be one of the best options.
That's why in Chapter Three, we don't only think, we're totally sure the future of Drupal is headless, so we're working on bringing together the best of both worlds: the flexibility, editor control, and API-first power of Drupal, with the performance and developer experience of a modern framework like Next.js. That's how Next-Drupal was born, and it's continuously growing.
In this talk, we'll learn more about how to start with Next-Drupal and the enormous benefits of decoupling Drupal in an easier and more friendly way.
Leslie Glynn

The Project Browser strategic Initiative's goal is to allow folks to easily browse for projects to add functionality to their Drupal website After browsing for projects (modules) compatible with the version of Drupal being used on the website, users will be able to download and install the projects from right within the website. The target audiences of the Project Browser are site builders and those new to Drupal. The initiative was highlighted by Dries in the Driesnote at DrupalCon Portland 2022 Come learn about the initiative and the ways you can contribute to getting Project Browser into Drupal 11.

Drupal is a registered trademark of Dries Buytaert.