skilldlabs / druxxy
Drupal distribution focused on page building, contributor experience and a strict separation of Drupal content and Drupal configuration for streamlined deployments.
Requires
- composer/installers: ^1.9 || ^2.0
- cweagans/composer-patches: ^1.7
- drupal/big_pipe_sessionless: ^2.0
- drupal/block_content_permissions: ^1.11
- drupal/coffee: ^1.3
- drupal/config_override_warn: ^1.4
- drupal/core-recommended: ^10.6
- drupal/custom_pub: ^1.0
- drupal/file_entity: dev-2.x
- drupal/file_mdm: ^3.1
- drupal/focal_point: ^2.0
- drupal/formblock: ^2.0@beta
- drupal/gin: ^4.0
- drupal/google_tag: ^2.0
- drupal/imagemagick: ^3.7
- drupal/layout_builder_modal: ^1.1
- drupal/layout_builder_restrictions: ^2.7
- drupal/layout_library: ^1.0@beta
- drupal/layout_paragraphs: ^2.0
- drupal/lb_ux: 1.x@dev
- drupal/log_stdout: ^1.5
- drupal/manage_display: ^2.0@beta
- drupal/menu_admin_per_menu: ^1.1
- drupal/menu_link_attributes: ^1.1
- drupal/page_manager: ^4.0@beta
- drupal/panels: ^4.7
- drupal/panels_everywhere: ^4.0@beta
- drupal/paragraphs: ^1.11
- drupal/password_policy: ^4.0
- drupal/pathauto: ^1.8
- drupal/private_files_download_permission: ^3.1
- drupal/rabbit_hole: ^1.0.0-beta7
- drupal/redirect: ^1.6
- drupal/remove_http_headers: ^1.0 || ^2.0
- drupal/role_delegation: ^1.5
- drupal/seckit: ^2.0
- drupal/sophron: ^2.0
- drupal/svg_image: ^3.2
- drupal/symfony_mailer: ^1.6
- drupal/telephone_validation: ^2.4
- drupal/token: ^1
- drupal/username_enumeration_prevention: ^1.1
- drupal/userprotect: ^1.3
- drupal/views_bulk_edit: ^3
- drupal/views_bulk_operations: ^4.2
- drupal/webform: ^6.1
Conflicts
This package is auto-updated.
Last update: 2026-06-22 15:32:21 UTC
README
Previously known as "sdd" (Skilld Drupal Development installation profile).
Druxxy is a Drupal 10 distribution (installation profile) focused on page building, contributor experience, and a strict separation of Drupal content and Drupal configuration for streamlined, repeatable deployments.
It ships a curated set of contrib modules pre-wired and pre-configured so a new site starts with a working page-building stack and sensible security defaults out of the box.
Highlights
- Page building — Layout Builder driven by Page Manager + Panels Everywhere, with Layout Paragraphs, a Layout Library, and Layout Builder UX/restriction tooling for editors.
- Contributor experience — Gin admin theme and toolbar, role delegation, per-menu administration, and a focused editorial role.
- Content/config separation — behaviour lives in exported YAML configuration (under
config/), keeping editorial content and site configuration cleanly apart for clean deploys. - Security & ops defaults — SecKit, username-enumeration prevention, user protection, password policy, private file download permission, big_pipe (sessionless), and stdout logging for containerised environments — all enabled and configured.
- Media & images — media library, focal point cropping, SVG support, and ImageMagick/ Sophron image toolkit.
- Multilingual — language config import at install time, adapted from
multilingual_demo.
Requirements
- Drupal core
^10.6(installed via Composer; pulled in by this profile). - PHP and extensions per the targeted Drupal core release.
- Composer 2, with the
composer/installersandcweagans/composer-patchesplugins allowed (the profile applies several core/contrib patches — seecomposer.json→extra.patches).
Installation
Druxxy is a Composer package (skilldlabs/druxxy, type drupal-profile); it is not a
runnable site on its own. Require it into a Drupal codebase, then install a site with it.
# In a Drupal project (e.g. created from drupal/recommended-project) composer require skilldlabs/druxxy # Install a site using the profile vendor/bin/drush site:install druxxy
Because the profile applies patches, ensure your project's
composer.jsonallows thecweagans/composer-patchesplugin (config.allow-plugins). A failing patch abortscomposer install.
What the install does
- Assigns user 1 the
sysadminrole and grants authenticated users access to shortcuts. - Imports per-language configuration overrides last in the install sequence.
- Applies the distribution's exported configuration: one
basic_pagenode type;media/wysiwyg/site_template_blockblock types;media/wysiwygparagraph types;audio/document/image/remote_video/videomedia types; acategorytaxonomy; thesysadminandcontributorroles; and the Page Manager / Panels Everywhere page-building shell (home, contact, node view, and 403/404 pages).
Working on the distribution
Almost all behaviour is configuration, not PHP. To change what the distribution does, edit or
add YAML under config/ (config/install is applied unconditionally; config/optional only
when its dependencies are met). When harvesting config from a running site, strip
site-specific keys (uuid: and the _core: block) so it stays portable. Adding a module
requires updating both composer.json (require) and druxxy.info.yml (dependencies).
See CLAUDE.md for a deeper architecture overview, and PLAN.md /
BACKLOG.md / TODO.md for the roadmap and outstanding work.
Continuous integration
The test workflow validates composer.json, lints PHP, and
runs an end-to-end install smoke test (drush site:install druxxy) on every push and pull
request.
License
MIT — see LICENSE.