Databag – tiny self-hosted federated messenger for the decentralized web
github.com
github.com
The initial motivation for this project (beyond wanting a sense of privacy) was not finding any chat service capable of running on low cost CE devices. To me this is critical for reaching an audience beyond tech enthusiasts.
If this project continues to mature I could see it valuable to implement the XMPP or ActivityPub protocol, but I am not yet sure what that would mean. If it were to affect the execution requirements, then it should be implemented as a separate module with hooks into the core service.
But is the vision to be able to “DM” with users on instances of mastodon, Lemmy, etc?? (anything that supports activity pub)
There are many legitimate reasons why someone might not, but if they've not thought through them and whether or not they could achieve the same with extensions to ActivityPub I'm instantly sceptical.
I would love to see other federated services running on home CE devices, but I don't see this happening with the execution requirements of services like mastodon or matrix. While those services are great and I use them, I think they lend themselves more to group hosting vs personal hosting.
Basically ActivityPub sets out a very basic skeleton for passing messages ("activities") between actors designated by URI's. Those messages must be JSON and has a few very basic requirements, such as having a "type". E.g. "Announce" is a type that corresponds to "boost" or "retweet", "Create" is a type that means you're creating another object such as a "Note" (toot/tweet) which follows the same general structure.
Those messages can be addressed to specific other URI's representing audiences with to/cc fields. When you add that to your outbox, you or your instance also need to post them to your followers instances.
So as long as you can receive POST's w/JSON, and return a list of JSON versions of messages, you have the basics. The JSON in ActivityPub is verbose but it's not very hard to generate, so bridging is likely doable.
[1] https://webfinger.net/lookup/?resource=vidar%40galaxybound.c...
[2] https://m.galaxybound.com/users/vidar but needs Accept: header: curl -H "Accept: application/activity+json" https://m.galaxybound.com/users/vidar | jq .
So it's decentralised in the sense that Mastodon or Matrix are.