Using Toolbelt instead of Jetpack on WordPress

A screenshot of the Toolbelt plugin in the WordPress plugin directory

A couple of weeks ago, I stopped using the Jetpack plugin for WordPress, and switched to Toolbelt instead.

Jetpack is one of the most popular WordPress plugins and is developed by Automattic, so ditching it has been a big step. Here’s my thinking behind my decision.

What’s wrong with Jetpack?

Jetpack is a big plugin. This is because it does a lot of things, but it can add some big overheads to your WordPress install. Whilst more recently some features have been made available as individual plugins (such as Jetpack Security), many still use the large monolithic plugin.

It relies on services provided by, so there’s background web traffic going there. That can have an impact on your web site’s privacy policy, especially across international boundaries. And Automattic has been in talks with OpenAI and MidJourney about using content from and Tumblr to train AI models. Whilst there’s an opt-out, this really should have been opt-in. My content is licensed under Creative Commons, and I doubt these models respect licensing.

I’m also not keen on how Jetpack inserts adverts for its premium services into my WordPress install.

More disconcertingly, there’s been a recent incident of transphobia that involved a Tumblr user and Matt Mullenweg, Automattic’s CEO. It’s somewhat reminiscent of the Twitter Joke Trial, where an amusing but poorly thought out post got the user into trouble, and Matt waded in. I’ve generally been a supporter of Matt but this incident made me decidedly uneasy. I’m a member of the LGBTQ+ community and try to be a good ally to my trans friends, and I don’t want to support a company which is hostile to trans people.

What is Toolbelt?

Toolbelt is essentially a replacement for Jetpack. Like Jetpack, it offers a wide range of features in a modular way. By default, they’re all switched off, so you just need to enable the ones you want. There’s some overlap with Jetpack, but Toolbelt offers some additional features that Jetpack doesn’t have.

Toolbelt is much more lightweight; since installing it, my WordPress installation feels faster. I haven’t been able to quantify improvements, but pages should load quicker. Hopefully, WordPress will use less server resources too now. It does mean that some things look a little different, as I’m using Toolbelt’s social sharing icons and related posts, rather than those from Jetpack.

For the time being, this means new posts won’t be automatically shared to my Mastodon profile (and occasionally LinkedIn) until I install a different plugin to enable this. And I am currently still using Akismet for spam protection, although Toolbelt offers a comment spam module.

The only major caveat to Toolbelt is that it’s not currently in active development, although it says it has been tested with current versions of WordPress (at time of writing). Maybe it’ll get renewed attention.

WordPress backups with UpdraftPlus

A meme featuring Anakin and Padme from the Star Wars films. Anakin is saying 'I've reinstated my WordPress install after everything got wiped' and Padme says 'so you've got backups now right?'

It’s a little while until World Backup Day on the 31st March, but I’ve set up UpdraftPlus to create automatic backups of my WordPress installation to my Dropbox account.

It’s a straightforward plugin to set up. You install it from the WordPress plugin directory, select your cloud storage provider, choose what you want to backup, and then run it. If it all goes well, you can then set a schedule for automated backups.

The free version offers Dropbox, Google Drive, Amazon S3 and some others, and you can also upload your backups to any FTP server, albeit over a non-secure connection. If you want to use WebDAV, SFTP, SCP, Microsoft OneDrive or UpdraftPlus’ own service, then you’ll need a premium account. At present, it’s £54 per year for up to two personal sites, which is pretty reasonable – the equivalent of a little over £4 per month.

Your backups can include everything if you want, but I’ve excluded plugins and themes from my backups. I haven’t modified the theme that I am using, and I’m not using any custom plugins – everything is from the WordPress plugin directory.

Backing up my files to Dropbox makes the most sense to me. I pay for Dropbox Pro and so have 2 terabytes of storage, of which I’m using less than 7%. Whilst VaultPress is the officially-supported solution for backups for WordPress, it’s not a free service and I’m already paying for Dropbox Pro.

The best time to set up backups is now

There isn’t a ‘best time’ to set up backups for any system apart from, well, now. So, if you haven’t got a backup solution in place, this is your reminder to sort something out. I lost all my blog posts in 2018 because I didn’t have adequate backups in place when doing a server upgrade. I would say I learned my lesson, but I’ve been blogging again for 18 months now and only set up UpdraftPlus last week.

There are many other WordPress plugins that offer backups – some free and some paid. I chose UpdraftPlus as it seemed to be the one which offered the features that I wanted, but you may find another suits you better. Just make sure that you have something in place.

