Relaxing treatment of non-notes by Mastodon

re: better handling of non-notes by Mastodon

Toward the end of a day 2 FediForum session, @pfefferle@mastodon.social, @manton@manton.org, and I sidetracked a bit and discussed once again the tendency for implementors to shift away from more suitable ActivityStreams Activities to as:Note.

Specifically, it was the demo/session by @samsethi@podcastindex.social re: TrueFans. Instead of federating out an as:Listen, they send as:Note, and it's a fairly safe bet that this is because the content cannot be richly represented in Mastodon. The same story played out with Mattias and the WordPress plugin, and myself with NodeBB.

Secondly, back in March/April and again in May, @renchap@oisaur.com mentioned that resolving this was of some interest to the Mastodon team:

We will work on improving the display of non-Note content in the next Mastodon version

To be clear, getting Mastodon to suitably process as:Article/as:Listen/as:Offer or any number of other activities is not what the ForumWG wants to accomplish. It's not up to Mastodon to adapt to the variety of content on the fediverse, but rather that its fallback handling needs to improve just enough so that its baseline rendering is acceptable to more implementors and their users.

As concise and actionable as I can make it:

  1. Mastodon allows a subset of HTML for as:Note. This subset is good enough, but content in non-notes has all html stripped. Keep consistency here and allow the same subset of HTML.
  2. Non-note content is truncated. This is no longer necessary due to the addition of the expand button. The wonderful thing is this standardization of behaviour actually simplifies Mastodon code.
  3. Instead of appending the object URL to the status content, promote the "Open Original Page" button out of the overflow menu. It's more than okay to defer to the original site vis-a-vis presentation and allow the user a smooth exit if desired (target="_top" would be okay too if you're worried!)

That's it.

You could even skip the third point, but even with 1 and 2 achieved this would sufficiently raise the baseline behaviour just enough that I would immediately update NodeBB to send as:Article for new topics, and I am certain @pfefferle@mastodon.social would adjust his defaults as well.


Lastly, @renchap@oisaur.com, I'm sure I can speak for everyone at FediForum when I say that it was wonderful to see representatives from Mastodon (that of course includes @andypiper@macaw.social as well) in attendance. It means a lot to me personally that you were there, and sends a signal that Mastodon continues to desire broader inter-compatibility.

9 Likes

@renchap@oisaur.com it's an oft-repeated refrain that the Mastodon team has a lot of their plate. With bug fixes, existing feature pipeline, and now your funded work with fediscovery, issues important to other implementors might fall by the wayside or seem less important.

