Drupal Planet

My LocalGov Drupal contributions for July 2025

Beautifully crafted digital products and experiences that matter.

Great month this month, tricky questions answered in Slack, via screenshare, and at Tech Group Drop-in. I'm feeling energised, read on, friends ...

I took June off and spent the month in Spain with my family. We had a great time, very relaxing and all work thoughts switched off. Then ... I came back to drowning in a sea of GitHub notifications, so excuse me while I try wade through a month's notifications and respond to what needs to be responded to.

Meetings

  1. Merge Tuesdays: I always enjoy these meetings. Delighted this month to have a new features for responsive tables released for LocalGov Base. And we also merged a PR to remove lots of words from our URL aliases for new sites.
  2. Tech Group Drop-ins: One of these in particular was very interesting, when Bob from SRS Wales came along and instigated a discussion about security. You can read the extensive notes we kept from this. Another really interesting session we had was debugging facets issue with Northumberland Council where facets were working fine in the base theme but not working in the custom theme. Always good fun to work our way through these tricky things.
  3. Tech Governance: These meetings are always an eye-opening in how much effort it takes to run a successful open source community. We spent a lot of time this month discussing supporting more than one version of the base theme at a time (for example when we introduce breaking changes such as moving from flexbox to grid).
  4. Community Meetup: Interesting one this month. Was great to see my work building the Irish Council Planning Notices module being demonstrated.

Code Contributions

  1. I couldn't help myself. Tim in Tipperary County Council made a really cool module for reporting blight in your area by pulling in data from Met.ie. I couldn't help myself from doing a little bit of tidying up and refactoring so the module is easier to install. And then some more refactoring, and then even more refactoring.
  2. It turns out LocalGov Scarfolk has a missing dependency on LocalGov Base if trying to install it on its own. But now there's a PR to fix that.
  3. Something I really enjoy is reviewing and refactoring code. Our elections module is very powerful, but much of the JavaScript in the module did not follow Drupal's coding standards. So I wrote a PR to rewrite it.
  4. I had written a version of a module a number of months back to allow content editors to clone content, with the Replicate module being the base for my work. We decided a few weeks ago that we would use the Replicate UI module as the base instead, so we would then have very little custom code to maintain. So I spent some time removing the code from my original writing of the module and re-wrote the module to use Replicate/Replicate UI as the base.
  5. In an effort to get this module to a 1.0.0 state for an official release, I also wrote a suite of tests for it. Hopefully we'll get those merged soon and the 1.0.0 release made. Update: Reader, it's merged!
  6. And then we moved the project to Drupal.org, so it's one less module we will need to move there when we migrate all projects there.
  7. And now I need to check if the module works for the Microsites Platform, and if not to create a submodule that will sort that out.
  8. I was doing some training sessions with Islington Borough Council recently, and they wanted to see an example of a Drupal module that makes API calls to an external resource. I thought the module I started work on recently for Netcall Converse Queue Data would be a good candidate for this. But the bonus was that I also did some work to refactor the module and use a service and dependency injection to connect to the Netcall API instead of placing this in the .module file.
  9. I rewrote our Grid system recently and am now making a push to use the same system for our other templates that were not part of the original rewrite. E.G. layout paragraph templates use a template from Stable9, but that uses it's own system. To try to have better consistency, I created an issue to get some traction for this, and now have also create a PR to make some movement on it.

Bonus

I had some very nice mentoring sessions/Slack chats with the good folk of North Yorkshire County Council. They are trying to ensure their website is as accessible as possible so we had some chats about the cookies page and overflowing tables on small screens. Which is now fixed from a PR we merged to LocalGov Base.

And then I did the same with some of the Northumberland devs, to try figure out why a Twig Tweak function wouldn't embed a directory search block in a template.

I really enjoy hopping on these quick calls to sort out an issue for a council or agency, whether they are a client or not.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

My LocalGov Drupal contributions for May 2025