The Birthday Gift of Blogging

An AI-generated image of a blog post popping out of a gift box whilst a crowd of people look on in awe

You may have heard of Matt Mullenweg – he co-founded WordPress, and is now the CEO of Automattic, which owns and contributes to (the downloadable version that you install on your own server, like I do).

Matt, like me, is turning 40 this year. And, as a ‘birthday gift’, he has asked people to blog. About anything.

Having only recently returned to blogging regularly, I’m starting to enjoy it again. With the rise of the Fediverse, the web is starting to feel like it did again in blogging’s heyday in the mid-2000s. Whilst some people used centralised sites like Blogger and TypePad back then, you could use tools like WordPress and Movable Type to run your own blog on your own server, and still interact with everyone else. And then the closed gardens of Twitter, Facebook, Instagram and the like came along, and you had to be on those platforms to interact with other users.

Anil Dash has written a piece for Rolling Stone magazine called ‘The Internet is About to Get Weird Again’. And I think he’s right; there’s growing dissatisfaction with these big centralised services and how they hoover up so much personal data to sell to advertisers. Meta’s Threads is dipping its toes into the Fediverse, which would mean that Threads and Mastodon users can follow and interact with each other in a way that hasn’t been possible before. And if it works for Threads, could we see Instagram joining the Fediverse, to connect with PixelFed and maybe even Flickr?

Anil has some further reflections on his own blog. I’m hesitant to say that ‘blogging is back’; after all, there are so many other places that we can share short thoughts where there are audiences. But I feel like it’s having a bit of a renaissance, and in an age where there’s so much AI generated waffle filling up our search engine results, being able to interact with other humans has never been more important. It was what the web was designed for, after all.

So, happy birthday to Matt – and here is your gift from me. I hope that many others will do the same.

A WordPress plugin update fix

An AI generated image of a man holding a giant plug, looking at his watch

For a little while now, I’ve had some issues with installing and updating plugins in WordPress. Trying to do either of these tasks has resulted in the process hanging for a long time, and then eventually failing. As a side effect, the Site Health screen would never load – it was just sit there for minutes at a time, but never timing out. Which was frustrating, as I was hoping that Site Health would give me some clues as to why my site wasn’t, well, healthy.

Eventually, I dug into my wp-config.php file. I’ve edited mine a bit, to add some FTP credentials and define the home page and site URL. This offers a marginal performance improvement as it reduces the number of database calls your site needs to make. With my FTP credentials was this line:

define('FS_METHOD', 'ftpext');

It turns out that I probably shouldn’t have that line there. I commented it out, as below:

/* define('FS_METHOD', 'ftpext'); */

And suddenly everything worked again. Huzzah!

According to the documentation, you probably don’t need to have this in your wp-config.php file and removing it can solve problems. Having it there forces WordPress to use a particular method for interacting with your host’s file system, but by default WordPress should choose the correct method automatically.

I’m guessing it was in there after I copied and pasted some code from somewhere else, without knowing what it did. Which is a reminder that just copying someone else’s code without understanding it is not a good idea.

Comment Spam strikes back

An illustration of a robot turning web pages into canned meat product. Generated using Bing AI Image Generator

So now that I’m blogging again, it’s the return of comment spam on my blog posts.

Comment spam has always been a problem with blogs – ever since blogs first allowed comments, spam has followed. Despite the advert of the rel=”nofollow” link attribute, automated bots still crawl web sites and submit comments with links in the hope that this will boost the rankings in search engines.

In the early days of blogging, blogs often appeared high in Google’s search engine results – by their very nature, they featured lots of links, were updated frequently, and the blogging tools of the time often produced simple HTML which was easily parsed by crawlers. So it was only natural that those wanting to manipulate search engine rankings would try to take advantage of this.

I’ve always used Akismet for spam protection, even before I switched to WordPress, and it does a pretty good job. Even then, I currently have all comments set to be manually approved by me, and last week a few got through Akismet that I had to manually junk.

Humans, or AI?

These five interested me because they were more than just the usual generic platitudes about this being a ‘great post’ and ‘taught me so much about this topic’. They were all questions about the topic of the blog post in question, with unique names. However, as they all came through together, and had the same link in them, it was clear that they were spam – advertising a university in Indonesia, as it happens.

