@jakeosx I'm already working towards this goal with my generic ActivityPub service called #FedBOX. You can see an example instance at https://federated.id (but there are no real stand-alone clients :D).
"request body not valid" is a super helpful error. despite it being completely valid and legal. thanks #fedbox
Today, I've "started" on a server-side frontend for servers like #FedBOX. By "started," I mean I set up a boilerplate between Deno and Fresh and now I've got to decide on the design (that's a pretty big part of a web frontend!).
I'm probably just going to use the federated.id server to test against for now, but when it's time to start writing stuff, I'm going to have to spin up my own server.
Oh man, I forgot the rush of endorphins that comes from fixing a really longstanding bug.
#FedBOX, the generic #ActivityPub service, had a heisenbug for about 6 months where integration tests for federated dispatch would randomly (and rarely when debugging) failed. I tried a couple of times to reproduce it, but it wasn't that big of a deal and it mostly went fine, so I didn't want to dedicate too much time to it.
1/2
One of the small things I managed to do while sick this week was to add support for <link rel=alternate type="application/activity+json"> for all the pages where this makes sense.
So now the instance and the individual users are directly discoverable on Mastodon instances by entering the URL in the search box. (Accepting the follows is not functional at the moment... oops)
Ex instance: https://brutalinks.tech/
Ex user: https://brutalinks.tech/~marius
#activitypub #fedbox #goactivitypub #brutalinks
One of the small things I managed to do while sick this week was to add support for <link rel=alternate type="application/activity+json"> for all the pages where this makes sense.
So now the instance and the individual users are directly discoverable on Mastodon instances by entering the URL in the search box. (Accepting the follows is not functional at the moment... oops)
Ex instance: https://brutalinks.tech/
Ex user: https://brutalinks.tech/~marius
#fedbox #goactivitypub #brutalinks
The daily grind of fixing bugs and small iterative work took me by surprise today, when I finally had a look at how #BrutaLinks and #FedBOX integrate with Mastodon, (which used to be "not very well") and I finally have a working webfinger resolver that covers actors for both projects.
So if you're searching for the accounts on https://brutalinks.tech, you can actually find them now.
There are still bugs, but, I'm happy for small blessings. :)
For people that haven't been following me:
#FedBOX is a generic ActivityPub service with client to server support
#BrutaLinks is a link aggregator and discussion platform similar to old Reddit and Lobsters
I haven't talked about #BrutaLinks and #FedBOX in quite a while, as I was focusing on a different #ActivityPub project.
Today I fixed some long-standing bugs thanks to some interest from a long time user that stumbled upon some of the problems. 🙇
#activitypub #fedbox #brutalinks
For 1, I'm looking at the IndieAuth protocol that supports passing some magic values to an OAuth Authorization URL to create the client on the fly.
This mechanism is not done for the #FedBOX server though.
@J12t I have the server side (on #FedBOX) and client side on the link aggregator that uses it as a backend, called #brutalinks
But sadly I didn't interop with other clients/servers for either of them.
The main challenges that I can think of:
1/ when a user wants to login using a new client to the server it should be dynamically created on the server.
2/ discoverability of OAuth2 endpoints for each actor - this is handled somewhat by the AP spec.
"Improved" one of the storage backends for #FedBOX the generic #ActivityPub service and I managed to break two working demo instances using it. :(
Back to the drawing board I guess, and back to restoring from the backups.
> We need a proper ActivityPub Server first
@helge funny you should say that. I'm working on #fedbox - a generic ActivityPub server written in Go: https://github.com/go-ap/fedbox
It's not ready for general usage yet, though it serves (hah) as a backend for a couple of other projects: #brutalinks - a link aggregator and discussion platform, and some bots that use it's client to server capabilities.
Today it looks like the actor receives and processes remote Activities correctly.
I need to test some more, but it looks like the main issue for #FedBOX being incompatible with Mastodon was just bad RSA keys used for the actors. :(
At the end of last year I was loosing faith somewhat in the Go #ActivityPub libraries I created for #FedBOX.
But today, in attempt to debug some Mastodon compatibility issues, I ended up creating a single user fediverse application totaling under 1K lines of code (of which webfinger functionality is about one third).
Caveat, the server to server to follow tomorrow. I only worked a couple of hours on it.
Started back some work on #Brutalinks and #FedBOX. Fixed some bugs, added some minor functionality. So far so good.
It's been a mildly depressing end of the year. After unsuccessfully trying to hammer on the Mastodon compatibility for #FedBOX, I decided to take a break from #ActivityPub development and I worked for some days on a multithreaded http server using the #jai programming language.
It's a nice little toy, and despite having to use the POSIX sockets library to make it, the native concepts are pretty good.