I just had an interesting issue where the ActivityPub plugin started reporting that my author page on both this site and Worlds In Miniature was no longer serving valid JSON, and so was inaccessible:

a screenshot of  part of the WordPress site health screen. It shows 1 Critical issue reported by the ActivityPub plugin:

"Author URL is not accessible

Your author URL https://worldsinminiature.com/author/chris/ does not return valid JSON for application/activity+json. Please check if your hosting supports alternate Accept headers."

Sure enough, checking the URL with cURL, or an HTTP client like Thunder gave a 200 response but no response body. It had been several days since I had last made any changes behind the scenes, and everything had been working in the interim, so I was a bit stumped.

Anyway, after a bit of digging around, I came upon this thread and specifically this post which pointed me to the problem: Jetpack Boost. It wasn’t the most recent plugin I’d installed, and – as I mentioned – things had been working fine since I had installed it… but something had happened in the background which had broken things, and turning off Jetpack Boost as a first test instantly solved the problem.

Later in the thread the problem is tracked down to specifically the “Defer non-essential JavaScript” option, so if you’re having trouble with ActivityPub, and have Jetpack Boost installed, turn this option off to fix the conflict.

A screenshot of the Jetpack Boost options screen, showing the 3 available settings. Optimize CSS Loading is turned on, and a progress bar shows it is generating "Critical CSS". Defer Non-Essential JavaScript is turned off. Lazy Image Loading is turned on

All going well – and DNS willing – this site has been migrated off of WordPress.com and back to self-hosted. That’s all well and good, but along the way, the site has picked up a couple of new tricks –

  • IndieWeb integration through microformats and Webmention
  • Fediverse integration through ActivityPub

Fediverse support means you can now (for example) follow this blog on Mastodon, by following @chris. You might even be able to like and comment directly from Mastodon (I haven’t tested this Update: commenting via a reply works). Regular RSS options are still available.

IndieWeb features come by way of the plugins provided by the community, and the Autonomie theme by Matthias Pfefferle (who also wrote the ActivityPub plugin I’m using). I haven’t rolled out all of the possible features – I’m not using Post Kinds yet, for example – as I want to think a bit more about what I want to achieve with the site before I go overboard.

Moving everything over was relatively quick and painless, and the setup of new features was simple. There’s a couple of small things to tidy up, and more to be added to the site as time goes on. I’ll write up the process of getting things setup in another post so others can replicate on their own site if they want.