Had it not been for the prominent spam link and the fact they all came in together, I may have not picked up on them being spam. Either they were actually written by a human, or someone is harnessing an AI to write comment spam posts now. If it’s the latter, then I wonder how much that’s costing. As many will know already, AI requires a huge amount of processing power and whilst some services are offering free and low cost tools, I can’t see this lasting much longer as the costs add up. But it could also just be someone being paid using services like Amazon Mechanical Turk, even though such tasks are almost certainly against their terms of service.

I think I’m a little frustrated that comment spam is still a problem even after a few years’ break from blogging. But then email spam is a problem that we still haven’t got a fix for, despite tools like SPF, DKIM and DMARC. I’m guessing people still do it because, in some small way, it does work?

New theme, who dis?

Screenshots of the old and new themes for the blog, side by side

I’ve deployed a new theme on the blog. If you’re reading this in your feed reader, firstly, go you, because so few people do nowadays, but also, please click through and have a look.

The theme I’m using is GeneratePress, with mostly default settings. This replaces one of the default WordPress themes that I was using before.

Why the change? Mainly page bloat; whilst the default WordPress themes are very extensible, the output code includes shedloads of extra JavaScript, CSS and style tags which result in web pages which are bigger than they should be. Whilst I’m at no risk of exceeding the data transfer limits offered by my hosting company, it does affect the speed of the site, and not everyone has unlimited mobile data or a fast connection.

I learnt HTML at a time when it was the done thing to hand-code pages – indeed, back when I used Blogger and later Movable Type as my blogging tools, for the most part I used themes that I had written all myself. JavaScript was used very sparingly, and the HTML and CSS code was nice, clean and simple. So seeing the code soup that was being outputted by the default themes was off-putting.

I also think about this blog post by Terence Eden, ‘the unreasonable effectiveness of simple HTML‘, where he gives an example of someone applying for housing benefit on a PlayStation Portable (PSP). This is presumably because it’s the only portable device with a web browser that she can use. But because the HTML on is so clean and lightweight, the old, under-powered web browser on the PSP is still able to render it, and she’s able to get the information that she needs. A big, flashy web site oozing with various JavaScript frameworks, loads of tracking scripts and adverts everywhere just isn’t going to work on such an old device.

And then I saw this toot today:

I can't help but notice the new Apple laptops rate "Video Playback 22 hours, Web Browsing 15 hours" under battery life.

Congratulations web developers everywhere, it's now more computationally intense to render a webpage than video playback!

— Brad L. :verified: (@reyjrar)2023-11-05T04:41:28.299Z

Web pages are getting so full of cruft, that they require more processing power than video playback.

So, that’s why I’m going with a lightweight theme. It makes the web site much more accessible to more people. GeneratePress seems to output lighter code that displays fast, and it offers a good balance between extensibility and speed. It won’t be for everyone, but it seems to work well for me.

The times, they are upgrading

An AI generated image of a superhero emerging from a server cabinet, generated using Microsoft's Bing AI Image Creator

Hello – if you can read this, then the server upgrade worked!

I’ve wiped the previous server image (yes, I remembered to do more than one type of backup this time), and installed a freshly upgraded version of Linux. This means it’s running on Debian 12 (codenamed ‘bookworm’), and version 12 of Sympl. Sympl is a set of tools for Debian that makes managing a web server remotely a little easier, and is forked from Symbiosis which was originally developed by my hosting company Bytemark.

Going nuclear and starting from a fresh installation was for two reasons:

  1. The next version of WordPress, which will be 6.4, will have a minimum recommended PHP version of 8.1. This server was running version PHP 7.3, and whilst I’m sure future versions would work up to a point, it’s a good opportunity to upgrade.
  2. I’ve had a few issues with the previous installation. The FTP server software never seemed to work correctly, and the database (MariaDB) would lock up almost every time I posted a new blog post. Hopefully, this won’t happen anymore.

As this is a fresh WordPress installation, there may be a few things which don’t quite work yet. I’ve imported the existing blog posts and pages, and the theme is mostly the same, but I need to re-install the plugins and probably need to amend some settings. I’ll sort these issues out over the next few days.

WordPress in the Fediverse

A screenshot of the settings page for the ActivityPub plugin for WordPress

If I’ve set up everything correctly, then you should be able to subscribe to this blog in your favourite Fediverse app, such as Mastodon, by following .

You’ll need to install the ActivityPub plugin, and then it should just work where your fediverse username is @your-wordpress-username@your-domain.tld. If you’ve used a plugin to disable author archives, such as Yoast’s SEO plugin, you’ll need to re-enable it for this to work.

I found this guide particularly useful, as it links to Webfinger to test that you’ve set it up correctly.