Beautifully crafted digital products and experiences that matter.

Great month, lots done, including a new module for Drupal.org - modules_list.

Meetings

I got to lots of meetings this month, all the usual ones - Merge Tuesday, Tech Group Drop-in, etc. Two meetings that stood our for me, however, were the content group session about images in LocalGov Drupal and the Accessibility Awareness Day meetup where I led a breakout room on accessibility testing tools.

I've been really enjoying the Tech Group Drop-in meetings of late. I usually don't have any questions that need answering, but I love being at the meetings to help out others who do have questions that need answering.

One meeting this month that was very productive was the Open Digital Cooperative business development meeting, where we continued working on our 3-year business plan. This month we focussed on competitor analysis and market capture.

Code Contributions

  • A nice little PR to add an author filter to the default /admin/content list.
  • A PR I've been meaning to get around to for a long time, but one that also doesn't excite me is the one to add the linting tools to .ddev commands. Finally, I got around to it and now we can run commands to lint and automatically fix our CSS and JS coding standards. You can do this by ddev stylelint-fix web/modules/contrib/localgov_alert_banner/**/*.css or ddev eslint-js-fix web/themes/contrib/localgov_base for example.
  • And with that done, I got to (hopefully) complete another issue that has been open for longer than I wnated it to be - linting the JS files in LocalGov Base.
  • Apparently tables added through the WYSIWYG breaks content reflow. Well, not if I can help with my nifty PR.
  • After showing that PR for responsive tables off at Tech Group Drop-in, we came to the conclusion that we should do some more work to create a theme setting checkbox so this doesn't affect any existing sites that might already have a custom solution. So then I built that!!!
  • We scoped out a feature to supplement the Media Entity Usage module, so now when you are on the media listing page - /admin/media/ - you can see how many times each media item is being used across your website.
  • One I'm delighted with: our "LocalGov Repos" dashboard now automatically updates every night at 3am.
  • I got a nice little accessibility issue (hopefully) fixed for Microsites directory channel search/facets blocks.
  • I read a very interesting article from Andy Bell of Picalilli about styling alt text on images. It was so interesting, I created a pull request to style the alt text of the images of LocalGov Base.
  • A little fix and another similar little fix to make LocalGov Microsites menus more accessible.
  • I created - and we released - a new version of our grid system, but it broke existing sites that had created overrides, so we reverted it on the 1.x branch and released it as a new feature on the 2.x branch.

LocalGov Telemetry

I got started this month on a "LocalGov Telemetry" module. The point of this is so we can have some data on how many sites are using what modules/features. This might make it easier to deprecate features and/or remove them if they are not being used.

And after starting it, I realised others - besides LocalGov Drupal users - might like to use this, so I abandoned LocalGov Telemetry and created Modules List on Drupal.org. We can then use Modules List as the basis for LocalGov Telemetry.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

Need LocalGov Drupal Training? Here's what you need to consider.

The Confident Logo, Drupal Agency led by Mark Conroy

Here's a brief outline of some topics to consider if you need to upskill your team for LocalGov Drupal development.

Training Your Developers for LocalGov Drupal

As a highly-opinionated CMS, implementing LocalGov Drupal successfully requires developers to have a good grasp of specific concepts and tools crucial for managing and optimizing your site. Below is a loose outline focused on guiding developer training to leverage LocalGov Drupal effectively.

Drupal

Local Development with DDEV

DDEV is a popular local development environment setup for Drupal. Trainers should emphasize the installation process, benefits of containerization, and the simplification of development environments, ensuring a consistent developer experience across different machines.

Basic Drupal Concepts

Developers need to understand Drupal's core concepts such as nodes, terms, blocks, and views. An understanding of config management (it's easy once you get your head around it) is also necessary.

Site Building

Site building involves creating content types, lists, and page components. Training should offer hands-on experience in using Drupal's admin interface to structure content types and page components (using paragraphs module in LocalGov Drupal) and build dynamic pages and lists efficiently.

