On WordPress and the Eleventy Experiment

Reading Time: 3 minutes
Whilst I have found WordPress to be a useful tool since around 2005 or so, recent changes have encouraged me to dump the platform. The first of these changes was when WordPress moved to react because this made the site slower, and heavier to use. React also has links to Facebook, and I try to avoid Facebook related projects when possible.

The second reason is that WordPress now feels clunky and heavy. If you want to write a blog post you have so many bells and whistles that to write a blog post, you need to jump through three or four hoops, before you start writing. Recently they changed the layout so I had to adapt to a different setup.

JetPack and the Rising Paywall for Functions

One of the key problems with WordPress, that I see getting worse, is how Jetpack is hijacking and paywalling functionality that should be free, or if not free, then affordable. There was a time when I agreed to pay for vaultpress, and jetpack, until they increased their prices. The issue is that the prices rose to four or five times their original prices. They also added the pay monthly tax for basic functions.

As a result of enturdification WordPress has gone from being Free and Open Source to pay to win. You pay for social features. You pay for image optimisation. You pay for backup. You pay for CSS optimisation. In the end WordPress might be free and open source, for basic features, but not all.

ActivityPub and Jetpack

Recently I deactivated Jetpack due to the rising paywall. In the process I noticed that my WordPress blog was defederated. It stopped posting to Mastodon instances, and to BlueSky. Behind the scenes Jetpack swallowed Activitypub so that the plugin is a remnant, a legacy plugin.

By removing Jetpack I broke my blog’s connection with the Fediverse, but in the process I was given a strong push towards mothballing WordPress.

The Eleventy Opportunity

Eleventy is a JavaScript static site generator. To get basic functionality tutorials can help, especially if you’re learning JavaScript and CSS. If you’re more experienced, or motivated to experiment, then you can attempt to get a site up and running via experimentation with AI.

Think Laterally and Then Play

If the last three to five days have taught me anything it is that you should not think in straight lines when you’re playing with AI. Instead you should run a thought experiment first. To elaborate, the natural instinct is to use the activitypub plugin to federate your blog. The issue is that the fediverse wants you to push content. If you write a post it wants you to say “Hey I wrote a post and here’s the URL”. If you go the Activitypub plugin route you write a blog post, but you’re hitchhiking for attention. You’re waiting for people to notice and toot your posts, and for the fediverse to start paying attention.

I spent two days trying to get Eleventy and Hugo to be noticed by the Fediverse. This was a complete failure, and AI just got me to try iterations that didn’t work until I said “No” and then “no” and then “no” and eventually Gemini got the message and that’s when we began to think laterally.

Two Scripts Later

My first thought was to go through my indieweb.social profile and find all my blog post mentions and take the mastodon id from each and add it to the markdown file of each post. This took little trial and error, which feels great.

What did take plenty of trial and error was the share.js to work properly. The first problem that I saw was that images weren’t loading properly. I tried to get help from Gemini, and it offered one solution, and then twenty more, and we made invisible progress. I told it “I want to use the right meta tags and eventually everything was working, but still invisible.

Eventually I noticed that for some reason Gemini had written code that spliced the filename’s yyyy-mm-dd away so it was looking for “post-title” rather than “yyyy-mm-dd-post-title”. Once we fixed this and ran a build the post, and image loaded perfectly and that’s when the blog became “federated” once again.

The Other Scripts

I have:

create-post to create the frontmatter for a post and open it in vim.

migrate-images for when I wanted to migrate images from one logic to another.

sync-mastodon which went through my mastodon history and added mastodon id to each md file

share.js to use mastodon’s API to create and share the latest post automatically.

Two of these scripts will be used daily, and the others are useful once, early in the migration process. They might not look like much but they save hours of time and effort for me as a human being, doing things at a human pace. A JS script does it in seconds, if that.

And Finally

To remain positive, Eleventy feels like an opportunity, whereas WordPress feels like it is sliding behind a paywall. My blog doesn’t generate an income so I don’t want to pay for basic functionality. I’d rather invest in learning about new things, as I have, by shifting towards blogging with Eleventy and Hugo before that.