(Update: since this post was written almost 12 months ago, the ActivityPub plugin has been formally adopted by Automattic and so enjoys wider support)

What’s this? A blog post?

Well, hello. This is my first blog post in almost four years.

I last wrote a post on here in September 2018, and then took an un-planned break from blogging. This was exacerbated at the end of 2018, when I attempted to upgrade the server that this web site runs on, and ended up wiping everything. And I mean, everything, including the backups that I thought I’d saved elsewhere but hadn’t.

Just like that, 16 and a half years of blog posts were gone, along with all the comments. Now, it’s possible that I could have re-built most of the blog posts, using things like the Web Archive and help from others, but between working full-time and being a parent, I just didn’t have the time or the inclination to do so.

Furthermore, I was beginning to become uncomfortable with how much I had shared about my life over the years. Back when I started the blog, aged 17, I had a tendency to over-share. Over time I reigned that in; I was in a relationship with someone between 2005 and 2009 where I agreed not to share her real name on here, and though we’ve both moved on I’m keeping that commitment – not least because we’re still in touch and actually met up recently.

But I also wanted to reign in how much I talk about my child, who is now six. I’m happy to share their age, but I’m afraid you won’t be knowing their name or seeing recent photos, and I’m even keeping their gender off here now too. It’s about consent and privacy – as a parent, I want to protect my child, and they’re too young to really know what a blog is, never mind have lots of information about their life made public.

I am hoping to get back into the habit of blogging regularly, though not on a daily basis as I had aimed for in the past. Initially I’m aiming for twice a week, as there are four years of news to catch up on, but my minimum aspiration is for one new blog post per week.

Why now? Well, I’ve wanted to get back into writing for pleasure again. I’ve written a few things on Medium, but it feels like writing for a magazine; I’d rather stick to somewhere more personal that’s just about and run by me. I feel like I have things to say now, and hopefully the time to put those things into written words.

If you’re an old-time reader of my blog, welcome back, and I hope that this wasn’t too much of a surprise when it popped up in your RSS reader. And if you’re a new reader, hello. You can read my very dry ‘about me‘ page which is more focussed on my work, but I hope you’ll stick around and will get to know me better.

Goodbye Melody, Hello WordPress

It is with something of a heavy heart that I’ve decided to abandon Melody and move the blog to WordPress.

Long time readers will find this as a surprise – in the past, I’ve defended Movable Type when I’ve felt it under attack from WordPress ‘zealots’. Back then, WordPress was the new kid on the block, whilst Movable Type was much more established. Today, however, the situation has changed, and this is why I’ve made the change.

I left Movable Type earlier this year for a few reasons. Firstly, after trying Movable Type 5, I found it was aimed at large, professional blogs and not personal blogs like mine. The 4.3x line is still being maintained with security updates – MT 4.36 came out last week – but not with new features.

I hoped that Melody would provide a good continuation of MT 4.3x. Unfortunately I’m not that impressed – whilst it has improved some aspects of Movable Type, it hasn’t been the major step forward that I’d hoped it be. Furthermore, a number of plugins that I found really useful in MT didn’t work properly (or at all) in Melody, and as some of them were several years old and seemingly abandoned by their authors there was a slim chance of this happening.

It’s well known that the past few years has seen Movable Type stagnate. When I first started using it in 2002, there was a very active community developing plugins and themes for the platform. But this community has all but died out, and despite the best intentions of the Open Melody group it hasn’t re-ignited. The MT community is, basically, dead.

WordPress is where the community is. Whilst blogging in general is past its prime, WordPress still has a large number of themes and plugins which work with the latest version, plus active support forums. The documentation has even improved.

I’ve also changed. I don’t revel in spending all night adding new features and installing plugins. I want a blogging system that just works.

What made me choose WordPress is taking over administration for the web site for one of the student groups that some friends are involved in; this previously used WordPress and rather than try to shoe-horn it into Melody I decided to stick with it. The system proved to much easier, more manageable and more slick than MT or Melody ever was. Upgrades, in particular, were very easy. So having used it for a while, a few hours ago I decided to migrate this blog too.

Getting the blog up and running in WordPress has been pretty easy – the import process from Melody was quite straightforward and work fine. I’ve then spent no more than a couple of hours trying some themes and getting the configuration in place. Despite being a completely different system, migrating from Melody to WordPress has taken about the same time as Movable Type to Melody.

The current theme is somewhat temporary – I haven’t yet decided on a final one. In the meantime I’d welcome any comments you may have.