Improve linking back to original post from Mastodon

One issue I see often with First Post / Note publications is that the OP is posted without a title and that its first external link will be populated as a onebox and end up getting more attention than the author intended.

Here is one example:

The original post is Tell us how you manage subscriptions on Discourse

Would it make sense to prepend the title for the first post only and link it to the source? Does that make sense @angus? If we do that, maybe we can then also drop the “Discuss on our forum” link appended at the bottom of each post. Not sure we need it for replies either, users on Mastodon could scroll up to the first post and use the link there.

4 Likes

There’s a few additional considerations here.

Attribute mapping

Discourse

Topic and post to Note or Article:

  • title = name
  • cooked = content

Mastodon

Status to Note

  • text = content

Status to Article:

  • text = name + summary + link

Also:

  • Mastodon also uses summary for Content Warnings (e.g. NSFW). This is currently being reviewed by the Mastodon team and is a subject of discussion of the W3C ActivityPub Trust and Safety taskforce.

  • The fediverse technical folks (incl Mastodon) are discussing adopting the concept of a Preview which would be an object attached to the Article (e.g. another Note) for a more structured version of asummary, however there is some debate about this.

Other platforms

Many follow the ActivityStreams spec.

Post to Note or Article:

  • text = content

Most do not have the concept of a “topic”, but if they do:

  • title = name

There is an additional consideration that within the “Threadiverse” (i.e. Discourse, NodeBB, Lemmy, Flarum etc) we’ve essentially settled on the idea that a Topic = Collection, which also means that the topic title can be the name of the Collection.

What this means for us

@pmusaraj Personally, I think the upshot of the above context for the considerations you’ve raised are as follows

1. Implement a targeted use of summary.

I think we should map Discourse topic excerpts to the summary of an Article for the first post in a topic. Just Article, not Note, and only for the first post of the topic.

2. Derive topic titles from Collection name first.

One of the wrinkles of navigating the above object mapping is that you need a consistent way of retaining topic titles between topic-centric platforms, for example when federating between Discourse instances. I think the better way to navigate that is to derive the topic title like so:

topic_title = collection.name || first_post.object.name

3. Encourage Article for First Post Only.

The point of the “First Post Only” publication type is to facilitate use cases that focus on an “announcement” style publication mostly targeted at stream-based platforms like Mastodon. If we implemented 1, this would mean that the first post would appear in Mastodon like this

#{topic title}\n\n#{topic excerpt}\n\n#{topic url}

The reason I haven’t touched summary yet as Mastodon has also (in addition to its use in Article) been using summary for content warnings and spoilers, however this is:

  • less relevant for Article as the summary is effectively only used as a summary. It is treated more as a content warning (spoiler) for Note; AND
  • is a treatment specific to Mastodon; AND
  • is not the normative purpose of the summary property (i.e. in the W3C spec); AND
  • this may change in Mastodon.

Note that I say “encourage” as I think making First Post Only always an Article would preclude any use of [note][/note] markup to identify which content in the first post to publish. You can currently use that markup to create your own custom summary. I’m not sure if that’s ever going to catch on as a use pattern, but I wouldn’t want to kill it entirely just yet.

4. Remove “Discuss on our Forum” link and setting

While this may have made sense early on, I think it’s:

  • Specific to the First Post Only announcement style use case.
  • Redundant to that use case if we adopt 3.
  • Duplicative of the object url which we always send and is used by platforms to link to the original content.
3 Likes

Thanks, Angus! You’re of course right to point out that there isn’t just a Discourse-to-Mastodon relationship here.

The plan all makes sense, all four steps.

How are you thinking we should do the “encouraging”? We could introduce a simple configuration choice where the admin picks between:

  • announcement style publication (first post, article, public)
  • full conversation (full topic, note, public)
  • advanced (exposes the three existing dropdowns so admin can pick their own mix)

I think this can work, along with some helpful tips/language.