Thoughts on Tech, Business, and the Digital Ecosphere

Insights span technical, professional, educational, and opinion-driven perspectives; drawn from decades of hands-on experience building and scaling digital solutions.

Just because you can build it doesn't mean you should

Advice

Building software is cheap now. Which means it's never been easier to spend good money building the wrong thing.

build vs buy · software for small business · custom software · when not to build · SME software · off-the-shelf vs custom · hiring a developer · software costs

Vibe coding vs knowing the vibe

Opinion

Vibe coding will build you something that works. It won't tell you if it was the right thing to build.

vibe coding · technical judgement · framework choice · AI coding · Laravel · Postgres · refactoring · technical debt

That cheap WordPress theme is going to cost you far more than you paid for it

Opinion

Buying a £49 theme and bolting plugins onto it looks cheap upfront. Over three years it usually costs a good deal more, and you rarely see it coming until something breaks.

WordPress · themes · plugins · maintenance · technical debt · hiring a developer · web development

Setting up my own GitLab CI/CD runner

Explainer

I was shown CI/CD back in 2018 and only got round to setting up my own GitLab runner fairly recently. Here's how it works, what a runner actually is, and the SSH-key snag that had me stuck for ages.

GitLab · CI/CD · runners · deployment · self-hosting · DevOps · SSH · automation

MB/s vs Mbps: why your downloads feel slow

Explainer

Your broadband's sold in Mbps, your downloads show up in MB/s, and there are 8 bits in a byte. That factor of 8 is why a "fast" line can look eight times slower than the box promised.

Mbps · MB/s · internet speed · broadband speed · download speed · megabits vs megabytes · bandwidth · networking

I broke the mobile layout on my own site, and a stranger caught it before I did

Opinion

I updated a theme on this site and quietly broke the mobile layout for every phone user. A stranger caught it before I did, and I do this for a living. Here's what skipping testing actually costs you.

testing · WordPress · child theme · mobile · regression · rollback

How I deploy without Git on the server

Explainer

I used to pull changes straight onto the live server. It worked, but it was overhead I didn't need. Here's the cleaner way I deploy now, and why there's always a way back if a build goes wrong.

deployment · Git · CI/CD · rollback · branching · staging · SFTP · DevOps

Homebrew Dynamic DNS

Explainer

I run a GitLab server from home, which is cheap right up until my home IP changes and I can't reach it. Here's the bash script I use to keep DigitalOcean's DNS pointed at it, and how I finally got it updating itself.

dynamic dns · bash · DigitalOcean · DNS · self-hosting · cron · SysAdmin · GitLab

Why your web server can't write to its files

Explainer

Your media library won't upload and the error says permission denied. It's almost always ownership and file permissions. Here's what www-data, 755 and 644 mean, in plain terms, and how to get them right.

file permissions · www-data · chmod · chown · permission denied · Linux · Apache · WordPress · LAMP

Regaining Access to DigitalOcean Droplets

Explainer

I reinstalled my machine and wiped the SSH keys to my own servers. Here's the calm way back into a DigitalOcean Droplet when the key's gone, updated for how the control panel and modern Ubuntu work now.

DigitalOcean · SSH keys · recovery consoles · Droplets · SysAdmin · password authentication · Ubuntu · server security