SlideShare a Scribd company logo
Empower site builders and reduce
your maintenance effort
Configuration Kits:
Reusable Site
Building Patterns
Martin Anderson-Clutz
@mandclu
Martin
Anderson-Clutz
@mandclu
This Talk
● Based on my own experience, YMMV
● Intended to help you better define what your module should do,
and why
● A resource guide
● Amount of code === NULL
Site Builders: A Renewed Focus for Drupal
● Less Technical
● Need low code solutions
● Likely new to Drupal
Site Building: The Process
● Create content types
● Construct views
● Add magic!
○ Extra modules as needed
Configuration Kits
To the rescue...
Configuration Kits: The concept
● Often a Drupal module without PHP
○ Mostly YML, sometimes CSS, JS, etc
● Put a logical system into a module
○ Staff directory, events calendar, etc.
○ Most useful if they address something tricky
■ e.g. sort staff directory by last name
● Allows for modular reuse of common systems
That sounds a lot like
a Feature...
● Configuration as code
● NOT intended for an ongoing sync
○ Install and customize
● Uses core config management
How They Help
● New to Drupal
○ Implement common features
■ Customizable
○ Reference for learning
● Experienced Drupalists
○ Head start on site building
■ More time to innovate
○ Other code more portable
■ CSS, JS, PHP
How They Help: Module Maintainers
● Easy to try out
● Faster to incorporate in a site build
● Reference “known good” configuration
○ Helps issue triage
How They’re Made
● drupal generate:module
● drupal config:export:content:type
● drupal config:export:view
● Manually add module dependencies to info.yml
● Balance config between install and optional
config subdirectories
A Little Something Extra
● Submodules for:
○ Formatting
○ Specialized functionality
○ Additional integrations
The Existing Arsenal
● Smart Date Starter Kit
● Smart Date Calendar Kit
● Quick Links
● Tasks
● Person
Demo Time!
Let’s see them in action
Try This At Home!
● composer create-project drupal/recommended-project test
● cd test
● lando init --recipe drupal9 --webroot web --name test --source cwd
● lando start
● composer require drush/drush
● lando drush site:install --account-pass=[my_secure_password]
--db-url=mysql://drupal9:drupal9@database:3306/drupal9 --site-name="Drupal 9 Demo" -y
● composer require drupal/gin:^3.0@alpha drupal/gin_toolbar:^1.0@beta drupal/admin_toolbar
drupal/pathauto
● lando drush theme:enable olivero gin && lando drush cset system.theme default olivero -y && lando
drush cset system.theme admin gin -y && lando drush cset gin.settings classic_toolbar 1 -y &&
lando drush en admin_toolbar admin_toolbar_tools gin_toolbar pathauto -y
Requires:
● Composer
● Lando
Smart Date Calendar Kit
● Dependencies
○ Smart Date Starter Kit
■ Smart Date
■ Add Content By Bundle
○ Fullcalendar View
● composer require drupal/smart_date_calendar_kit
lando drush en smart_date_calendar_kit -y
● Built to work with
multivalued and recurring
dates
● Multiple views displays
connected as tabs
Person
● Dependencies
○ Add Content By Bundle
○ Auto EntityLabel
● composer require drupal/person 
drupal/auto_entitylabel:^3.0@beta
lando drush en person_olivero -y
● Manage and display info
about people
● View sorts alphabetically
by last name, grouped by
initial
Quick Links
● Dependencies
○ SVG Image Field Media Bundle
■ SVG Image Field
○ Add Content By Bundle
○ Display Link Plus
○ Draggable Views
○ Storage Entities
● composer require drupal/quick_links
lando drush en quick_links_olivero -y
● In-context management of
home-page links, with icons
● Submodule provides
formatting, places home
page block
Tasks
● Dependencies
○ Flag
○ Add Content By Bundle
○ Display Link Plus
○ Draggable Views
○ Storage Entities
● composer require drupal/tasks drupal/flag:^4.0@beta
lando drush en tasks_olivero -y
● Submodule allows for
managing the tasks of
others
● Submodule provides
formatting, places home
page block
● Optionally add
views_flag_refresh
Let’s Get Ambitious
More complicated kits
Smart Date Registration Kit
● Dependencies
○ Smart Date
○ Add Content By Bundle
○ Field Group
○ Fullcalendar View
○ Inline Entity Form
○ Drupal Commerce
● Paid (or free) event
registration, with capacity
limits
● Event dates as product
variations, to support
multiple dates
● Submodule alters the
wording in form to create
event products
Smart Date Registration Kit
● git clone git@git.drupal.org:sandbox/surgemartin-3209977.git
smart_date_registration_kit
● composer require drupal/add_content_by_bundle drupal/commerce
drupal/field_group drupal/fullcalendar_view
drupal/inline_entity_form:^1.0@rc drupal/smart_date
● lando drush en commerce commerce_cart commerce_checkout
commerce_price commerce_product
● [create your commerce store, other commerce setup]
● Lando drush en smart_date_registration_kit
smart_date_registration_kit_form_tweaks
Configuration Kits - DrupalCamp NYC 2021
Configuration Kits - DrupalCamp NYC 2021
Acquia CMS Places Leaflet View
● Dependencies
○ Acquia CMS Place
■ Acquia CMS Image
■ Field Group
■ Address
■ Geocoder
○ Leaflet Views
■ Leaflet
● Plot Place nodes on a
Leaflet-based map
● Attachment to display
teasers below the map
Acquia CMS Places Leaflet View
● git clone git@git.drupal.org:sandbox/surgemartin-3246619.git
acquia_cms_place_leaflet_view
● composer require drupal/leaflet drupal/acquia_cms_place
drupal/default_content:^2.0@alpha drupal/entity_clone:^1.0@beta
● lando drush en acquia_cms_place_leaflet_view
Configuration Kits - DrupalCamp NYC 2021
Configuration Kits - DrupalCamp NYC 2021
Acquia CMS
An opinionated version of Drupal
● Media Types
○ Acquia CMS Audio
○ Acquia CMS Document
○ Acquia CMS Image
○ Acquia CMS Video
● Miscellaneous
○ Acquia CMS Search
○ Acquia CMS Site Studio
A Wealth of Options
● Content Types
○ Acquia CMS Article
○ Acquia CMS Event
○ Acquia CMS Page
○ Acquia CMS Person
○ Acquia CMS Place
Process Implications
The Importance of Being
Composable
● Maximise your organisation’s ability
to build, assemble and reassemble
core business elements
● Modular philosophy
Agile Web Development By Many Names
● MVP Web Development
○ Get to market as quickly as possible
○ Collect feedback
○ Iterate often
● Lean Startup
● Growth-Driven Design
Configuration Kits - DrupalCamp NYC 2021
Build-First Development
● For clients that find requirements definitions too abstract, start
by showing them basic versions of common website systems
● Easier to understand when seen visually
● Document when accepted
Resources!
● Config Kits project page
● Add a Robust Events System to Your Drupal Site in Minutes / DrupalCon North
America 2021
● Acquia CMS makes it easy to harness the power of Drupal
● Broken title in modal dialog when title is a render array
Thank you!
@mandclu

