I'm starting to learn Go. At work we're splitting out some parts of our architecture into a few microservices, and our Chief Architect decided we should write them in Go, instead of our usual PHP.

I've been enjoying learning it. It's been a long time since I've really tried to learn a completely new thing (as opposed to a new framework or whatever).

As a project to get myself into this, I've been thinking about building my own Fediverse server in go. Architecturally, I want it to be a lot like microblogpub, which I currently use. I actually want to be able to have a clear migration from one to the other.

Like microblogpub, my new project (which I'm tentatively calling gopub) will be a single user instance, intended to be easily hosted on your own computer, with a fairly simple sqlite database, and focused on broad ActivityPub and IndieWeb compatibility.

But I've got some ideas for a few features that I haven't seen elsewhere.

For example, I was thinking it might be cool to have alternate handles for a single user, to only follow certain things. E.g., if I'm [email protected], and somebody wants to follow me, but not see any boosts from others, instead of following [email protected], maybe they instead follow [email protected]. Or, if they only want to follow my posts that include a particular hashtag, they can follow [email protected].

Similarly, a single user with multiple handles would be nice. I think Friendica has this, but I'm considering including it in my project as well.

And one thing I really want to add is location check-in. Basically, the Fediverse equivalent of Foursquare. ActivityPub already has the vocabulary for this, but I haven't seen it implemented anywhere.

I'm still at the very, very early stages. Who knows if I'll ever get it in a usable state. And I'm working on it during my extremely limited free time. But I'm excited to start a new project.

An interesting thing about microblogpub is that, very unlike other Fediverse software (like Mastodon), I get a notification when somebody has unfollowed me, or blocked me.

Someone accidentally blocked me, and then immediately unblocked me a couple days ago. I got notifications for both of them.

I didn't actually know that it was a standard part of the ActivityPub protocol for an actor to send a block event to the actor being blocked. It doesn't seem like someone should know that I've blocked them, but I guess that's the way it goes.

Just FYI, in case you didn't know (I certainly didn't), someone might know if you've blocked or unfollowed them.

I've got a a / question.

I understand how self-verification works in Mastodon.

But I'm trying to figure out how the federation of it works. In other words, how does instance A know which links are verified for a profile on instance B.

When I look at the AP profile (curl masto.tld/users/jimmy -H 'Accept: application/activity+json'), I get something like:

{
"attachment": [                                                {
            "name": "Personal Site",
            "type": "PropertyValue",
            "value": "<a href=\"https://something.tld\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\"
><span class=\"invisible\">https://</span><span class=\"\">
something.tld</span><span class=\"invisible\"></span></a>"
        }
  ]
}

But I don't see anything anywhere else in the JSON that indicates that that value is verified.

Is there a separate endpoint to check that?