Emojis lost in ActivityPub federated posts

AI-generated summary

Users are discussing a bug where emojis (e.g., :tada:) and other formatting (markdown, bbcode, images) are lost when Discourse posts are federated via ActivityPub to platforms like Mastodon. Jagster suggests this may be by design, possibly due to how Discourse bakes content, and frames it as a feature request rather than a bug. rokejulianlockhart disagrees, arguing that since some HTML (like <code>) is preserved, consistency demands either full preservation or none — and that stripping markup defeats the purpose of federation. Jagster clarifies that bugs imply broken code, while missing features are not bugs. heluecht1 notes that non-Unicode emojis are rendered as images, which many AP systems don’t support. rokejulianlockhart questions why Discourse doesn’t convert emojis to Unicode equivalents. icaria36 argues that since both Discourse and Mastodon recognize :tada: as an emoji, the text should be preserved — visual differences in emoji sets are irrelevant. The core issue remains whether federation should preserve original formatting or normalize it, and whether this behavior is a bug or a design limitation.

Emojis inserted in a Discourse post are lost when federated (tested on Mastodon).

This happens with basic emojis with common syntax like :tada: :tada:

So does everything else, that is markdown, bbcode etc. Including all images.

That is by design, I suppose.

@Jagster, would the undermentioned be an example, consequently?

…why? We’re not discussing CSS here – the actual markup of the page must be preserved in order for the original content to be considered federated.

Stripping an HTML page of its HTML would generally render that page unreadable. That applies to CommonMark.

1 Like

I don’t know. Perhaps someone how knows better will chime in. But I could guess it has something to do with how Discourse is baking content. Or not.

But AFAIK this isn’t a bug, but more like another Contribute > Feature request

@Jagster, actually, I think it is, because per the citation, some formatting is preserved - <code>s. Either all or none should be, surely?

Matter of definition :man_shrugging:

  • a bug is when something is coded, but it does something that breaks places
  • bad UX, missing features etc. aren’t bugs, because the code does what is asked

@Jagster, more nuance that merely those criteria applies:

Big question is if these emojis are Unicode emojis. If not, then they are normally displayed as images. And inline images aren't supported by many AP systems. Your example :tada: for example seems to be an image.

1 Like

@heluecht, why aren’t they converted into the Unicode counterparts, instead of images?

I believe the point is: in Discourse, :tada: generates and emoji, and at least in Mastodon clients :tada: generates an emoji as well. So why not keeping :tada:?

The fact that the actual emoji images rendered might be from different emoji icon sets and therefore look slightly different is irrelevant.