More Related Content

PDF
COMO CRIAR O TEU STARTUP PROJECT E SETUP DO TEU AMBIENTE DE DESENVOLVIMENTO D...
PPTX
Drupal local development with lando
PDF
Robust Events System In Minutes | DrupalCon North America 2021
PDF
Recurring Dates in Drupal - BADCAMP 2020
PDF
How to Use the Command Line to Increase Speed of Development
PDF
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
PDF
Speed up Drupal development with Drush
PDF
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
COMO CRIAR O TEU STARTUP PROJECT E SETUP DO TEU AMBIENTE DE DESENVOLVIMENTO D...
Drupal local development with lando
Robust Events System In Minutes | DrupalCon North America 2021
Recurring Dates in Drupal - BADCAMP 2020
How to Use the Command Line to Increase Speed of Development
Fast Paced Drupal 8: Accelerating Development with Composer, Drupal Console a...
Speed up Drupal development with Drush
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!

What's hot (20)

PDF
Common Pitfalls for your Drupal Site, and How to Avoid Them
PDF
Headless approach and Acquia - Case study - Chris Ozog
PDF
Drupal 8: frontend development
PDF
Composer Tools & Frameworks for Drupal
PDF
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
PDF
Drupal 8 Theme System: The Backend of Frontend
PDF
Front-end development automation with Grunt
PDF
Modernizing Your WordPress Workflow with Grunt & Bower
PPTX
Drush for drupal website builder
PPTX
Using the Command Line: Bash and WP-CLI
PDF
Preprocessor Workflow with Grunt
PDF
Monitoring at a SAAS Startup: Tradeoffs and Tools
PPTX
Introduction to using Grunt & Bower with WordPress theme development
PDF
Serverless Preview Environments @ Boston DevOps
PPTX
JavaScript Task Runners - Gulp & Grunt
PDF
CI workflow in a web studio
PPTX
Automated Development Workflow with Gulp
PDF
How to improve gradle build speed
PDF
Production Ready Javascript With Grunt
PDF
Essential parts to implement own Ozone backend
Common Pitfalls for your Drupal Site, and How to Avoid Them
Headless approach and Acquia - Case study - Chris Ozog
Drupal 8: frontend development
Composer Tools & Frameworks for Drupal
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Drupal 8 Theme System: The Backend of Frontend
Front-end development automation with Grunt
Modernizing Your WordPress Workflow with Grunt & Bower
Drush for drupal website builder
Using the Command Line: Bash and WP-CLI
Preprocessor Workflow with Grunt
Monitoring at a SAAS Startup: Tradeoffs and Tools
Introduction to using Grunt & Bower with WordPress theme development
Serverless Preview Environments @ Boston DevOps
JavaScript Task Runners - Gulp & Grunt
CI workflow in a web studio
Automated Development Workflow with Gulp
How to improve gradle build speed
Production Ready Javascript With Grunt
Essential parts to implement own Ozone backend
Ad

