What if...
-
@mariusor @steve @evan @raphael An extension is a protocol extension. Specifically, I talked about activity types that are not mentioned in ActivityPub.
Here is a side effect of a
Likeactivity:The side effect of receiving this in an outbox is that the server SHOULD add the object to the actor's liked Collection.
Now imagine that you have an
EmojiReactactivity which server should add to object'semojiReactionscollection as a side-effect.A generic server should be able to do that.
@silverpill @mariusor @evan @raphael "you have an EmojiReact activity which server should add to object's emojiReactions collection as a side-effect."
It's a direct rather than side effect, but how is that different from Add(object=EmojiReact, target=object_emojiReactions)? A generic server could support that.
-
@silverpill @mariusor @steve @raphael
I think there's value in having a negotiation between the client and the server so the server can declare its support for side effects for extensions. A way for the server to say, "I'll handle side effects for geosocial applications". Then the client can skip implementing those side effects itself.
@silverpill @mariusor @steve @raphael
More powerful would be a way for clients or actors to define side effect rules for servers dynamically. "If you get an Arrive activity, set the actor's location."
-
@silverpill @mariusor @steve @raphael
More powerful would be a way for clients or actors to define side effect rules for servers dynamically. "If you get an Arrive activity, set the actor's location."
@silverpill @mariusor @steve @raphael
All that said, I think we can get pretty far with the core AP activities with defined side effects, and extension activities with "side effects" implemented by the client.
-
@silverpill @mariusor @evan @raphael "you have an EmojiReact activity which server should add to object's emojiReactions collection as a side-effect."
It's a direct rather than side effect, but how is that different from Add(object=EmojiReact, target=object_emojiReactions)? A generic server could support that.
@steve By side effect I mean anything that is not directly expressed in the activity, and
EmojiReactusually doesn't specify thatemojiReactionscollection should be updated.Add(object=EmojiReact, target=object_emojiReactions)? A generic server could support that.
Yes, this is what I said in the beginning of this sub-thread. All side-effects should be made explicit (at least for non-standard activities).
-
@silverpill @raphael @steve I think that comes down to what you mean by "support".
I think a server that delivers extension activities, or activities with extension properties or extension types as `object` etc , locally or remotely, is "supporting" those types.
Implementing server-side side effects of some extensions may be a bonus, but we can build a lot of great stuff without it.
-
@raphael @silverpill @steve I also think that Steve's vision is realisable with ActivityPub API, although I think adding optional features like search, server push and so on makes it easier.
@steve Hi Steve,were do i find you Vision? Fredy
-
@steve I believe in this vision.
-
@fasnix @evan AFAIK, @HolosSocial is a quite different architecture. The AP identity is bound to a phone and can't be shared with other client applications. However, I haven't used it. Let me know if this isn't correct.
-
@steve Hi Steve,were do i find you Vision? Fredy
@naturzukunft2026
I'm not exactly sure what you're asking, but there's a W3C ActivityPub API (C2S) Task Force meeting on March 19. That's where C2S extensions will be discussed. It's listed on the SocialCG events calendar.
Social Web Incubator Community Group - Calendar
The World Wide Web Consortium (W3C) is an international community where Member organizations, a full-time staff, and the public work together to develop Web standards.
W3C (www.w3.org)
-
What if... you had one Fedi account on a generic headless #ActivityPub server that simply hosts and federates your data... and had C2S UIs for microblogging, long form writing, media editing and sharing, link aggregation, games, fitness tracking, and so on, that all used that same Fedi account. Technically, it's a similar concept as ATProto (but no relay and app view) and Solid Pods (but no RDF).
It seems possible... if we can improve the AP C2S API/protocol sufficiently.
@steve@social.technoetic.com looks similar to https://activitypods.org/ approach ?
-
What if... you had one Fedi account on a generic headless #ActivityPub server that simply hosts and federates your data... and had C2S UIs for microblogging, long form writing, media editing and sharing, link aggregation, games, fitness tracking, and so on, that all used that same Fedi account. Technically, it's a similar concept as ATProto (but no relay and app view) and Solid Pods (but no RDF).
It seems possible... if we can improve the AP C2S API/protocol sufficiently.
@steve@social.technoetic.com I wonder if we want 1 single fediverse account for everything or if it still makes sense to split our identities for different needs

