Hello, World! Would you like to see a question and answers platform like Quora/StackExchange with ActivityPub support? And if yes, then how would such a platform be beneficial to you?

@tuxether I certainly do. Many problems that stem from climate change can probably not be solved anymore, but perhaps we can prevent the worst by sticking our heads together. Please keep me posted and let me know if I can help. Thx.

@tuxether A platform where you can ask any question and get answers or find a question and provide an answer while not even leaving your Mastodon account, and that will keep all those questions organised for future use by community? Fuck yeah, I'd like that very much!

@tuxether Am working on just such a platform in Go.
I'd certainly be open to sharing the code and joining forces with whoever is interested.

It's early stages, but moving along.

@MatejLach I was thinking of using the go-fed library written by @cj. How are you implementing it in go?


I'm actually implementing AP myself, manually, no autogenerated code. I want the code to be nice and readable + I wanted to implement it myself for the experience.

I have it up on GitHub in a private repo, I'll open-source once it's a bit more fleshed out, but I'll invite you to take a look if you want.

Just need your GitHub username if you have one.


@MatejLach @tuxether Oof, hand rolling all the JSON ways of functional properties is not easy!

Yeah, it's rather frustrating at times and slows progress down considerably, but am almost done with the vocabulary and it looks pretty neat.


But doing it all manually makes me understand perfectly why people wouldn't want to.


@MatejLach @cj Wouldn't doing it manually result in several 100,000 lines of Go code? That's a lot of code to maintain.

I don't think so, but am far from done yet. Why would it be so large?


@MatejLach @cj The go-fed/activity library is about 40,000 lines of Go code that codegens about 500,00 lines of Go code.

@tuxether @MatejLach To be fair, v1 generates a lot less lines of code. But it is no less trivial.

Can experimentally play with it on the v1.0.0 branch here:


Well, my code's structured completely differently. But I guess we'll see how it goes. Am certainly for a design allowing for thousands of lines of code, not tens of thousands.

Now it may not be as rigorously strict implementation as go-fed generates, but am just aiming for something that works and is nicely maintainable.


@MatejLach @tuxether That's all fine and well, just would hate to see a Golang app break because it can't handle the stupid things that can be done in an ActivityStreams object.

@MatejLach @tuxether And I don't want you to get the wrong impression, I know a few other folks rolling their own ActivityPub in Golang. I am just happy to have an ecosystem that is growing!

Yeah, it's as much a personal challenge if I can pull it off as anything.

Your lib is definitely appreciated btw, it helped me get inspired a number of times already. :-)


@tuxether if it's better than shouting into the void with a #AskMastodon I'm here for it

@MatejLach How is this going? I'm very interested, because there is a real need for collective problem solving.

Thanks for asking :-) Actually, I just landed substantial commits today that almost complete the ActivityVocabulary part of the equation.

Over the next few weeks, I'll be completing the server<==>server AP communication side of things and then it'll be ready for some Mastodon<==>fediQuest testing.

Then I'll release the code as public so others can contribute/test and we'll go from there.


Sign in to participate in the conversation

For people who care about, support, or build Free, Libre, and Open Source Software (FLOSS).