Extending Drupal

Drupal’s extensibility through modules is a key feature. Developers should know the difference between when to use a module on Drupal.org and when to write a custom module. Training should include creating simple custom modules and using contributed modules to avoid unnecessary custom code.

Theming Drupal

A comprehensive understanding of the libraries system, CSS system, JavaScript system, and Twig templates is necessary for theming. As well as that, developers should have an understanding of frontend PHP - preprocess functions, views pre-render functions, etc. Trainers should focus on creating custom themes and understanding best practices for designing maintainable and performance-optimized themes. We have a really nice theme generator for LocalGov Drupal.

LocalGov Drupal

Features Out of the Box

LocalGov Drupal offers specific features that cater to local government needs. Some of these include directrories, guides, step-by-steps, news, events, and of course the services suite. Training sessions should cover these built-in features, showcasing how they can save time and increase efficiency in project delivery.

Building and Interaction

Understanding how features are built and interact is crucial. Developers should learn how different components connect, ensuring seamless integration for user-friendly interfaces and functionality.

Theme System Design

The theme system in LocalGov Drupal is designed to be flexible. You can get lots done by writing only a small amount of code, but knowing all the built-in features to allow you to do this takes time to master. Developers should be trained on adapting the generated theme to align with their branding while maintaining adherence to standards such as for accessibility, performance, etc.

Maintainable Site/Theme Development

Building a site/theme maintainably involves using best practices in development and ongoing support. Training should include strategies for creating clean, modular code that allows for future enhancements.

DevOps

Deployment Processes

Effective deployment processes are essential for smooth transitions from development to production. Developers need to be familiar with tools and techniques for deploying changes safely and efficiently.

Backup Strategy

A robust backup strategy ensures data integrity and quick recovery in emergencies. Training should include setting up regular backups of content and configurations to minimize data loss risks.

Adding New Features in the Future

Planning for future growth includes understanding how to integrate new features without disrupting existing functionality. Training should cover best practices in version control, coding standards, and testing to ensure sustainability and scalability.

Can't wait until you find your perfect training partner?

Here's a few links to get you started in the meantime.

Investing in structured training for developers to work with LocalGov Drupal ensures the creation of sustainable, adaptable, and powerful websites that can effectively serve the needs of local governments.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

My LocalGov Drupal contributions for week-ending April 18th, 2025

Beautifully crafted digital products and experiences that matter.

A slightly quieter week than I would have liked, but you can't get everything done all the time. That said, I worked on two pretty large issues - Font Awesome Icons in LocalGov Base and config setting for JS mobile breakpoint.

Meetings and Meet-ups

  1. Merge Tuesday: Y'all'll be glad to hear LocalGov Publications Importer is coming along very well, thanks to some great work from Andy and Rupert.

Code Contributions

  1. Nik opened an interesting issue last week with Gin/Gin Toolbar CSS being called on the frontend when opening things in modals, but not being available since we are not in the backend of the website. I'm not fully sure of the solution for this just yet, but I've added to the conversation an idea that I think will allow us to use the needed styles without doing much work (or future maintenance). Win!
  2. We have a small set of icons in our localgov_base theme. But everytime I am implementing a custom theme, I need to use different icons (e.g. X instead of Twitter or a new social media platform has become popular). I usually try to have these contributed back to LocalGov Base so everyone can use them. Then I thought: "why not put the whole of font-awesome into LocalGov Base?" so we have a really good library of available icons. So that's what I did in this PR.
  3. Here's a juicy one: at the moment our header.js file presumes all sites will use 768px as the breakpoint for when mobile menus, etc kick in. We now have a PR to create a theme setting, so individual sites can decide at what breakpoint they want the mobile JS items to kick in so they won't need to override the whole of header.js.
  4. Live previews module is almost ready for the big time, and now has some tests available as well.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

My LocalGov Drupal contributions for week-ending April 11th, 2025

Beautifully crafted digital products and experiences that matter.