1 server centralizing all my fediverse accounts (via C2S for standardisation) and 1 or multiple client apps to read from this server would be another option. Any thoughts? -
@steve@social.technoetic.com looks similar to https://activitypods.org/ approach ?
@nathan Yes, ActivityPods (Mastopod) is similar, but based on Solid and RDF. The last time I checked, their C2S client was specific to Mastopod. However, that may have changed.
-
@steve@social.technoetic.com I wonder if we want 1 single fediverse account for everything or if it still makes sense to split our identities for different needs

1 server centralizing all my fediverse accounts (via C2S for standardisation) and 1 or multiple client apps to read from this server would be another option. Any thoughts?@nathan Nothing I'm describing would force you to have one account. With multiple accounts, if they are hosted in one server or across multiple servers doesn't change the approach. For now, I'm discussing single actor clients, but theoretically multi-actor clients could be written too (I haven't thought much about that).
-
@nathan Nothing I'm describing would force you to have one account. With multiple accounts, if they are hosted in one server or across multiple servers doesn't change the approach. For now, I'm discussing single actor clients, but theoretically multi-actor clients could be written too (I haven't thought much about that).
@steve@social.technoetic.com yes indeed it would still be possible to have multiple identities with your proposal

I'm also thinking about the migration path. As many people already have accounts on mastodon or others, should they migrate to this new one ? -
@steve@social.technoetic.com yes indeed it would still be possible to have multiple identities with your proposal

I'm also thinking about the migration path. As many people already have accounts on mastodon or others, should they migrate to this new one ?@nathan It's too early to say, but the improved UX enabled by an extended AP C2S would potentially motivate users to switch. The migration support will depend on the server implementations (Mastodon-style, LOLA, Nomad, ...).
-
@nathan It's too early to say, but the improved UX enabled by an extended AP C2S would potentially motivate users to switch. The migration support will depend on the server implementations (Mastodon-style, LOLA, Nomad, ...).
@steve@social.technoetic.com correct I'm a bit too much anticipating

let's build step by step ! -
@mariusor @steve Does your server work with https://checkin.swf.pub/ ? Or https://github.com/evanp/ap ?
Hey @evan ... I've looked into why I get issues with checkin.swf.pub, and it could be that I'm doing something wrong, but it hits my servers using client_id=https://checkin.swf.pub/client.jsonld
Which, when gets dereferenced serves an ActivityPub Actor(ish) like document instead of the Client ID Metadata I'm expecting.
I remember I was arguing with Emelia about how to server both formats from the same URL, but in the end I decided it's not worth my time trying to do both, and I'm just expecting the data model described in the RFC7591 Sect2: https://datatracker.ietf.org/doc/html/rfc7591#section-2
-
-
Hey @evan ... I've looked into why I get issues with checkin.swf.pub, and it could be that I'm doing something wrong, but it hits my servers using client_id=https://checkin.swf.pub/client.jsonld
Which, when gets dereferenced serves an ActivityPub Actor(ish) like document instead of the Client ID Metadata I'm expecting.
I remember I was arguing with Emelia about how to server both formats from the same URL, but in the end I decided it's not worth my time trying to do both, and I'm just expecting the data model described in the RFC7591 Sect2: https://datatracker.ietf.org/doc/html/rfc7591#section-2
@mariusor I'll check it!
-
@benpate as long as your custom types have the current ActivityStreams Object as a base (ie, they contain a Content and a MediaType) anyone would be able to render them to some extent.
For cases where you have a different structure, you can have Profile objects alognside them linked to their Preview property. Use the vocabulary to your advantage.