The easiest thing for us to do is to impress upon you and your colleagues the importance of this for the wider fediverse. You have @pfefferle@mastodon.social from WordPress, @mike@flipboard.social from FlipBoard, and @michael@newsmast.social from NewsMast, and likely others who would be on board (@hongminhee@fosstodon.org with Fedify/Ghost?) with switching away from as:Note (I can't speak for them, but probably?)

The second easiest thing here would be to have a developer make a PR against the Mastodon repo. I'd love to also make this happen (funding and such permitting).

4 Likes

@julian An issue we have with redirecting the user to the original post is that it makes it very hard for the user to interact with the post. We still want to improve this (in 4.4?) but are still very short on resources.
We discussed changing the "read more" button to open a modal, and (is this a good idea?) supporting an AP attribute with an iframe suitable for embedding the content, and changing the show more button to open a modal with this iframe

@pfefferle @manton @samsethi @andypiper

@julian An issue we have with redirecting the user to the original post is that it makes it very hard for the user to interact with the post. We still want to improve this (in 4.4?) but are still very short on resources.
We discussed changing the "read more" button to open a modal, and (is this a good idea?) supporting an AP attribute with an iframe suitable for embedding the content, and changing the show more button to open a modal with this iframe

@pfefferle @manton @samsethi @andypiper

@julian We are doing our best to improve our implementation where we can, but it often requires a lot more work than what it initially seems. PRs are very welcome, but should probably be preceded by reaching out to us and seeing if we agree with the proposed implementation, and if it covers everything that it needs to

@pfefferle @mike @michael @hongminhee

@renchap@oisaur.com That is a valid concern. A basic tenet of growth hacking and increasing engagement is simply to not drive the user to another site.

There's an opposing viewpoint that states that you should trust your users enough for them to return on their own, hehe.

I know there's a strong desire to keep users on-platform, which is why I suggested using target="_top" to open a new tab. I hope that's a good enough compromise, but ultimately it is up to the Mastodon team as to what works best.

1 Like

@julian This is totally not about growth hacking or engagement 🤔
Users see some content, click on it, then end up with a new UI, see a reply button, click on it, and are asked to create a new account, or to sign up (but not with their initial account). Our user testing (and many feedback) points that this is a very common issue with AP federation at the moment, even between Mastodon instances.
Not many people understand what is the federation and how to work around it

1 Like

@julian This is totally not about growth hacking or engagement 🤔
Users see some content, click on it, then end up with a new UI, see a reply button, click on it, and are asked to create a new account, or to sign up (but not with their initial account). Our user testing (and many feedback) points that this is a very common issue with AP federation at the moment, even between Mastodon instances.
Not many people understand what is the federation and how to work around it

@julian Ghost already represents posts as `as:Article` objects. Interestingly, they put `as:Note` into the `as:preview` property of `as:Article` objects, which I don't think Mastodon utilizes.

https://github.com/TryGhost/ActivityPub/blob/46ef68e2c79ec9e8e3fb8d9e5ebbd0729c6bae72/src/handlers.ts#L58-L70

@renchap @pfefferle @mike @michael

1 Like

@renchap@oisaur.com

Our user testing (and many feedback) points that this is a very common issue with AP federation at the moment, even between Mastodon instances.

I am more than willing to admit that this is a complex issue that cannot be solved independently by one implementor. A user shouldn't have to think about how to navigate various ActivityPub implementations with respect to replying/liking, etc.

My apologies for assuming it was about growth hacking (which I still wouldn't begrudge you if it factored in, I think we all think about it a little.)

So let's set aside that for now and see if the content presentation can be improved just enough.

1 Like

@evan @julian @pfefferle @manton @renchap @andypiper @Gargron I 100% agree with Julian. We are new to AP development but very excited. I was surprised by the lack of AP vocab support in Mastodon given the AP vocab has not been updated since May 2017.

Being a podcast & music app we had hoped to use the LISTEN verb. Sadly we can't as there is no support? Equally we offer blogging and event ticketing in our platform, so using ANNOUNCE, ARTICLE and BUY verbs will hopefully work???

1 Like

@julian the cynicism in me tells me that they did that and haven't changed it yet so they don't "accidentally" send someone to a better Fediverse software.

Lots of Mastodon decisions seem very sus lately. The lack of moderation tools and the devs completely ignoring requests for them are the biggest concern.😔

@julian the cynicism in me tells me that they did that and haven't changed it yet so they don't "accidentally" send someone to a better Fediverse software.

Lots of Mastodon decisions seem very sus lately. The lack of moderation tools and the devs completely ignoring requests for them are the biggest concern.😔

/cc @linos

/cc @linos

@samsethi so, I think you should just publish the activities that make sense for the problem domain, and we can worry about getting support for them by other platforms afterwards.

@samsethi so, I think you should just publish the activities that make sense for the problem domain, and we can worry about getting support for them by other platforms afterwards.

@samsethi here are the Object-Types that are supported and that will be transformed into a `Note` https://github.com/mastodon/mastodon/blob/ca8e892c1abb91722c256030c83cabec8e3445ff/app/lib/activitypub/activity.rb#L9

@julian @renchap @pfefferle @mike @michael @hongminhee

Same for CastoPod: Mastodon was/is the reason they actually send the creation of a `Ǹote`, which essentially contains the summary and a to link of their well defined PodcastEpisode ActivityStreams object. In fact adding a new supported object type to Mastodon is a one-liner and I was a bit sad that not even a issue got opened. But I hope we can overcome such hurdles in the near future!

1 Like

If I remember correctly, Mastodon simply implemented a link to the source as the ‘solution’ for as:Article. This is not what users expect, it is not what the author had in mind, but it is probably considered ‘sufficient’ by Mastodon.

Mastodon shouldn’t ‘adapt’ to other services either, but it should implement the AP standard properly. The way it has been handled so far, it feels rather arrogant.