Skip to content

My social web setup

In 2022, I added my site to the Fediverse for the first time. Back then, it was a reason to stick with WordPress a little longer, as the engine for my website. But in mid-2025, I switched to a "digital garden", using a static website to publish my notes (without WordPress). That meant: no interactive features at all.

After starting to understand how different parts of the social web work, and looking for ways to have control over it in my own setup, I am returning to WordPress as my social web engine:

  • It has a plugin to interact with the Fediverse. I will have to design a way to get content from my static site into WordPress, to send out over ActivityPub. Others should be able to follow and react.
  • It has a plugin to interact with the Indieweb. I can receive webmentions as comments, but I will need to design a way to have my static website URLs available inside WordPress. I also can look for a way to send out webmentions for new pages on my static site.
  • It may be possible to also offer a comment form on the static pages, and send submissions to the WordPress backend, to also show up as comments.
  • WordPress provides features for comment moderation, so I can use the admin dashboard to approve or reject incoming comments.
  • The plugins together offer a way to render all webmentions, comments, and ActivityPub inputs. It should be possible to get that into the static site as either JSON or HTML.

Impediments and challenges so far

A list of problems I ran into so far (Dec 2025):

  • I tried running WordPress on a subdomain, but that creates difficulties in providing a good ActivityPub account name (@rolf@hub.drostan.org is not what I want).
  • I am running WordPress in a subdirectory (/hub), but that causes the webmention plugin to reject URLs in my static site as "not in the domain". This requires a change in the plugin code, to not look at the home_url of WordPress, but on the true host part of that string.
    • It also seems the plugin does not handle relative paths on the same domain, but simply looks for the home_url in the text of the source page.
  • I have added an extra step in the webmention flow to create a custom post type and insert a post for URLs that are not recognised by WordPress itself. This way, there is a "bucket" for responses to any URL.
    • This should be generalised, to create such a post for other flows too (web comment, in particular).
    • It could use a HTTP check to see if the URL exists on the domain.

To do:

  • Create a front-end application to add to the static website to show comments, and to submit a comment too.
    • By dynamically loading comments from the client-side, these will be up-to-date without rebuilding the static site. Perhaps there are ways to use caching on the WordPress side.
    • But: content of comments will not show up in the search results.
  • Figure out the right approach to let WordPress handle URLs outside its own realm.
  • There used to be a way to have WordPress syndicate content from RSS feeds. That would make it possible to ingest updates on my static site.
    • When sending webmentions for that content, it should use the canonical URL, not the WordPress version. Same for sending it out to ActivityPub followers.
  • On Mastodon, I can boost a post from my website updates, but reactions to that boost will not end up on the site. This would require an extra monitoring service. It is still unclear to me whether brid.gy would offer such a service.

Done

Webfinger

I have a static version of my webfinger data, which gets sent for any webfinger request. I updated this with the extra links to the WordPress setup.

Webmention

WordPress is accepting webmention requests, and if they're on the right domain, will add them as comments to moderate in the queue.

The .htaccess for the static site will redirect /webmention to the WordPress endpoint, and will include an HTTP response header to advertise this location with each request.