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.
- 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.
- 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).
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 druxxyBecause the profile applies patches, ensure your project's
composer.jsonallows thecweagans/composer-patchesplugin (config.allow-plugins). A failing patch abortscomposer install.
- 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).
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.
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.
MIT — see LICENSE.