How cross-posting should work


#1

Cross-posting is a tricky thing to do. There are several possible routes we can take when implementing this and i would love to hear your feedback about this. However, take note it’s gonna be a bit technical (as it’s mostly a technical challenge).

1. Duplication

First scenario is basically a post duplicated between multiple groups. You post a link to group_a and by cross-posting it to group_b and group_c, you’re basically duplicating the original link - so at the end of the process, we have three records of the same link, each one for each group. Each story has it’s own pool of comments and everything is 100% separated.

Pro of this is that it’s way simpler to implement. On the other hand, we’re getting duplicated stories and it’s hard to create a reliable “Front page of prismo instance” with stories gathered from all the local groups as it could display duplicated records.

2. Share

Second scenario uses activitypub shares - when there is a story posted on group_a, you can share it to other group just like you’re boosting something on mastodon or retweeting on twitter. Original story and all the shares has a separate pool of comments + in database, we have single story record + 2 shares and you can see what has been shared where, when and by who (if the group is public ofcourse). It’s also compatible with mastodon and other activitypub services which is pretty neat.

Huge pro of this solution is that we prevent stories duplication as much as it’s possible (it would still be possible to post the same story twice to different groups but using shares reduces the possibility of this) so wen can create a nice frontpage. Also, sharing is an activitypub concept and by using this, we’re doing something “fresh” in the link-aggregation world (i’m not aware any link-aggregation site has such feature?)

Thoughts?


#2

I prefer the ActivityPub share method, as it would also presumably mean all the comments on the crosspost are connected to the OP. Only issue is whether comments on a crosspost would send notifications to OP…


#3

And what’s your thought on this - should they? That would just make sense if you’re some kind of an author of what you’re posting as an original post but that’s hard to determine. What about a checkbox I’m an author of this story or even Notify me about this and all the share comments


#4

My naive assumption would be that each Group actor is sending Announce activities to each submission, so there isn’t much difference between an Announce to one Group or an Announce to multiple Group actors. Although, if having separate comment sections is a major priority, then you have no option but to duplicate… and also to have the Group actor send out a duplicate of each Activity it receives, instead of simply relaying them via Announce.

EDIT: Semantically, you could still send multiple Announce if you attach the replies to that Announce activity, but software like Mastodon might treat it as a bug despite it being technically possible! See https://github.com/tootsuite/mastodon/issues/8794 and the example inside… https://mastodon.social/users/earthlover/statuses/100792879813955373 is a reply to a boost, but loading the original post does not show this reply in the replies, because its inReplyTo is set to the Announce by mastodon.social/@Gargron instead of the Note by laserdisc.party/@Thomas.

See the output: https://mastodon.social/users/earthlover/statuses/100792879813955373.json


#5

I think that keeping separate replies is the cleaner way.

Hypothetical case: The guys at /starwars might not want to get in an argument with the /boycottdisney ppl, so what happens when there’s a discussion that might involve both groups?

Duplicate the posts, and keep the discussions apart from each other.

About boosting… I think that deserves a separate discussion. The implications might be too complex to consider.