Similar to Configuration Kits - DrupalCamp NYC 2021 (20)

PDF
Decoupling Drupal mit dem Lupus Nuxt.js Drupal Stack
PDF
Extending CMS Made Simple
PDF
Drupal Best Practices
PDF
Modernize Your Drupal Development
PPTX
Becoming A Drupal Master Builder
PDF
Drupal 8 improvements for developer productivity php symfony and more
PDF
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
PDF
[HKDUG] #20180512 - Fix Hacked Drupal with GIT
PDF
Efficient development workflows with composer
PDF
Running Dataproc At Scale in production - Searce Talk at GDG Delhi
PDF
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
ODP
Drupal in 5mins + Previewing Drupal 8.x
PDF
Getting started with the Lupus Nuxt.js Drupal Stack
PDF
Drush workshop
PDF
Drools & jBPM Workshop Barcelona 2013
PDF
Automation of Hadoop cluster operations in Arm Treasure Data
PDF
Architektura html, css i javascript - Jan Kraus
PDF
Hong Kong Drupal User Group - Introduction of Drush
PDF
Harnessing the cloud_for_saa_s_hosted_platfor
PDF
Using Composer with Drupal and Drush
Decoupling Drupal mit dem Lupus Nuxt.js Drupal Stack
Extending CMS Made Simple
Drupal Best Practices
Modernize Your Drupal Development
Becoming A Drupal Master Builder
Drupal 8 improvements for developer productivity php symfony and more
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
[HKDUG] #20180512 - Fix Hacked Drupal with GIT
Efficient development workflows with composer
Running Dataproc At Scale in production - Searce Talk at GDG Delhi
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Drupal in 5mins + Previewing Drupal 8.x
Getting started with the Lupus Nuxt.js Drupal Stack
Drush workshop
Drools & jBPM Workshop Barcelona 2013
Automation of Hadoop cluster operations in Arm Treasure Data
Architektura html, css i javascript - Jan Kraus
Hong Kong Drupal User Group - Introduction of Drush
Harnessing the cloud_for_saa_s_hosted_platfor
Using Composer with Drupal and Drush
Ad

More from Martin Anderson-Clutz (17)

PDF
Recipes_ It's About Time _ Drupal Dev Days 2025 Leuven.pdf
PDF
Recipes: It's About Time | DrupalCon Atlanta 2025
PDF
Recipes: It's About Time | FLDC 2025.pdf
PDF
Recipes! The Future of Drupal Site Building | Drupal CMS Launch | Toronto
PDF
Recipes: It's About Time! | New England DrupalCamp 2024
PDF
Recipes: It's About Time - Twin Cities DC 2024
PDF
Stupendous Date Tricks - Drupal GovCon 2024
PDF
Recipes: the Future of Drupal Site Building | GovCon 2024
PDF
Ottawa Drupalcamp 2024 Keynote: Chart Your Drupal Journey
PPTX
I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023
PPTX
Simplifying Your Admin Experience - FLDC 2023.pptx
PDF
Image Optimization in Drupal
PDF
Simplifying your admin experience - Stanford WebCamp
PPTX
Manually curated solr search results | DrupalCon NA 2021
PDF
Simplifying the Drupal Admin Experience
PDF
Site Search and Relevance
PDF
Smart Date - Drupalcamp Colorado 2020
Recipes_ It's About Time _ Drupal Dev Days 2025 Leuven.pdf
Recipes: It's About Time | DrupalCon Atlanta 2025
Recipes: It's About Time | FLDC 2025.pdf
Recipes! The Future of Drupal Site Building | Drupal CMS Launch | Toronto
Recipes: It's About Time! | New England DrupalCamp 2024
Recipes: It's About Time - Twin Cities DC 2024
Stupendous Date Tricks - Drupal GovCon 2024
Recipes: the Future of Drupal Site Building | GovCon 2024
Ottawa Drupalcamp 2024 Keynote: Chart Your Drupal Journey
I have a Great Idea for a Drupal Module! Now What? - DrupalDevDays 2023
Simplifying Your Admin Experience - FLDC 2023.pptx
Image Optimization in Drupal
Simplifying your admin experience - Stanford WebCamp
Manually curated solr search results | DrupalCon NA 2021
Simplifying the Drupal Admin Experience
Site Search and Relevance
Smart Date - Drupalcamp Colorado 2020

