Archived Site

This site is for archival purposes only. 

Find out what is happening with the Twin Cities Drupal User Group at https://tcdrupal.org/

Accepted Sessions

The Fourth Decade of Website Deployments

Session Category Sessions off the "Drupal Island" Room Room 324 Audience Intermediate Speaker(s) Steve Persch

In the 2020s, the fourth decade of website deployments, teams are recombining, repeating, and re-imagining the patterns of the previous three decades.

In the 1990s, dedicated trailblazers created novel and disparate modes of getting sites online. For many teams in this era, just getting a site on the World Wide Web at all was good enough.

In the 2000s, the LAMP stack emerged as an industry standard pattern for uniting the work of developers, designers, content editors, and systems administrators. The monoliths of the 2000s provided a baseline of stability, pace-of-change, and collaboration, which again was "good enough."

In the 2010s, expectations climbed (primarily in response to competition from native mobile applications). "Good enough" was no longer good enough. Each specialty (front-end development, IT, designers, etc) found that they could pursue excellence in their discipline by breaking away from monolithic deployments.

Now, a third of the way into the 2020s the zeitgeist of website deployments moves again.

Part history lesson, part sketch comedy show, this session will trace the economic, social, political, and technological forces that shape how people build and deploy websites. Teams that understand the forces that shaped the previous decades of evolution will better plan and execute for the changes in the 2020s.

De-Mystifying Composer

Session Category Beginner Track Room Room 324 Audience All Attendees Speaker(s) Dan Ficker

Drupal is made up of many small libraries of code. Composer is the PHP library that helps many PHP projects, including Drupal, manage all those libraries. In Drupal 9 and 10, Composer is used in Drupal core and it is expected that you will use Composer to manage your Drupal site's code.

In this session, we will go over what Composer does and how to use it, especially for Drupal site builders/developers. This includes how to use Composer to add and update modules to your site. We will also touch on more advanced usage such as custom repositories, applying patches, and unmet dependencies. We should have time for questions and sharing your favorite Composer tips and tricks as well.

Habits of an Effective Drupal Contributor

Session Category Beginner Track Room Room 324 Audience All Attendees Speaker(s) Matthew Tift

Do you aspire to contribute to the Drupal community but are unsure what to expect? Have you read the documentation and feel like you still don't know how or where to contribute?

This session will help you fill in the gaps in the documentation as you make your journey as a first-time contributor. We will explore topics such as issue queue management, the credit system, invisible priorities, and how to make the most of your experience.

Help avoid pitfalls and stress, and increase your readiness for the road ahead by hearing stories and learning from the mistakes of fellow contributors.

Creating Nimble Drupal Systems for Government: Transforming MN’s Dept of Health in 6 Months

Session Category Sessions off the "Drupal Island" Room Room 324 Audience All Attendees Speaker(s) Ivan Stegic

When a closely knit and well experienced government team build their first Drupal site and then launch it on their own hosting, they run into unforeseen yet surmountable obstacles. Come with me as we go on a journey and learn how this team improved their Drupal Systems — from the site’s user experience and tagging strategy to the automation at AWS — in only six months.

This talk is suitable for people with or without Drupal experience. It will address:

  • the very real challenges that result from a fast migration to a new platform on a tight timeline
  • how we helped the Minnesota Department of Health overcome these challenges
  • how we’ve started paying down technical debt by optimizing Drupal for best practices
  • how strict security requirements can be your friend and that automation and speed are still possible
  • the secret to achieving all of this, with every team, every time

We hope that this talk inspires teams that may be in a similar situation to reach out and ask for help — whether in government or not, Drupal Systems can be nimble and transformations fast.

Reliable, No-Config Local Development using Dev Containers

Session Category Development & Performance Room Room 326 Audience Intermediate Speaker(s) Ronan Dowling

Local development has been an unsolved problem since the days of MAMP, XAMPP and BAMP. This problem has been tackled over and over by some of our smartest engineers but the state of the art hasn't advanced much beyond a bundle of scripts duct-taped together and maintained in-between real work. It's 2023 and setting up your workstation for a new project and sharing config between developers is still a hit or miss prospect.

In this session we'll look at a new approach to local development that uses containers and config-as-code best practices to define everything about the local operating environment from software versions to IDE plugins. 

