Fediverse Enhancement Proposals

FEPs we support

FEPs (Fediverse Enhancement Proposals) are shared agreements on how ActivityPub apps handle specific things. Here's each one we support, how much of it we do, and a link to the full proposal.

We plan to release Welley as open source in the future. No release date or license is announced yet.

  • FEP-044f

    Consent-respecting quote posts

    Authors can decide whether their posts can be quoted across servers.

    Welley supports quote requests, authorization checks, acceptance, rejection, and revocation.

    • Welley sends and receives QuoteRequest activities, and handles accepting or rejecting the request.
    • Quote authorization stamps let receiving servers check that the author consented.
    • Revoking takes back permission for a quote that the author approved before.

    Other servers need the consent protocol for this to work the same way. A plain link or an older quote extension doesn't show that the author consented.

  • FEP-1311

    Media Attachments

    Welley sends and receives media attachments, and can read several versions of the same file.

    Welley supports attachment exchange and reading variants. Support for some recommendations and output forms is narrower.

    • Welley accepts a single media URL or a typed array of media links.
    • It can use size variants and preview images from remote attachments.
    • Sending multi-variant URL arrays needs a configuration flag, and it's off by default.

    Welley doesn't implement the full proposal. In particular, it doesn't handle digestMultibase, and by default it sends a single primary URL for compatibility.

  • FEP-1b12

    Group federation

    Public group channels can exchange posts and comments with forum-style ActivityPub communities.

    Public channels support standard Group actors and announcement flows.

    • A public channel uses a standard Group actor.
    • The channel shares accepted posts through Announce activities and keeps the original author.
    • Welley accepts group announcements and puts the content in the right channel.

    Private Welley communities use extra Welley properties. Not all group settings, membership rules, and moderation actions carry over to other software.

    The forum in category view, with the pinned welcome topic first. The category and tag filters and the sort control sit above it.
  • FEP-3b86

    Activity Intents

    Remote interaction links can keep track of what someone wants to do.

    Welley supports action-specific WebFinger links and authorization redirects.

    • WebFinger offers a separate template for each supported action, such as Follow, Like, Announce, and Create.
    • Group discovery also includes Join.
    • The interaction endpoint takes the person to the right action in Welley.

    The remote app has to use these intent links. Welley's own Vote intent links are extensions. They aren't standard FEP actions.

  • FEP-5feb

    Search indexing consent for actors

    Profile owners can say whether their public posts may show up in search indexes.

    Welley publishes each account's consent, imports consent from other servers, and limits local text search to match.

    • Welley publishes the indexable actor property based on profile privacy settings.
    • Accounts on other servers have to explicitly allow indexing before their posts show up in ordinary text search.
    • Browsing a hashtag can still find posts from an author who isn't indexable.

    The property asks other servers to respect consent. It doesn't block access to public posts or control independent search engines.

    Some of the settings for search, discovery and who can see what's on your profile. Navigation and account details are cropped out.
  • FEP-7458

    Using the replies collection

    A server can fetch replies from the original post instead of waiting for them to be delivered.

    Welley publishes replies collections and fetches remote ones.

    • Welley publishes a paged replies collection for posts.
    • Welley fetches remote reply collections and follows their pages.
    • When someone finds a remote discussion, Welley can fill in older context in the background.

    Privacy, moderation, fetch limits, and whether the other server is reachable still apply. A collection doesn't guarantee a complete, instant copy of every discussion.

  • FEP-7628

    Move actor

    Accounts can move between servers, and their followers switch to the new account.

    Welley supports incoming and outgoing actor moves, aliases, redirects, and follower transfers.

    • Welley receives Move activities and checks the destination alias before it moves local followers over.
    • When an account moves away, Welley publishes the destination and sends Move activities to followers on other servers.
    • Welley sends Follow to the destination and removes the old follow.

    Welley sets movedTo, and the old account stays accessible. It doesn't stop all delivery to remote inboxes that have moved. Posts need a separate export or import.

    The migration page with its three steps and an empty form for an account alias. This uses sample community content.
  • FEP-7888

    Demystifying the context property

    Welley uses context to connect event discussions and to fetch some remote discussion collections.

    Welley supports event context links and some remote context collection flows.

    • Posts attached to an event can point to the Event URI as their context.
    • Welley can follow a remote context collection, including through an intermediate document that points to the collection.

    Welley doesn't publish a general context collection for every thread. It doesn't support full context-based audience routing or conversation ownership.

  • FEP-844e

    Capability discovery

    Other software can read a structured list of what Welley supports from its application actor.

    The application actor publishes its capabilities, and this is tested.

    • The application actor publishes an implements array with capability identifiers and names.
    • The response includes the JSON-LD mapping for that property.
    • Right now, Welley advertises fifteen FEP identifiers.

    Welley doesn't read other servers' capability lists to negotiate features yet.

  • FEP-8a8e

    A common approach to using the Event object type

    Events use shared ActivityPub fields for times, location, description, and attendance.

    Welley supports core Event exchange and attendance flows, plus some event extension fields.

    • An Event includes a title, start time, end time, timezone, location, and attendee collection.
    • Create and Update send out event changes.
    • Join and Leave carry attendance changes between Welley servers.

    The latest version of the proposal also requires organizers and has more rules for location and capacity. Welley doesn't implement all of the latest version.

    Someone who's invited answers Yes, No or Maybe. The organizer sees who's going.
  • FEP-8fcf

    Followers collection synchronization across servers

    Servers can spot differences in their follower lists and fix them.

    Welley supports outbound digests, inbound checks, the partial collection endpoint, and repair jobs.

    • Welley adds a Collection-Synchronization header when a delivery asks for follower synchronization.
    • The receiving server compares a digest. If the lists differ, it fetches the follower collection for that server.
    • Welley repairs stale follower relationships separately from the inbox request.

    Administrators can turn synchronization off. The other server has to implement the same protocol.

  • FEP-9098

    Custom emojis

    Custom emoji can travel with posts, profiles, and reactions.

    Welley supports custom emoji tags and imports for supported federated content.

    • Outgoing tags link each emoji shortcode to its image.
    • Welley reads Emoji tags from other servers and stores each shortcode under the domain it came from.
    • Media restrictions also apply when Welley downloads remote emoji.

    A media block can stop an emoji image from loading. Apps on other servers can show the shortcode instead.

    The custom emoji editor shows the file requirements, a shortcode, a category, and whether the emoji shows in the picker.
  • FEP-9967

    Polls

    People can exchange polls and votes with compatible servers.

    Welley supports sending and receiving single-choice and multiple-choice polls, votes, and result updates.

    • Polls use Question objects with oneOf or anyOf choices.
    • Welley handles votes from other servers and sends out poll results.
    • Each federated poll carries its end time, whether it's closed, and the voter count.

    The other app has to support this poll format. Its interface can show different controls or result details.

    The feed shows formatted text, an inline spoiler that a reader reveals with a click, and a poll readers can answer right there.
  • FEP-b2b8

    Long-form Text

    Long posts can use Article objects with a title, full text, and a short preview.

    Welley supports article content, previews, source metadata, and some rich text markup.

    • Welley sends and receives Article objects instead of treating every post as a short Note.
    • Outgoing articles can include a lead image, an excerpt, and Markdown source.
    • Welley keeps some article markup, including inline media and ruby annotations.

    If an article lists several authors, Welley takes the first one. Headings turn into bold text, so some article structure is lost.

  • FEP-c0e0

    Emoji reactions

    Emoji reactions work across servers.

    Welley supports Unicode and custom emoji reactions, including removing and delivering them.

    • Welley sends and receives EmojiReact activities for supported posts.
    • Undo removes a remote reaction.
    • Custom emoji reactions carry their emoji tag and the domain they come from.

    Other software can support a different set of reactions. Welley doesn't provide the optional emojiReactions collection.

    Members react to a forum topic with emoji. Each emoji gets its own chip and count.
  • FEP-c16b

    Formatting MFM functions

    Some Misskey blur markup can appear as an inline spoiler.

    Welley supports only blur formatting in incoming posts.

    • Welley recognizes blur segments in Misskey Markdown source.
    • Welley turns supported MFM blur classes and blur attributes into a safe spoiler.

    Welley doesn't implement the full MFM function vocabulary or advertise htmlMfm support. Other MFM effects can lose their formatting.

    The feed shows formatted text, an inline spoiler that a reader reveals with a click, and a poll readers can answer right there.
  • FEP-d556

    Server-Level Actor Discovery Using WebFinger

    A WebFinger query for the server can return its application actor.

    Welley supports the Mastodon-style self-link discovery form from the proposal. It doesn't list an explicit FEP identifier for it.

    • A query for the domain or the configured server URL returns a self link to the instance actor.
    • Both forms resolve to the same actor.

    The lookup matches the configured origin text exactly and doesn't normalize a trailing slash. It doesn't publish the recommended Service relation or support relation filtering.

  • FEP-e232

    Object Links

    Quote posts include structured links to the posts they quote.

    Welley uses Object Links only to publish and import quote references.

    • Welley adds a Link tag with the ActivityPub quote media type to an outgoing quote.
    • Welley recognizes the same link form in incoming posts, including links without a name.

    This covers quote links. It doesn't cover every possible Object Links media type.

  • FEP-efda

    Followable objects

    You can follow a post and get later activity in its discussion.

    Follow(post) and Undo work in both directions and are tested.

    • Welley sends Follow with the post URI as its object.
    • Incoming post follows and Undo activities update post subscriptions.
    • Following a post is separate from following its author.

    The latest version of the FEP uses a followers collection to discover objects you can follow. Welley posts don't expose that collection or a general discovery algorithm. In Welley, the feature still uses the older name Followed posts.

  • FEP-f1d5

    NodeInfo in Fediverse Software

    Other servers can find Welley's software and protocol details through NodeInfo.

    Welley supports NodeInfo discovery and the 2.0 response.

    • The public discovery endpoint links to the NodeInfo 2.0 document.
    • The document lists the software version, ActivityPub support, and the FASP base URL.

    For now, the response uses fixed usage counts and registration status. Don't rely on it for live server statistics. There's no 2.1 route.

  • FEP-fe34

    Origin-based security model

    Origin checks help stop one server from claiming content or authority that belongs to another.

    Welley has several origin-based security checks, and they're tested.

    • Welley compares the scheme, host, and effective port of URIs.
    • The inbox rejects certain activities when the object's origin doesn't match the actor's origin.
    • Remote fetch, quote, collection, and presence paths add more origin checks.

    This is only part of the security model. It doesn't provide Object Integrity Proofs.