Recently uploaded (20)

PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Digital Strategies for Manufacturing Companies
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Nekopoi APK 2025 free lastest update
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Transform Your Business with a Software ERP System
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
ManageIQ - Sprint 268 Review - Slide Deck
How Creative Agencies Leverage Project Management Software.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
Softaken Excel to vCard Converter Software.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Digital Strategies for Manufacturing Companies
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Upgrade and Innovation Strategies for SAP ERP Customers
How to Choose the Right IT Partner for Your Business in Malaysia
Nekopoi APK 2025 free lastest update
ISO 45001 Occupational Health and Safety Management System
VVF-Customer-Presentation2025-Ver1.9.pptx
PTS Company Brochure 2025 (1).pdf.......
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Online Work Permit System for Fast Permit Processing
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Adobe Illustrator 28.6 Crack My Vision of Vector Design
L1 - Introduction to python Backend.pptx
Transform Your Business with a Software ERP System
Wondershare Filmora 15 Crack With Activation Key [2025

Configuration Kits - DrupalCamp NYC 2021

  • 1. Empower site builders and reduce your maintenance effort Configuration Kits: Reusable Site Building Patterns Martin Anderson-Clutz @mandclu
  • 3. This Talk ● Based on my own experience, YMMV ● Intended to help you better define what your module should do, and why ● A resource guide ● Amount of code === NULL
  • 4. Site Builders: A Renewed Focus for Drupal ● Less Technical ● Need low code solutions ● Likely new to Drupal
  • 5. Site Building: The Process ● Create content types ● Construct views ● Add magic! ○ Extra modules as needed
  • 7. Configuration Kits: The concept ● Often a Drupal module without PHP ○ Mostly YML, sometimes CSS, JS, etc ● Put a logical system into a module ○ Staff directory, events calendar, etc. ○ Most useful if they address something tricky ■ e.g. sort staff directory by last name ● Allows for modular reuse of common systems
  • 8. That sounds a lot like a Feature... ● Configuration as code ● NOT intended for an ongoing sync ○ Install and customize ● Uses core config management
  • 9. How They Help ● New to Drupal ○ Implement common features ■ Customizable ○ Reference for learning ● Experienced Drupalists ○ Head start on site building ■ More time to innovate ○ Other code more portable ■ CSS, JS, PHP
  • 10. How They Help: Module Maintainers ● Easy to try out ● Faster to incorporate in a site build ● Reference “known good” configuration ○ Helps issue triage
  • 11. How They’re Made ● drupal generate:module ● drupal config:export:content:type ● drupal config:export:view ● Manually add module dependencies to info.yml ● Balance config between install and optional config subdirectories
  • 12. A Little Something Extra ● Submodules for: ○ Formatting ○ Specialized functionality ○ Additional integrations
  • 13. The Existing Arsenal ● Smart Date Starter Kit ● Smart Date Calendar Kit ● Quick Links ● Tasks ● Person
  • 14. Demo Time! Let’s see them in action
  • 15. Try This At Home! ● composer create-project drupal/recommended-project test ● cd test ● lando init --recipe drupal9 --webroot web --name test --source cwd ● lando start ● composer require drush/drush ● lando drush site:install --account-pass=[my_secure_password] --db-url=mysql://drupal9:drupal9@database:3306/drupal9 --site-name="Drupal 9 Demo" -y ● composer require drupal/gin:^3.0@alpha drupal/gin_toolbar:^1.0@beta drupal/admin_toolbar drupal/pathauto ● lando drush theme:enable olivero gin && lando drush cset system.theme default olivero -y && lando drush cset system.theme admin gin -y && lando drush cset gin.settings classic_toolbar 1 -y && lando drush en admin_toolbar admin_toolbar_tools gin_toolbar pathauto -y Requires: ● Composer ● Lando
  • 16. Smart Date Calendar Kit ● Dependencies ○ Smart Date Starter Kit ■ Smart Date ■ Add Content By Bundle ○ Fullcalendar View ● composer require drupal/smart_date_calendar_kit lando drush en smart_date_calendar_kit -y ● Built to work with multivalued and recurring dates ● Multiple views displays connected as tabs
  • 17. Person ● Dependencies ○ Add Content By Bundle ○ Auto EntityLabel ● composer require drupal/person drupal/auto_entitylabel:^3.0@beta lando drush en person_olivero -y ● Manage and display info about people ● View sorts alphabetically by last name, grouped by initial
  • 18. Quick Links ● Dependencies ○ SVG Image Field Media Bundle ■ SVG Image Field ○ Add Content By Bundle ○ Display Link Plus ○ Draggable Views ○ Storage Entities ● composer require drupal/quick_links lando drush en quick_links_olivero -y ● In-context management of home-page links, with icons ● Submodule provides formatting, places home page block
  • 19. Tasks ● Dependencies ○ Flag ○ Add Content By Bundle ○ Display Link Plus ○ Draggable Views ○ Storage Entities ● composer require drupal/tasks drupal/flag:^4.0@beta lando drush en tasks_olivero -y ● Submodule allows for managing the tasks of others ● Submodule provides formatting, places home page block ● Optionally add views_flag_refresh
  • 20. Let’s Get Ambitious More complicated kits
  • 21. Smart Date Registration Kit ● Dependencies ○ Smart Date ○ Add Content By Bundle ○ Field Group ○ Fullcalendar View ○ Inline Entity Form ○ Drupal Commerce ● Paid (or free) event registration, with capacity limits ● Event dates as product variations, to support multiple dates ● Submodule alters the wording in form to create event products
  • 22. Smart Date Registration Kit ● git clone git@git.drupal.org:sandbox/surgemartin-3209977.git smart_date_registration_kit ● composer require drupal/add_content_by_bundle drupal/commerce drupal/field_group drupal/fullcalendar_view drupal/inline_entity_form:^1.0@rc drupal/smart_date ● lando drush en commerce commerce_cart commerce_checkout commerce_price commerce_product ● [create your commerce store, other commerce setup] ● Lando drush en smart_date_registration_kit smart_date_registration_kit_form_tweaks
  • 25. Acquia CMS Places Leaflet View ● Dependencies ○ Acquia CMS Place ■ Acquia CMS Image ■ Field Group ■ Address ■ Geocoder ○ Leaflet Views ■ Leaflet ● Plot Place nodes on a Leaflet-based map ● Attachment to display teasers below the map
  • 26. Acquia CMS Places Leaflet View ● git clone git@git.drupal.org:sandbox/surgemartin-3246619.git acquia_cms_place_leaflet_view ● composer require drupal/leaflet drupal/acquia_cms_place drupal/default_content:^2.0@alpha drupal/entity_clone:^1.0@beta ● lando drush en acquia_cms_place_leaflet_view
  • 29. Acquia CMS An opinionated version of Drupal
  • 30. ● Media Types ○ Acquia CMS Audio ○ Acquia CMS Document ○ Acquia CMS Image ○ Acquia CMS Video ● Miscellaneous ○ Acquia CMS Search ○ Acquia CMS Site Studio A Wealth of Options ● Content Types ○ Acquia CMS Article ○ Acquia CMS Event ○ Acquia CMS Page ○ Acquia CMS Person ○ Acquia CMS Place
  • 32. The Importance of Being Composable ● Maximise your organisation’s ability to build, assemble and reassemble core business elements ● Modular philosophy
  • 33. Agile Web Development By Many Names ● MVP Web Development ○ Get to market as quickly as possible ○ Collect feedback ○ Iterate often ● Lean Startup ● Growth-Driven Design
  • 35. Build-First Development ● For clients that find requirements definitions too abstract, start by showing them basic versions of common website systems ● Easier to understand when seen visually ● Document when accepted
  • 36. Resources! ● Config Kits project page ● Add a Robust Events System to Your Drupal Site in Minutes / DrupalCon North America 2021 ● Acquia CMS makes it easy to harness the power of Drupal ● Broken title in modal dialog when title is a render array