Open source, sometimes you keep up with the notifications, and sometimes the notifications keep up with you.

Recently, I've only been able to get around to about a day a week of LocalGov Drupal contributions. Which has meant sacrificing some of these update blog posts in order to get more PRs or other work done. Let's try get back on track.

Meetings and Meet-ups

  1. Merge Tuesday: This was got very into the details of Drupal and Single-directory Components, and we now, thankfully, have an SDC for the node--full.html.twig file.
  2. ODC BizDev: A short but productive meeting about a business plan for LGD in the age of LGR.
  3. Tech Governance: A really interesting chat about migrating our code to Drupal.org, and also recreating LocalGov Base components using Single-directory Components.

Code Contributions

  1. I've had a PR open for a while for a better design for the contact component by default. I got some more work done on that, and I think it's now ready for approval.
  2. We are pushing hard to get the Live Previews module ready for LocalGov Drupal. A bug got reported last week concerning adding/editing the logo from within the Live Preview interface. I have a PR open to remove the logo field from there, I can't imagine people using that feature to change their logo, and if we need it we can add it back in later.
  3. The publications cover page has a listing on publication items with an icon (SVG) and the title of the linked document. SilkTide is reporting that there is no text content in the SVG which is wrapped in a <a> tag. But we have aria-hidden="true" set for that SVG, since the next item is also a link - this time a text link linking to the document. I wonder if this is just SilkTide reporting false positives? Feel free to join the conversation.
  4. The aria attributes on the mobile menu for microsites seem to have been giving some issues. Menus are very tricky things to get right, espeically when you have multi-level menus. We have a PR now that I hope will fix any aria-* issues in the microsites mobile menu.
  5. I got around to some other small fixes for microsites such as 'Focus colour for off-canvas menu items'.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

My LocalGov Drupal contributions for week-ending March 14th, 2025

Beautifully crafted digital products and experiences that matter.

I've been busy on other work since early January, so great to get back to contributing to LocalGov Drupal.

Meetings and Meet-ups

  1. Merge Tuesday: Just a few people at the MT call today, but we got a lot of Drupal 11 compatibility issues looked at, which is was.
  2. Content Group: Fantastic meeting looking at publication workflows and using workspaces in Drupal.
  3. Tech Group Drop-in: Some very interesting questions this week. I especially enjoyed talking about adding images to taxonomy terms.

Code Contributions

  1. We have lots of PRs open for coding standards, especially now since we have added CSS and JS linting tools to our set up. I got through reviewing lots of these, so hopefully those test failures will be simple one-off failures and not show up again.
  2. We released a cool feature for guides a couple of weeks ago, where you now have a theme setting to set the guide title as a "stacked heading", pulling in the title of the Guide Overview and the Guide Page. When used, however, it means that the guide title is then placed twice on the page. I got a snappy PR put together to fix that.
  3. After adding some new settings to LocalGov Base a few weeks ago, we noticed some issues where our code expected, for example, TRUE as a result, but the subtheme config outputted 1. I've created a PR now so all themes generated from the subtheme generator, will automatically inherit the settings from LocalGov Base.
  4. I got some nice work done on our 'Netcall Converse Queue Data' module. The point of the module is to bring data from Netcall's Converse  call centre system into the admin/content area of a Drupal site so content designers can see what topics people are calling their call centres about. And then write content on those topics. Currently, we're just working with dummy data, but will hopefully connect it up to the Netcall API very soon. I've a demo version of the module on Drupal.org.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

Be the best in the world

The Confident Logo, Drupal Agency led by Mark Conroy

I was asked via a private message on LinkedIn: What word of advice would you give to help me build a successful agency ?

My advice?

Be the best at something. It can be something small, but make sure there is no one in the world better than you at it. 

In my case, I am the best in the world at the frontend of LocalGov Drupal (LGD). I wrote most of the frontend system for it and continue to maintain it. People trust me when it comes to questions and consultancy about the frontend of LGD.