By defining our tech stack in code we can create a Drupal site repository that can be spun up by any developer on any Windows, Mac or Linux machine and including fully configured and working versions of our favorite development tools such as XDebug, Lighthouse and PHPMyAdmin. 

Using Microsoft's Dev Container standard we will create a config that can create a fully functional devlopment stack locally with just VS Code and Docker Desktop or in the cloud using Github Codespaces.

We will also look at how a fully defined runtime environment can improve security, ease deployments and reduce maintenance costs by locking down the production environment to only the software that is needed to run Drupal and nothing more.

Markdown in Minutes

Session Category Beginner Track Room Room 325 Audience All Attendees Speaker(s) AmyJune Hineline

Markdown is very popular for authors, developers, and technical writers. It's lightweight and straightforward to learn. Its open format allows it to be used across environments and tools. And with some Markdown features moving into CKEditor 5, its relevance in Drupal is stronger than ever.

In this talk, we'll cover the basics of the whys and focus on learning the syntax of Markdown so you can get started using Markdown immediately.

3 takeaways

• Markdown can be easily converted to HTML

• Markdown text can be used in most platforms and environments

• Markdown has a very gentle learning curve

Upgrading from Drupal 7 to Backdrop CMS

Session Category Sessions off the "Drupal Island" Room Room 325 Audience All Attendees Speaker(s) Tim Erickson

Drupal 7 is nearing end of life and some Drupal 7 sites simply don't need modern Drupal and are unlikely to make the switch. Backdrop CMS is strong alternative for many of these sites. Backdrop CMS is a fork of Drupal that very much resembles Drupal 7, but has added a new layout system and some modern Drupal features, such as config management and views in core. 

There is an upgrade path from Drupal 7 to Backdrop that is similar to the Drupal 6 to Drupal 7 upgrade path. In this session we'll briefly introduce Backdrop CMS and how it compares to Drupal and walk you through the steps to plan, prepare, and complete a Drupal 7 to Backdrop CMS upgrade.

Config Management: Local Development with Config Splits

Session Category Development & Performance Room Room 326 Audience Intermediate Speaker(s) Wilbur Ince

Your site is working great on the LIVE server.  But now you need to make considerable changes to your site.  You copy your site locally, make a bunch of changes, and push those changes to LIVE.  But now modules you installed locally are running on the LIVE site.  

What a mess, HELP!

Drupal gives us great tools to control and manage configuration.  With config_split, config_ignore and config_filter modules, we can set up development workflows to enable and disable modules and configuration - based on which development environment you are using.  

In this session we will explore those modules and show how to set up different configuration for the same site running on the server and on a local development environment.  

This is an intermediate session, but if you are new to config management, this will be a great session to attend.  We'll demystify what Drupal can do with your configuration!

Getting Your Team on the Same [Web] Page: Drupal for Non-Developers

Session Category Beginner Track Room Room 324 Audience Beginner Speaker(s) Kelly Auxier

A successful team is one that can communicate with confidence. From providing mindful recommendations to clients to accurately relaying client requirements to the engineering team, having a strong understanding of Drupal is beneficial for all team members. Hear from one of our Project Managers about how their knowledge of Drupal has been beneficial, if not necessary in their roles. They will share case studies, personal experiences, and provide tips on how similar non-developer roles can confidently join the Drupal conversation.

Implementing an accessibility-focused design system in Drupal

Session Category Theming, Design, & Usability Room Room 325 Audience Intermediate Speaker(s) Gabe Ormsby

In January 2020, The University of Minnesota Libraries developed and applied a principles-based design system to their Health Sciences Library website. Refining this design, we subsequently launched the main University Libraries site in June 2021. With the design system at its center, this site was built with elegantly accessible semantic HTML-focused code on Drupal 9 with highly curated and considered content, striving to meet and exceed WCAG 2.1 AA guidance and addressing cognitive and learning considerations through the use of plain language, templated pages for consistent page-level organization, and no hidden content. As a result, the site better supports all users regardless of their abilities, attention level, mental status, reading level, and reliability of their internet connection, all of which are especially critical now as an elevated number of people experience crises, anxieties, and depression.

