Skip to content

Related to Emoji rendering and interaction #1797

@Jiwoon-Kim

Description

@Jiwoon-Kim

@obenland
As you suggested, I’ve reorganized my proposal into several topic-focused issues.
However, I intentionally didn’t split them into too many separate GitHub issues. The reason is that some of these aren’t problems that can be solved purely by coding changes in the ActivityPub plugin itself. They’re more indirect, ecosystem-wide issues that would require broader policy decisions and changes to how different services interact within the Fediverse.

Because of that, it felt a bit awkward to break them down into completely separate issues for now — as their resolution wouldn’t be handled independently within the plugin’s scope anyway.

That said, if there are parts you think can be handled individually, please feel free to point them out. I’d be happy to get your feedback on which ones could be isolated, and I can then create fresh, more focused issues for those.

Thanks for your understanding!
#1129 (comment)


Issue 1: Unify Standard Emoji Rendering Across the WordPress Ecosystem

[Improvement] Emoji: Unify Standard Emoji Rendering Logic

Is your feature request related to a problem? Please describe.
The WordPress ecosystem currently renders standard emojis inconsistently. Self-hosted sites use s.w.org SVGs as a fallback, WordPress.com uses s0.wp.com Twemoji SVGs, and the WordPress Reader often displays these as proxied PNGs. This fragmentation creates a poor user experience and will complicate the future implementation of custom emojis.

Describe the solution you'd like

  1. Establish a single, unified rendering engine and CDN source for all standard emojis across the entire WordPress ecosystem (self-hosted, WordPress.com, Reader).
  2. Provide a core option for site administrators to disable system font fallback and enforce consistent SVG/PNG rendering to ensure all users see the same emojis.
  3. This unified renderer (e.g., using an updated version of Twemoji.parse()) should serve as the foundation for future custom emoji support.

Describe alternatives you've considered
Maintaining the current fragmented system, which will lead to increasing compatibility issues as new emoji sets are released and custom emoji functionality is added.

Additional context
A consistent foundation is necessary before a reliable custom emoji system can be built. This addresses a long-standing inconsistency in WordPress core.


Issue 2: Implement a Custom Emoji Registration and Management System

[Feature Request] Emoji: Implement a Custom Emoji Management System

Is your feature request related to a problem? Please describe.
WordPress currently has no native system for site administrators to register and manage custom emojis, a feature common on platforms like Mastodon and Misskey. This prevents communities from creating a unique visual identity and expressive vocabulary.

Describe the solution you'd like
Create a new system, likely via a core feature or canonical plugin, for managing custom emojis. This system should include:

  1. An admin panel for uploading and registering new custom emojis.
  2. Support for rich metadata for each emoji, inspired by Misskey's implementation:
    • Name / Shortcode (e.g., :my_emoji:)
    • Tags and Categories (for organization)
    • NSFW (Not Safe For Work) Flag
    • License Information
    • Local/Global Option (to control whether an emoji is included in Fediverse transmissions).
  3. A dedicated CDN path for serving these custom emojis (e.g., custom-emoji.my-site.com/emoji/).

Describe alternatives you've considered
Relying on third-party plugins, which can lead to fragmentation and lack of a unified standard for ActivityPub federation.

Additional context
This feature is essential for WordPress to be a competitive, modern platform for building online communities, especially in a federated context.


Issue 3: Improve Custom Emoji Federation in the ActivityPub Protocol

[Improvement] ActivityPub: Improve Custom Emoji Federation and Reaction Aggregation

Is your feature request related to a problem? Please describe.
In the current Fediverse, custom emoji reactions are not aggregated across instances. If a user on instance-a.com reacts to a post with :my_emoji:, and a user on instance-b.com uses their own :my_emoji:, the two reactions are treated as different because their source URLs are different. This fragments user interaction and undermines the purpose of a federated network.

Describe the solution you'd like

  1. Instead of identifying custom emojis solely by their name and URL, implement a system based on a unique identifier. This could be a hash of the image file or a Globally Unique Identifier (GUID).
  2. When transmitting emoji data via the ActivityPub protocol, include this unique identifier alongside the standard name and URL.
  3. Receiving instances should use this unique ID to recognize that two emojis from different instances are functionally identical, allowing them to aggregate reactions correctly.

Describe alternatives you've considered
Maintaining the current system, where user interactions remain fragmented across the Fediverse.

Additional context
Solving this problem would be a significant improvement for the entire Fediverse, not just WordPress. WordPress could lead the way in proposing a standard for more robust emoji federation.


Issue 4: Propose a Custom Emoji Federation Registry to Standardize Emojis

[Proposal] Emoji: Propose a Custom Emoji Federation Registry API

Is your feature request related to a problem? Please describe.
The root cause of many custom emoji issues in the Fediverse (reaction aggregation, inconsistent display, etc.) is the lack of a central, or at least a standardized, way to identify and resolve emojis. Each instance manages its own set, leading to federation conflicts.

Describe the solution you'd like
WordPress could take a leading role by proposing and developing a Custom Emoji Federation Registry API.

  1. Concept: An open, federated registry (e.g., fediemoji.org) where creators can submit custom emojis. Each emoji would be assigned a unique ID or hash.
  2. API Functionality:
    • Provide metadata for each emoji: name, source_url, hash, license, category.
    • Allow instances to sync this public list to their local database.
  3. ActivityPub Integration: When transmitting activities, instances would include the original registry ID for any custom emoji used. This would allow any other instance to recognize the emoji and aggregate interactions correctly, regardless of its cached CDN path.

Describe alternatives you've considered
Allowing the current chaotic system to persist, which hinders deep interoperability.

Additional context
This is a forward-thinking proposal that could solve a major pain point for the entire Fediverse. By pioneering this solution, WordPress would solidify its position as a leader in the open, federated web.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions