For those wondering how #Holos works - running an ActivityPub server directly on your device - here's an explanation: holos.social/how-it-works
Keep in mind: the relay never knows your private key that signs your activities. Your data stays on your phone, you keep control. Even if the relay goes down or blocks you, you can migrate with your identity and followers to another relay.
@Varpie Actually, it's the opposite! Your phone runs a full ActivityPub server: it signs activities, stores data, and processes federation. The relay is just a proxy providing stable identity (@user@domain) and routing.
@apps @user@domain How is it different from having a heavy ActivityPub client using the C2S part of the spec, and a lightweight server that doesn't persist data once it has been read? I don't remember the ActivityPub saying anything about data persistence between client and server.
@Varpie The key difference: in C2S, the server still needs to be online 24/7 to receive activities. With Holos, your phone is the server but isn't always online. The relay isn't an ActivityPub server - it's a routing proxy that queues activities when you're offline (up to 7 days) and forwards them when you reconnect. It never processes or persists your ActivityPub data, just routes it.
@apps According to the README on the Holos Relay Server source code, other servers make an AP request to the Relay Server. So it has to implement the AP S2S API, right? ActivityPub says nothing about persistence, just that the servers must deliver to the client via the inbox, which is what the Relay does. Regarding data processing, the ActivityPub spec mostly says that servers should validate the content, but it's a SHOULD and not a MUST.
Don't get me wrong, I think the architecture with a lighter server is very nice, but to me it still looks like you just implemented both parts of the AP spec, and are wrongly naming the client as the server.
There is often the analogy of ActivityPub and email, here it's like you implemented POP3, where the emails aren't kept on the mail server after being retrieved by the client, where everyone else uses IMAP and the server keeps all the data. The mail server (in your case the relay server) is still the server part, and the app is still the client.