I'm going to take time out from the fediverse for a while. It's not that I've been "cancelled", although the level of hostility recently has been exceeding my personal comfort zone and becoming comparable to Twitter.
A critical design problem of this type of system based upon the ActivityPub protocol seems to be that there isn't any granular control over who you associate with or on what terms. It means that adversaries have unlimited potential to reply on your posts or send menacing DMs. Of course it's easily possible to block them, but the sheer volume of this problem recently means that it becomes like a cat and mouse game, or a game of whack-a-mole.
So it's time for me to step back and think about whether ActivityPub is useful as a method of public communications, and whether I ought to be recommending systems in which the user doesn't have much control over who they associate with other than follow or block. Maintaining an increasingly large blocklist and the amount of research which that requires seems unrealistic.
As an analogy from the past, I abandoned trying to support blog comments for similar reasons. The amount of spam became too much to manage, and automated methods such as CAPTCHAs or cryptic questions failed to prevent it.
For now I think the Zap or Hubzilla approach is better, although there are far fewer users of those systems. With something like Zap it is reasonable to expect that the first time self-hoster could have a good experience on the system, rather than immediately being bombarded by communications which they havn't chosen to opt into.