Drupal

Drupal module & theme development

Drupal development for organisations whose content, permissions or integrations are too structured for a simpler platform—custom modules, custom themes and the migrations between versions that tend to get postponed.

Custom modules and themes for content models that are genuinely complex.

Custom module development

Behaviour Drupal does not ship with, written as a module that upgrades cleanly rather than as patches.

Custom theme development

A front end built against your design system and Drupal’s render pipeline, not retrofitted onto a base theme.

Migration and version upgrades

Moving content and functionality between Drupal versions, or onto Drupal from something else, with the content model examined rather than copied.

Integration with external systems

Connecting Drupal to the directories, CRMs and internal services that hold the rest of the organisation’s data.

When it fits

  • The content model is the hard part, and the site is downstream of it.
  • Editorial permissions have to reflect a real organisational structure.
  • An upgrade has been deferred because nobody is sure what will break.
  • Several internal systems need to meet in one place.

How it is built

  • Configuration kept in code and deployed, not clicked into production.
  • Drupal API and coding standards, so the work survives a contributor change.
  • Custom modules scoped narrowly enough to be removed later without unpicking the site.
  • Upgrade paths considered while building, not discovered at the next major version.

Not this

  • Content entry and day-to-day editorial work
  • Installing contributed modules with no configuration
  • Hosting-only engagements

Do you work with contributed modules or only custom code?

Contributed first. Custom code is worth writing when nothing maintained already does the job, or when a contributed module would need more configuration than the behaviour is worth.

Can you take on a stalled upgrade?

Yes, and it usually starts with an assessment rather than a quote: what is custom, what is contributed, and what is no longer needed at all.

How is the work handed over?

As source, with configuration in code and documentation covering the decisions a future maintainer would otherwise have to reverse-engineer.

Take the session when the work still needs scoping. Send the brief when you already know what needs building.

A clear next step

Start with the decision in front of you.

Get preliminary direction first, or book a focused session when the question is ready.