Archived Site

This site is for archival purposes only. 

Find out what is happening with the Twin Cities Drupal User Group at

Day 2 of Twin Cities DrupalCamp is a full day of sessions broken up by a catered lunch and coffee breaks.

Here's a link to a printed schedule - TC DrupalCamp Printed Schedule.

9:00 am to 9:45 am

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.

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 (rather than the article's focus on 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

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!

10:00 am to 10:45 am

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.

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 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!

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.

11:00 am to 11:45 am

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.

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.

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.

12:00 pm to 1:00 pm

Lunch (Fri)

Room West Wing

Lunch provided by camp in the BIG ROOM.  

1:15 pm to 2:00 pm

I am Functional and So Can You

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

What’s the first thing you think of when someone is called “mentally ill”? Many probably imagine someone unkempt, babbling incoherently on the street or locked up in an asylum.

I am mentally ill, but despite my multiple diagnoses, I am a functional member of society. I’ve been able to deal with my mental illness with treatment, support, and lots of work, and if you’re suffering from mental illness, chances are that you can as well.

In this session I will tell the tale of how I discovered that my feelings of worthlessness and dread were more than just bad moods and how I came to accept that I have mental illness, but mental illness doesn’t have me.  By telling what helped me, I hope that attendees will be able to recognize signs within themselves or those they care about and find ways to get help, accept that mental illness is not a damning diagnosis, and get past the stigma that surrounds people with mental illness.

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. 

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.

2:15 pm to 4:30 pm


Room West Wing


Contributrions (Fri)

Room Room 324

Why contribute?

The more that people contribute, the stronger Drupal becomes. The more polished and refined the project is, the more job security we all have.

Why sprint?

It’s an excellent opportunity to connect with other contributors, help collaborate and brainstorm, and move the Drupal project forward. Contributing is a fantastic way to receive feedback and build skills while learning from those more experienced.

Not a coder or new to tech?

That’s great! It’s your turn to shine.

Not everyone who works on Drupal is a developer: Project Managers, Customer Service, and those who hold non-technical roles can all give back to the community. Code is important, but so are all the other parts.

We got you covered!

There will be mentors available for those who need a little help to get started.

We will make sure you stay caffeinated, fed, and hydrated.

Quiet Room

Room Room 325

Take a break, relax, catch your breath!

2:45 pm to 3:15 pm

Coffee ☕️ Break

Room West Wing

Drinks and snacks will be available during the Unconference time

4:30 pm to 5:00 pm

Closing Plenary

Room West Wing

How did it go?  Where to from here?  Bon Voyage!