From content publisher to integration platform
Custom modules lift a site from a publisher of content to a platform that connects with other systems and meets the needs of your users. We're always looking for ways to join Drupal up with your whole digital ecosystem.
Our developers are active in the Drupal community, contributing to core and to contributed projects. We maintain a number of open-source modules for personalisation, AI, and integration with recommendation and search platforms.
What you get:
- Your requirements, met. Custom business logic for problems unique to your organisation.
- Connected systems. Drupal working with your CRM, identity provider, and other platforms.
- Code that's easy to keep. Written to Drupal standards and tested, so it's simpler to upgrade and hand over.
Our approach to module development
Check what already exists
We look at the contributed module ecosystem first. Custom code is for genuinely unique business logic, systems without an existing connector, and performance-critical features.
Build to Drupal standards
Custom modules follow Drupal coding standards, use core APIs, and include tests. That makes them easier to upgrade across Drupal versions, easier to hand over, and less likely to become a security risk.
Test through the same pipeline
Custom code goes through the same continuous integration and automated testing as the rest of your site.
Contribute back where it's generic
Where functionality isn't specific to a client, we contribute it to the Drupal community.
Examples of what we've built
- Deep integration with identity providers
- Two-way integration with CRMs
- Enriched profile data for anonymous visitors
- Content created from REST and SOAP endpoints
- Rich client-side applications, including journeys, maps, and decision trees
- Advanced permissions
- Advanced content workflows and notifications
- Payments through the NSW Customer Payment Platform, linked to a CRM
Frequently asked questions
Drupal's contributed module ecosystem covers most common needs, so custom development should be reserved for genuinely unique business logic, integrations with systems that don't have an existing connector, or performance-critical functionality. Reaching for custom code before checking the contrib ecosystem tends to create unnecessary long-term maintenance burden.
Custom code that ignores Drupal coding standards, lacks tests, or bypasses core APIs becomes a maintenance liability. It's harder to upgrade across Drupal versions, harder to hand over to a new support provider, and a common source of security vulnerabilities if it isn't kept current. That's why coding standards and continuous integration testing matter as much for custom modules as for the rest of your site.
Where the functionality is generic rather than client-specific, yes. It's part of how the Drupal ecosystem sustains itself, and teams that contribute tend to write higher-quality custom code as a side effect.
We maintain a portfolio of open-source modules, listed on our drupal.org profile. Key examples:
- Augmentor: adds AI services to the editing experience, with submodules for OpenAI, NLP Cloud, and Google Cloud Vision.
- Convivial Core, Convivial Content, Convivial Enricher, and Convivial Profiler: the building blocks of Convivial's personalisation. Enricher adds to user profiles from a CRM or other backend source, and Profiler tracks visitor interests in the browser.
- Entity Class Formatter: lets editors apply CSS classes to any content item without custom fields.
- Modifiers/Modifiers Pack: lets editors apply colours, backgrounds, spacing, and animated effects to paragraphs and sections without a developer.
Case studies
Latest insights