# Improve linking back to original post from Mastodon

**URL:** https://meta.discourse.org/t/improve-linking-back-to-original-post-from-mastodon/361921
**Category:** UX
**Tags:** activitypub
**Created:** [April 15, 2025, 3:54pm UTC](https://meta.discourse.org/t/improve-linking-back-to-original-post-from-mastodon/361921 "2025-04-15T15:54:23Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [April 15, 2025, 3:54pm UTC](https://meta.discourse.org/t/improve-linking-back-to-original-post-from-mastodon/361921/1 "2025-04-15T15:54:23Z")

</div>

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:

 ![CleanShot 2025-04-15 at 11.46.52@2x](https://global.discourse-cdn.com/meta/original/4X/5/3/d/53d53a737a116ecd9b8a64a3c8b7651fce517cc3.jpeg)

The original post is [Tell us how you manage subscriptions on Discourse](https://meta.discourse.org/t/tell-us-how-you-manage-subscriptions-on-discourse/361365)

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.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [April 17, 2025, 7:34am UTC](https://meta.discourse.org/t/improve-linking-back-to-original-post-from-mastodon/361921/2 "2025-04-17T07:34:57Z")

</div>

There’s a few additional considerations here.

## Attribute mapping

### Discourse

Topic and post to [`Note`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-note) or [`Article`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-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 a`summary`, however there is some debate about this.

### Other platforms

Many follow the [ActivityStreams](https://www.w3.org/TR/activitystreams-vocabulary) 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`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-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:

```rb
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

```plaintext
#{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.

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [April 17, 2025, 1:24pm UTC](https://meta.discourse.org/t/improve-linking-back-to-original-post-from-mastodon/361921/3 "2025-04-17T13:24:16Z")

</div>

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.

> [@angus](#):
>
> 1. Encourage `Article` for First Post Only.

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.
