Blog
Insights &
inspiration
Thoughts on design, development, and building digital experiences that matter.
Moving a Licence Sync from HubSpot to Brevo
A software client sells licences through Stripe, with each purchase recorded in their CRM by a small webhook script. …
A Trademark Notice Over a Treatment Name
An aesthetics clinic received a trademark infringement notice from a brand protection firm. The issue was the name of a …
Putting a Website on a USB Key
Not every website needs a server. An organisation marking a historic anniversary wanted its WordPress site available …
Why Your Google Ads Conversions Might Be Too Good to Be True
A tour company’s Google Ads account was reporting very strong conversion numbers, which didn’t match the …
The Domain Nobody Had Touched Since 2010
A communications company received an alert from their host saying their .ie domain wasn’t resolving. Their .com …
A Search Box for Documents Buried in Accordions
An industrial supplier had a large library of technical documents, including datasheets and certificates, spread across …
When a Caching Plugin Takes the Whole Site Down
Caching plugins are supposed to make sites faster. For one WooCommerce client, activating a popular premium caching …
When "Normal" Visitors Are Actually Bots
An online jewellery retailer’s host kept flagging CPU spikes on their WooCommerce store. The usual fixes were …
Cleaning Up After a Spam Injection Hack
A healthcare practice came to us after finding hundreds of junk URLs appearing under their domain in Google. A …
Lovable to Wordpress
A few clients have come to me with UI or designs that they generated in Lovable, a snazzy app generator. Using just …
Manually and selectively downsizing wordpress images with XNVIEW
Okay so you might need to do this from time to time, sometimes from a need to reduce filesize/hosting storage. Instead …
Sass-loader headache in Nuxt
Spent a half hour on the forums trying to solve this one the other day. Then - classic - I forgot what the solution was …