At the technical core of this implementation is a Drupal theme designed to accommodate modular, Paragraphs-based editing while directing rendered output through component-based design elements. This session will draw heavily from the article "Considered Content: a Design System for Equity, Accessibility, and Sustainability" published in the Code4Lib Journal in February 2021, but will focus instead on the implementation for www.lib.umn.edu (rather than the article's focus on hsl.lib.umn.edu). This session will focus heavily on details of the Drupal implementation (theme and supporting modules), while providing much of the same background information as the referenced article.

Further info

Presenters from University of Minnesota Libraries

Amy Drayer, user interface developer
jen neveau, web content strategist
Gabe Ormsby, web applications developer

Building In Public- How live-streaming software development can supercharge your programming abilities.

Session Category Sessions off the "Drupal Island" Room Room 325 Audience All Attendees Speaker(s) Mark Dobossy

When you think of live-streaming, images of excitable gamers in fast-paced First-Person-Shooters may come to mind. However, there's a lesser-known and growing community of live-coders emerging on platforms like Twitch and YouTube Live. These live-coders are learning and building software in public, using languages ranging from C++ to JavaScript to php. Join me and explore how live-coding can be a powerful tool to become a better programmer.

During the first half of this session, I'll share my personal journey into the world of live-coding. I'll discuss the challenges I encountered and, more importantly, the myriad of benefits I've experienced as a streamer. From creating an engaged and supportive community to establishing an incredible professional network, live-coding has provided me significant value. I'll delve into how I connected with developers who built the very libraries and tools I use, and how stream chat has proven to be an exceptional "rubber-duck" debugging tool. Additionally, I'll reveal how live-coding has transformed my approach to software development, enhanced my problem-solving skills, and boosted my confidence as both a software developer and a communicator.

For those eager to try live-coding themselves, the second half of this session will focus on getting started. We'll explore the essential software and hardware required, and I'll guide you through the setup process. You'll discover the various platforms suitable for streaming your coding sessions and learn what activities to undertake during your initial streams. I'll also share insights on growing an engaged community and creating an environment conducive to learning and collaboration.

Join me for this unique session and see the potential of live-coding as a tool to elevate your programming skills. Whether you're a seasoned programmer or learning your first language, there's something valuable for everyone in the world of live-coding both as a streamer and as a viewer.

Single Directory Components

Session Category Theming, Design, & Usability Room Room 326 Audience Intermediate Speaker(s) Joe Shindelar

Single Directory Components (SDC) are a new feature in Drupal core (as of 10.1) that aim to simplify the front-end development workflow and improve the maintainability of custom, Core, and contributed themes. This is the biggest change to Drupal theming since the introduction of Twig with the release of Drupal 8 over 10 years ago. And it’s super awesome!

In this presentation I’ll cover:

  • What are UI components generally, and Single Directory Components specifically?
  • What problems are SDC solving?
  • Examples of how to author, and use, components in your modules and themes
  • Integrating SDC with Storybook
  • Educated guesses about the future of SDC in Drupal core

Supercharging Drupal Migrations with ChatGPT: Unleashing Efficiency and Enhancing Development

Session Category Development & Performance Room Room 326 Audience Intermediate Speaker(s) Matt Kleve

Migrating Drupal websites can be a daunting task, but fret not! In this engaging session, you'll delve into the exciting world of Drupal migrations and discover how to harness the power of ChatGPT to turbocharge your development process.

Join us as we embark on a journey through the intricacies of Drupal migrations. Learn expert tips and tricks to streamline your migration workflow, from data mapping and content transformation to module updates and database management. This session goes beyond the basics, delving into advanced techniques that will elevate your migration game.

But that's not all—prepare to be amazed as we unveil the magic of ChatGPT as your trusted companion. Witness how ChatGPT revolutionizes the way you code, effortlessly assisting you in finding solutions, suggesting best practices, and even predicting potential roadblocks. Say goodbye to tedious manual searches and embrace the power of AI to save time and accelerate your development process.

Whether you're a seasoned Drupal developer or a curious enthusiast, this session equips you with the tools and knowledge to master Drupal migrations like a pro. Be prepared for hands-on demos, interactive exercises, and real-world examples that will inspire you to unlock new levels of efficiency and success.

Don't miss this opportunity to make your Drupal migrations more interesting, useful, and enjoyable. Join us to supercharge your development workflow with the formidable duo of Drupal migrations and ChatGPT.

Less is more: adventures in text-only Drupal

Session Category Theming, Design, & Usability Room Room 325 Audience Intermediate Speaker(s) Les Lim

Drupal founder Dries Buytaert once claimed that Drupal is for ambitious digital experiences. But ambition doesn't always skew large. While availability and affordability of high-speed internet access is improving worldwide, many still access the web on sub-3G connections, or under the constraint of data caps. With the median page weight across the web now breaching two megabytes, the digital team at Human Rights Watch wanted to chart a course in the opposite direction: find a way to deliver the full weight of our reporting, in as few bytes as possible.

In this session, we'll peek under the hood of HRW Text Version, a full-featured alternative browsing experience for HRW.org that's 1% of the size and 100% built in Drupal. We'll answer appropriately compact questions, including:

  1. Why?
  2. How?
  3. How long?
  4. Did it hurt?
  5. Can I?

Answers: (1) Reach & accessibility; (2) Theme negotiation; (3) Astonishingly quickly; (4) A little; (5) Yes!

Save time upgrading from Drupal 7 to Drupal 10 using Retrofit

Session Category Development & Performance Room Room 325 Audience Intermediate Speaker(s) Matt Glaman

With an estimated 400,000 sites facing the mandatory transition to Drupal 10 by 2025, there is an urgent need for efficient, time-saving solutions. Retrofit answers this call. Retrofit provides a backward compatibility layer to run your Drupal 7 code within a Drupal 10 code base.

In this session, we'll delve into the workings of Retrofit, showcasing how it allows for the smooth operation of Drupal 7 code within a Drupal 10 site.

Discover how Retrofit can help save your organization hundreds to thousands of developer hours and ensure a smooth, successful migration. Whether you're a site builder, developer, or stakeholder looking to optimize your Drupal upgrade, this session promises insightful takeaways for all. Experience the future of Drupal migration, and give your organization the advantage it deserves.

Introduction to Manual Accessibility Testing

Session Category Development & Performance Room Room 324 Audience Intermediate Speaker(s) Luke Kudryashov Khaled Musa

Automated accessibility scanning tools can only catch around 30% of accessibility issues. To fully meet accessibility standards and make sure everyone is able to use your site, manual testing with assistive technologies is required. We will provide an overview of common manual testing methodologies and demonstrate simple keyboard and screen reader checks you can use to get started. We will also share resources to help you assess the accessibility of your sites. Familiarity with accessibility standards and automated accessibility tools is helpful but not required. These methods are applicable to both Drupal and non-Drupal sites.

Decoupled Drupal Dev on Docker with Docksal Doing the Dirty Work

Session Category Development & Performance Room Room 326 Audience Intermediate Speaker(s) JD Flynn

When a decoupled project begins one of the hardest parts that I’ve found is setting up a local environment to simulate all of the necessary components.  How will the CMS be served? How will the decoupled front end be displayed? What about the dev server for rendering previews? Can I still call it headless or is decoupled the only appropriate word?

There is a better way! In this session I will be walking you through a setup that I use that incorporates separate servers for a Gatsby static site, a Drupal CMS site, and a development server running on NodeJS.  Best of all, because it’s container based, it’s extremely portable and can be reused for multiple projects! Ready to learn more?

Cooking with Caching: Drupal code served fast!

Session Category Development & Performance Room Room 326 Audience Intermediate Speaker(s) Tess Flynn Kelly Auxier

Your clients are hungry! Their end users are hungry! Time to cook up some Drupal, but it needs to be fast! Caching is often a complex and confusing topic which leads to many mistakes and misconceptions which can drag down your project’s velocity. Put on your chef’s hat, as we’ll cover several key recipes to keep your clients satisfied.

Do you still need Sass in 2023?

Session Category Theming, Design, & Usability Room Room 325 Audience All Attendees Speaker(s) Aubrey Sambor

With so many new features being added to CSS in the past couple years, is Sass still needed in 2023? Is it time to remove Sass from your build process? What can native CSS and PostCSS do that can replace Sass functionality and how is PostCSS being used in Drupal 10?

In this session, I will discuss an overview of new CSS features that replace functionality in Sass:
* CSS custom properties
* Nesting
* New color functions

I will also go over some PostCSS plugins that replicate Sass functionality:
* Custom media
* Imports
* Mixins

I will also briefly touch on how PostCSS is being used in Drupal 10.

Lastly, I will discuss when you might not want to replace Sass *just yet* and how you can use Sass AND native CSS together to take advantage of your existing build process. 

It’s an exciting time to be a CSS developer and the perfect time to learn more about what CSS can do natively without using Sass.

Using Github Actions for continuous deployment

Session Category Development & Performance Room Room 325 Audience Intermediate Speaker(s) Gena Wilson

You like to keep all your Drupal website code in Github (GUIs for PRs! Clear code diffs! Searchability! Visibility within your organization!), but hosting partners like Pantheon and Acquia have their own Git repositories that tie into their deployment processes. This session will walk you through taking an existing Github Drupal repository and automatically deploying any updates to that repository's main branch (eg, by merging in a pull request) to a Pantheon dev environment.

(As of August 2023) Github accounts include 2000 minutes of Github actions execution minutes for private repositories, and Pantheon's Silver plan is also free. So if you'd like to reproduce what I'm showing to explore the possibilities for your own websites, you can do so at no cost. 

The Drupal API Client Project

Session Category Development & Performance Room Room 326 Audience Intermediate Speaker(s) Brian Perry

Funded as part of the Pitchburg Innovation Contest, The Drupal API Client project aims to assemble a group of contributors in order to combine the best of existing Drupal API clients into a set of utilities that can both address common use cases with little configuration, and also be extended to support the needs of a diverse JavaScript ecosystem.

At Twin Cities Drupal Camp, we'd like to introduce you to the project, including:

  • Why we believe that this is an important problem to solve for the Drupal community.
  • A tour of past projects that helped pave the way for our work.
  • An overview of the initial scope of the project.
  • A look at our progress thus far.
  • Areas where we need feedback.
  • Details on how you can contribute.

Excited to get hands on with the API Client Project? The fun will continue at Twin Cities Drupal Camp contribution day.

Open Source FTW: How we made Same Page Preview

Session Category Beginner Track Room Room 326 Audience Beginner Speaker(s) Chris Weber

You can make cool things with open source development.  

In this talk we'll walk through how we made Same Page Preview, a cool new feature for Drupal.  The journey we took in order to figure out what features should be included, how we tested, how we kept momentum going to push the feature to the finish like, was a pretty cool journey.  

Things that drove progress:

  • Collaborating online
  • Making update / demos to report status
  • Organize thoughts, build consensus, and make decisions within a small team.
  • "Write" tests and ensure you don't have to solve errors twice.

Hear how we learned these skills and how you could use them to build your own ideas with Open Source.

How Co-Development Workflows Can Lead to Project Success

Session Category Beginner Track Audience All Attendees Speaker(s) Jordan Thompson Simon Whitney

Case Study on UMN and Northern Commerce working together across two Drupal sites, each with their own unique co-development processes and challenges. Walking through the details of project goals, outcomes, and lessons learned along the way. 

Co-presented by members of UMN and Northern Commerce teams. 


Agenda (Subject to Change):

  1. Introductions
    1. Speakers
    2. UMN / Northern
  2. Overview of the projects
    1. UMN CLA (College of Liberal Arts) / UMN Morris
      1. Goals
      2. Approaches
      3. etc. 
  3. Highlighting similarities and differences
  4. Co-development responsibilities
    1. Development
    2. Maintenance
    3. Deployment
    4. Launch
    5. Upgrade to Drupal 10
  5. Learning and Growing Together
  6. Comments / Q&A 

A WordPresser in a Drupal World

Session Category Sessions off the "Drupal Island" Room Room 324 Audience All Attendees Speaker(s) Jennifer Brueske

The transition from WordPress to Drupal can be quite a leap and often involves feeling like an imposter.  I'd love to discuss the transition, the good, the bad, and the frustrating!  It's often nerve-wracking to ask for help, or to learn something outside your comfort zone, however, I've found the Drupal community to be warm, inviting and happy to help.  I'd love to talk about how to make the leap and how the Drupal community can help the leapers.