I know the above might sound arrogant, depending on how you read it. It's not arrogant. I have deliberately set out to find a niche that I can promote myself within. And it's taken me a long time to be able to have the confidence to say "I am the best in the world at X".

  • I'm not the best in the world at Drupal.
  • I'm not the best in the world at frontend development.
  • I'm not the best in the world at LocalGov Drupal in general (though I am pretty high up there I think)

But ... no one knows the frontend system of LocalGov Drupal like I do. It's what I call a niche of a niche of a niche - Drupal => LocalGov Drupal => Frontend of LocalGov Drupal.

That's my advice, find a niche of a niche of a niche and be the best in the world.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

My LocalGov Drupal contributions for week-ending December 20th, 2024

Beautifully crafted digital products and experiences that matter.

Rewriting a lot of JavaScript and creating a contact component.

Need LocalGov Drupal services? Give Big Blue Door a shout.

Meetings and Meet-ups

  1. Merge Tuesdays: I got to two Merge Tuesdays. The first was a great MT. We made progress on - and an approach to getting - dropzone.js added to our default project set up. The second one we got lots of small updates to LocalGov Base merged.
  2. NetCall working group: We regular monthly NetCall catch up where we discuss how we can continue to integrate NetCall's great suite of products with LocalGov Drupal.
  3. Community Meetup: This month, the always-wonderful Rachel Lawson joined us to talk about "fostering community" in open source projects.
  4. Tech Group Drop-in: I only got to one of these meetings this month, between travelling, being sick, and Christmas holidays. It's great to see more and more people joining each week and getting help with any LGD quetions they have. This week we spent some time talking about icons, but most of the time debugging some failing JavaScript tests in the LocalGov Alert Banner module.

Code Contributions

  1. Now that we have our JS and CSS code being linted as part of our CI:CD process (thanks Lee), it has shown up lots of coding standards in our JS files. I took it upon me to fix all of these in the LocalGov Base theme. I thought it would take 30 minutes, but it took over 2 hours, just for the base them.
    1. Fix eslint issues in sticky-header.js
    2. Fix eslint issues in guides.js
    3. Fix eslint issues in subsites-menu.js
    4. Fix eslint issues in add-to-calendar.js
    5. Fix eslint issues in header.js
    6. Fix eslint issues in back-to-top.js
  2. I had planned on doing all the JS files across the whole platform, but honestly, I can think of more exciting things to work on in my wrap up before the Christmas break.
  3. HTML 5 validation is not very good. Drupal's form validation is much better. Here's a PR to disable HTML 5 form validation so Drupal's can be used instead.
  4. There was an issue opened, fixed, and then closed seeking to have a 'Stacked header' pattern for Guides, like the NHS has - basically a title and subtitle wrapped inside the same container. Then we realised no one knows about it, and if they do they need custom code to implement it. So I created a PR in the LocalGov Base repo so site owners could easily turn it on/off for their guides. But then I realised ... guides doesn't have a subtitle field. So I now have lots of more questions and a PR left in WIP until we get this sorted.
  5. We opened an issue in December 2020 (yes, 4 years ago) to say the contact component has no styling, which means each council must individually style it. This costs money, so we now have a PR to make the contact component look good. If you want to amend it, you can but at least out of the box we have a pretty contact component.

Happy Christmas

Happy Christmas everyone! See you all bright and early next year.

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

Introducing the New ChatGPT-Powered Drupal Answers Portal

The Confident Logo, Drupal Agency led by Mark Conroy

Your Go-To Source for Drupal Answers, direct from trusted sources only.

Exciting news for the Drupal community! The launch of a new ChatGPT-powered portal promises to revolutionize how Drupal-related queries are addressed. Designed specifically to assist with navigating the complexities of Drupal's extensive API and documentation, this tool is set to streamline the information retrieval process, making it more accessible and user-friendly.

What Does the Portal Offer?

