From a3d8bddab75ca4a06a4838b1a346f8fa61496b8b Mon Sep 17 00:00:00 2001 From: Gargron Date: Fri, 31 Jul 2026 12:53:18 +0200 Subject: [PATCH] FEP-2345: fediverse:creator (#893) First time writing and submitting a FEP myself, let me know if there's something I've done wrong here. This is the FEP for the `fediverse:creator` feature that has been [part of Mastodon since July 2024](https://blog.joinmastodon.org/2024/07/highlighting-journalism-on-mastodon/). Co-authored-by: Eugen Rochko Reviewed-on: https://codeberg.org/fediverse/fep/pulls/893 --- fep/2345/fep-2345.md | 109 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 fep/2345/fep-2345.md diff --git a/fep/2345/fep-2345.md b/fep/2345/fep-2345.md new file mode 100644 index 0000000..82f9d20 --- /dev/null +++ b/fep/2345/fep-2345.md @@ -0,0 +1,109 @@ +--- +slug: "2345" +authors: Eugen Rochko +status: DRAFT +dateReceived: 2026-07-27 +discussionsTo: https://socialhub.activitypub.rocks/t/fep-2345-fediverse-creator/8844 +--- +# FEP-2345: fediverse:creator +## Summary + +This FEP specifies a method by which website authors can attach their fediverse profile to link previews generated by fediverse software for that website, through the combination of a new OpenGraph-style meta property and an ActivityPub-side security mechanism to prevent spoofing. + +## History + +Websites use OpenGraph meta properties in their HTML markup to control (or at least influence) how link previews generated in various applications, such as instant messengers and social media platforms, will render. Information such as title, website name, thumbnail picture, and author name are typically provided. This is especially common for websites that host individual articles, such as news sites, magazines, blogs, and other social media platforms. + +Often, the author of a website is present on the social media platform where the links to the website are being shared. However, usually there is no quick way to navigate to the author's social media profile from the link preview. Some social media platforms, like Twitter and Facebook, have added OpenGraph-style meta properties for linking a website with a Twitter (`twitter:site`) or Facebook (`fb:app_id`) profile. However, at the time of writing, even those properties don't result in a user-accessible way to navigate to the respective profile. + +In Twitter documentation, references to a property called `twitter:creator` can be found, with similar argumentation as this FEP; however, it does not seem to be in use or have ever been widely used. + +Being able to navigate to the social media profile of a website's author from that website's link preview is a win-win situation for the author and for the platform: + +- The author can gain new audience from people who see the link being passed around and become interested in their other work +- Platforms benefit from users discovering more useful and related information, i.e. being more useful to their users + +## fediverse:creator + +This FEP defines a new meta property `fediverse:creator`: + +```html + +``` + +Which can appear in the `` section of any website. + +The `content` attribute is to contain the WebFinger handle of the author's fediverse profile, i.e. username and domain separated by an `@`-symbol. A leading `@` can be included and ignored when processing. This format was chosen for its user-friendliness, as this style of handle is what users would be used to seeing and typing when using most fediverse software. + +The property can appear on the same page more than once to reference multiple authors. However, the display of more than one author and enforcement of a maximum number is left to the interpretation of individual platform implementers. + +It's trivial to imagine a scenario where a malicious website could be deliberately created to damage the reputation of unaffiliated social media users. By displaying a social media profile next to the link preview and facilitating quick navigation (and interactivity) to the "author", dogpiling, harassment and abuse can be directed from unsuspecting social media users (who see a malicious, e.g. bigoted, villanious, illegal website) towards other unsuspecting social media users who have nothing to do with it. + +To prevent this, a two-way verification must be established between the website that advertises a `fediverse:creator` tag, and the fediverse profile within. + +For this purpose, a new property for the JSON-LD Actor entity is defined: `attributionDomains`. This property is defined as a JSON-LD `@set`, an unordered array of string values, each being a hostname (domain) which is allowed to reference the Actor using `fediverse:creator`. + +Example: + +```json +{ + "@context": [ + "https://www.w3.org/ns/activitystreams", + { + "attributionDomains": { + "@id": "https://joinmastodon.org/ns#attributionDomains", + "@container": "@set" + } + } + ], + "attributionDomains": [ + "techcrunch.com", + "theverge.com" + ] +} +``` + +A `fediverse:creator` tag should only be processed if the website its on has its hostname listed in the `attributionDomains` property. `attributionDomains` only needs to list the top-level domain name to permit references from subdomains, e.g. `example.com` should allow references from pages on `foo.example.com` or `foo.bar.example.com`. + +### Processing a link preview + +In line with the above, the procedure for processing a `fediverse:creator` tag on a link preview is as follows: + +1. Determine if the linked webpage contains a `` tag with the `name` or `property` attribute equal to `fediverse:creator`. +2. Extract the value from the `content` attribute of the tag and resolve it to an ActivityPub actor using WebFinger or local cache as seen fit. +3. Compare the hostname of the linked webpage with the `attributionDomains` property of the actor. + - If there is a match, display a rich fediverse profile link next to the link preview as seen fit within your fediverse application. + - If there is no match, ignore the `fediverse:creator` tag. Alternatively, you may notify the actor if they are on your platform and ask them if they want to add this hostname to their `attributionDomains`. + +### Security considerations + +A `fediverse:creator` tag must not be processed if the hostname of the website it's on is not referenced from the target profile's `attributionDomains` property. + +## Implementations +### Fediverse software + +List of fediverse software that can interpret and render fediverse:creator information. + +- [Mastodon](https://joinmastodon.org) + +### Notable websites + +List of notable websites that are publishing fediverse:creator information. + +- TechCrunch +- The Verge +- MacRumours +- GamingOnLinux + +## References + +- [OpenGraph](https://ogp.me/) +- [ActivityPub](https://www.w3.org/TR/activitypub/) +- [JSON-LD](https://www.w3.org/TR/json-ld11/) +- [WebFinger](https://datatracker.ietf.org/doc/html/rfc7033) + +## Copyright + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication + +To the extent possible under law, the authors of this Fediverse Enhancement Proposal have waived all copyright and related or neighboring rights to this work.