Skip to main content
Start of main content.

Drupal Development

An abstract image of the UX process

How we built protected search in Drupal using OpenSearch

Recently, we worked on a project for Catholic Schools NSW, where one of the key requirements was controlling access to content. Some pages and resources needed to be available only to authenticated users, while the rest of the site remained publicly accessible. 

That requirement didn’t stop at the website itself, but it also extended to search. Authenticated users needed to see protected content in their results, while anonymous visitors should only see public content. 

This presented an interesting challenge. In a decoupled architecture, search doesn’t automatically inherit Drupal’s access controls, so we needed a way to make search permission-aware without compromising performance. We used OpenSearch to build a solution that ensured users only saw content they were authorised to access, while keeping the search experience seamless. 

Michael's post

Our contributions to Drupal 11.4 - and the 11.x journey so far

Drupal 11.4 is here. Several features landing in this cycle, and across the broader 11.x series, trace back to ideas we explored in contrib first. Worth noting too: Drupal major releases don't introduce new features. The real architectural work happens in the minors, and by the time 12.0 arrives, much of it will already be available, paving the way for the next series of improvements in 12.x.

Here's what we've been working on, and what else is worth knowing about.

Michael's blogpost

Safely extending Drupal plugin classes without fear of constructor changes (2026 edition)

Way back in 2017, Lee “larowlan” Rowlands penned what would become one of the most popular blog posts on this site. I’m of course talking about “Safely extending Drupal 8 plugin classes without fear of constructor changes”

This well-read article, inspired by Thomas Seidl of Search API fame, has become somewhat of a reference piece, frequently cited in: 

As of Drupal 11.4, there is a new approach using attributes that simplifies this further. So, I thought it would be fun to piggyback off Lee's success prudent to update the original post so modern developers (both human and robots) are in the loop.

But first, a quick recap of how dependency injection has evolved in Symfony and Drupal over the years. You can skip to the end if you’re not interested.

Cancer Australia + GovCMS blogpost

Turbo-charging Drupal with GovCMS PaaS

Together with Paper Moose, we teamed up with Cancer Australia to rebuild their consolidated website on GovCMS PaaS. This was our first live Drupal 11 website project. 

Learn how we built our most modern website to date with GovCMS.

Accessibility beyond WCAG

Accessibility beyond WCAG

Accessibility goes beyond compliance: it’s not about robots reading your site, but about people being able to use it with ease.

Tina Reymann headshot
Tina ReymannFront end Developer