The new portal leverages the advanced capabilities of ChatGPT to deliver precise answers to Drupal-related inquiries. By focusing on trusted information sources, it ensures reliability and accuracy, bypassing the often fragmented and overwhelming experience of manually sifting through numerous pages of documentation.

Curated Information Sources

The portal exclusively searches through highly respected Drupal resources, including:

This selective approach ensures that responses are based on authoritative content, avoiding the pitfalls of incorrect information that may be found elsewhere on the web.

Targeting Drupal 10 and 11

The portal is configured to prioritize responses for Drupal versions 10 and 11. However, it can also provide information on older versions upon request, ensuring it caters to the needs of various Drupal developers, whether they are working on the latest or legacy systems.

How Will It Benefit Developers?

  • Efficiency: Save time by getting concise and relevant answers without having to navigate through extensive documentation.
  • Dependability: Rely on information sourced from authoritative Drupal websites.
  • User-Friendly: Enjoy an intuitive interface that focuses on delivering straightforward solutions.

Get Started Today!

The launch of this portal represents a significant advancement in how Drupal knowledge is accessed and utilized. Whether you're a novice or an experienced developer, this tool is designed to enhance your productivity and understanding of Drupal.

Visit the portal and experience the future of Drupal information retrieval!

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).

My LocalGov Drupal contributions for week-ending November 29nd, 2024

Beautifully crafted digital products and experiences that matter.

This week I fixed lots and lots of accessibility issues.

Need LocalGov Drupal services? Give Big Blue Door a shout.

Meetings and Meet-ups

  1. Tech Group Drop-in: This was the only meeting I got to attend this week, but WHITE SMOKE we got the Single-Directory Components PR merged. Woo Hoo!!!

Code Contributions

  1. This was another one of those weeks where I did a lot of work on triaging issues, most notably calming people down when getting stressed/excited about our PR to start using Single-Directory Components. It's a big change and very much unfamiliar territory for a lot of people, so we need to take it easy when introducing it.
  2. Our Primary Banner has a link field, and if you put a link into it will wrap all the content of the banner in an <a> tag. This is an accessibility issue as reported by Maria, especially if there is a lot of content in the banner - the link text becomes meaningless to people with assistive technologies. I created a PR in LocalGov base to wrap only the banner title in the link, and a corresponding PR in LocalGov Paragraphs to update the help text in the link field to reflect the new change.
  3. I managed to get through every issue in LocalGov Base that was tagged with accessibility and either fix it or move the conversation along so it can get fixed.
  4. One nice fix for this was an issue opened by Keelan nearly two years ago - sorry I only got around to it now, Keelan - to fix the focus states for service status items.
  5. When this far, I decided "why not look at every accessibility issue across the whole of LocalGov Drupal?". So I did!
  6. This led to a nice issue to add the language widget to ckEditor. This then allows editors to select parts of their content that is in a different language to the rest of the page to have the language for that selection set. E.g. if you say "Bon Voyage!" in a blog post, you can mark "Bon Voyage" as being French.
  7. Next up, I worked on an issue to set Full Page Alert Banner field labels to "Hidden" as those labels were just adding extra noise to people using screenreaders and not conveying extra information.
  8. We had multiple issues with the title on the Full Page Alert Banner. While working on a PR to fix some of those issues, I also took the time to rewrite the Full Page Alert Banner template and some of the CSS to bring it up to more modern standards.
  9. We're told that a lot of councils are setting their Guides Navigation to a vertical system instead of the default column system we have. This was marked as an accessibility issue. We now have two PRs to add a "Layout" field so editors can choose on a guide-by-guide basis what layout they want for their guide nav.
    1. LocalGov Guides PR to add the new field and update the block config.
    2. LocalGov Base PR to add the necessary CSS

Join the "Something nice ..." newsletter

The full title is "Something nice, something quirky, something else".

I send an email once a week with something nice, something quirky, and something else that I think is interesting (all with a web development theme, of course).