Compare software
See what fediverse software supports, side by side. Pick up to 6.


| Question | ![]() | ![]() | |
|---|---|---|---|
| Accounts and profiles | |||
| Move to another server with followersFEP-7628 Move actor | Partial Moving in works from the profile settings; moving out has no admin UI and needs WP-CLI. Source | No Source | Partial Moving in works through account aliases; moving out is behind a hidden feature flag and not in the self-hosted service 1.2.15. Source |
| Accept followers moving inFEP-7628 Move actor | Yes Source | No Source | Yes Source |
| Export your dataFEP-6fcd Account Export Container FormatFEP-9091 Export Actor Service Endpoint | Yes WordPress core Tools > Export downloads posts, pages, comments and other content as a WXR file. Source | Yes Source | Yes Admins can export site content as a JSON file. Source |
| Import follows, blocks and mutes | Partial Only follows, from a Fediverse Starter Kit JSON file, and only with the Following UI enabled. No block or mute list import. Source | Unknown | Unknown |
| Delete your own account | Unknown | Partial Self-deletion only if the admin enables open_deletion, and the deletion is not federated to other servers. Source | Unknown |
| Two-factor authentication | Partial Not in WordPress core; needs a plugin such as Two Factor. Source | No Source | Partial Staff sign-in can require an emailed code; no authenticator app support. Source |
| Passkeys and security keys | Unknown | No Source | Unknown |
| Sign in with an external provider | Partial Needs a plugin such as OpenID Connect Generic Client. Source | Yes Source | Unknown |
| Profile metadata fieldsFEP-fb2a Actor metadata | Yes Source | No Source | No Source |
| Verified profile links | Unknown | Unknown | Unknown |
| Profile header image | Yes Source | No Source | Yes Source |
| Bot accounts | Unknown | No Source | Unknown |
| Several identities under one login | Unknown | Yes One account can own several blogs, each its own ActivityPub actor, up to the admin's max_blogs limit. Source | Unknown |
| Posting | |||
| Edit published posts | Yes Source | Yes Source | Yes Source |
| Content warnings | Partial A content warning can be set per post, but it only applies to the federated copy, not the post on the site. Source | No Source | Partial Content warnings on posts from other servers are shown and hide the post until revealed; Ghost users cannot add one. Source |
| Formatted text in posts | Yes Source | Yes Source | Yes Source |
| Write in Markdown | Partial Not in WordPress core; needs Jetpack's Markdown block or another plugin. Source | Yes Source | Yes Through the editor's Markdown card. Source |
| Scheduled posts | Yes Scheduled WordPress posts federate when they publish. Source | Partial Future-dated posts stay hidden on the blog until their date, but are not federated when they go live. Source | Yes Source |
| Drafts | Yes Source | Yes Source | Yes Source |
| Control who can reply | Unknown | Unknown | Unknown |
| Custom emojiFEP-9098 Custom emojis | Partial Custom emoji from other servers are shown. WordPress has no local custom emoji to use in posts. Source | Unknown | Unknown |
| Post language | Partial The site language is federated as contentMap; per-post languages need a multilingual plugin such as Polylang or WPML. Source | Yes Source | Unknown |
| Pin posts to a profile | Yes Sticky posts are published as the featured collection. Source | Partial Posts can be pinned on the blog, but pins are not federated as a featured collection. Source | Unknown |
| Local-only posts | Yes Per-post Do not federate visibility. Source | Partial Only per blog: posts on private or password-protected blogs are never federated. Source | Unknown |
| Automatically delete old posts | Unknown | Unknown | Unknown |
| Long-form articlesFEP-b2b8 Long-form Text | Yes Source | Yes Source | Yes Source |
| HashtagsFEP-eb48 Hashtags | Yes Source | Yes Source | Unknown |
| Link previewsFEP-8967 Generating link previews for attached links | Unknown | Unknown | Unknown |
| Translate posts | Unknown | Unknown | Unknown |
| Media | |||
| Upload JPEG images | Yes Source | No No media upload; images can only be embedded by URL in Markdown. Source | Yes Source |
| Upload PNG images | Yes Source | No No media upload; images can only be embedded by URL in Markdown. Source | Yes Source |
| Upload animated GIFs | Unknown | No No media upload; images can only be embedded by URL in Markdown. Source | Yes GIFs are stored unprocessed, so they keep animating. Source |
| Upload WebP images | Yes Source | No No media upload; images can only be embedded by URL in Markdown. Source | Yes Source |
| Upload HEIC images | Partial WordPress 6.7+ converts HEIC to JPEG, only when the server's ImageMagick supports HEIC. Source | No No media upload; images can only be embedded by URL in Markdown. Source | Unknown |
| Upload AVIF images | Partial WordPress 6.5+ accepts AVIF only when the server's image library supports it. Source | No No media upload; images can only be embedded by URL in Markdown. Source | No Source |
| Upload MP4 video | Yes Source | No No media upload; images can only be embedded by URL in Markdown. Source | Yes In Ghost posts through the video card; social web notes take images only. Source |
| Upload WebM video | Yes Source | No No media upload; images can only be embedded by URL in Markdown. Source | Yes In Ghost posts through the video card; social web notes take images only. Source |
| Upload audio | Yes Source | No No media upload; images can only be embedded by URL in Markdown. Source | Yes In Ghost posts through the audio card; social web notes take images only. Source |
| Several attachments per postFEP-1311 Media Attachments | Yes Source | Unknown | Unknown |
| More than four attachments per post | Partial Federates 4 images per post by default; admins or authors can raise the limit. Source | Unknown | Unknown |
| Image descriptions (alt text) | Unknown | Unknown | Yes Source |
| Sensitive media | Unknown | Unknown | Partial Sensitive media from other servers is hidden until revealed; Ghost users cannot mark their own media sensitive. Source |
| Removes location data from photos | Unknown | Unknown | Unknown |
| Video and audio | |||
| Video transcoding | Unknown | Unknown | Unknown |
| Interactions | |||
| Likes | Partial Likes from other servers are shown on posts. WordPress users can only like remote posts through the experimental ActivityPub API. Source | Partialv0.16.0+ Likes from other servers are received and shown as a count to the author only. WriteFreely users cannot like posts. Source | Yes Source |
| Boosts | Partial Boosts from other servers are shown on posts. WordPress users can only boost remote posts through the experimental ActivityPub API. Source | No Source | Yes Source |
| Emoji reactionsFEP-c0e0 Emoji reactions | Unknown | Unknown | Unknown |
| Direct messages | No Source | Unknown | No Source |
| Approve followers manually | No Source | No Source | No Source |
| BookmarksFEP-4772 Representing bookmarks | Unknown | Unknown | Unknown |
| Join fediverse groupsFEP-1b12 Group federation | Unknown | Unknown | Unknown |
| Host groups or communitiesFEP-1b12 Group federation | Unknown | Unknown | Unknown |
| Interact from another serverFEP-3b86 Activity Intents | Yes Source | Unknown | Unknown |
| EventsFEP-8a8e A common approach to using the Event object type | Partial Needs the Event Bridge for ActivityPub plugin and a supported event plugin. Source | Unknown | Unknown |
| Privacy and safety | |||
| Followers-only posts | Unknown | No Source | Unknown |
| Unlisted posts | Yes Per-post Quiet public visibility. Source | Partial Only per blog: an unlisted blog is left out of the Reader timeline but reachable by link. Source | Unknown |
| Block accounts | Yes Source | Unknown | Yes Source |
| Mute accounts | Unknown | Unknown | Unknown |
| Block whole servers (personal) | Yes Source | Unknown | Yes Source |
| Word filters | Yes Incoming activities containing blocked keywords are rejected. Source | Unknown | Unknown |
| Hide follower and following lists | Yes Source | Unknown | Unknown |
| Choose whether posts are searchableFEP-5feb Search indexing consent for actorsFEP-268d Search consent signals for objects | Partial The federated indexable flag follows the site-wide search engine visibility setting, not a per-user choice. Source | Unknown | Unknown |
| Hide from search engines | Yes Site-wide Discourage search engines setting in WordPress core. Source | Unknown | Unknown |
| Signed fetches required (secure mode)FEP-7502 Limiting visibility to authenticated actors | Yes Source | No Source | Unknown |
| Moderation | |||
| Report content | Unknown | No Source | Unknown |
| Forward reports to other servers | No Source | No Source | Unknown |
| Block servers (admin) | Yes Source | No Source | Yes Per site, from the social web moderation settings. Source |
| Limit servers | Unknown | No Source | Unknown |
| Allowlist federation | Unknown | No Source | Unknown |
| Import server blocklists | Yes CSV import plus blocklist subscriptions. Source | No Source | Unknown |
| Approve sign-ups | Unknown | No Source | Unknown |
| Invite links | Unknown | Yes Source | Unknown |
| CAPTCHA on sign up | Unknown | No Source | Unknown |
| Moderation audit log | Unknown | Unknown | Unknown |
| Appeal moderation decisions | Unknown | Unknown | Unknown |
| Custom content rules | Yes Site-wide blocked keywords reject matching incoming content. Source | Unknown | Unknown |
| Discovery | |||
| Full-text search | Yes WordPress core site search over the site's own posts. Source | No Source | Unknown |
| Trending content | Unknown | Unknown | Unknown |
| Profile directory | Unknown | Unknown | Unknown |
| Local timeline | Unknown | Yes The Reader timeline, enabled by the admin with local_timeline. Source | Unknown |
| Federated timeline | Unknown | No Source | Unknown |
| RSS feeds | Yes Source | Yes Source | Yes Source |
| Relay supportFEP-ae0c Fediverse Relay Protocols: Mastodon and LitePub | Yes Sends public activities to configured relays; Mastodon-style relay subscription is not supported. Source | Unknown | Unknown |
| Federation and protocols | |||
| NodeInfoFEP-f1d5 NodeInfo in Fediverse SoftwareFEP-0151 NodeInfo in Fediverse Software (2025 edition) | Yes Source | Yes Source | Yes Source |
| RFC 9421 HTTP signatures | Yes7.0.0+ Signs and verifies; used by default since 9.3.0. Source | No Source | Yes Through Fedify: verifies RFC 9421, signs with draft-cavage first and retries with RFC 9421. Source |
| Object integrity proofsFEP-8b32 Object Integrity Proofs | No Source | Unknown | Unknown |
| Fetches missing repliesFEP-f228 Backfilling conversationsFEP-7458 Using the replies collection | Unknown | Unknown | Unknown |
| Diaspora protocol | No Source | Unknown | Unknown |
| Nomadic identityFEP-ef61 Portable Objects | Unknown | Unknown | Unknown |
| Webmentions | Partial Needs the separate Webmention plugin. Source | No Source | Yes Source |
| ActivityPub client-to-server APIFEP-d8c2 OAuth 2.0 Profile for the ActivityPub API | Partial Experimental, off by default, and only part of the ActivityPub API Basic Profile. Source | Unknown | Unknown |
| Apps and API | |||
| Mastodon-compatible API | Partial Needs the separate Enable Mastodon Apps plugin. Source | No Source | Unknown |
| Official mobile app | Unknown | Partial iOS app for iPhone and iPad only; no Android app. Source | Unknown |
| Installable web app | Unknown | Unknown | Unknown |
| Push notifications | Unknown | Unknown | Unknown |
| Webhooks | Unknown | Unknown | Yes Source |
| Documented API | Yes Source | Yes Source | Yes Source |
| Running a server | |||
| Official Docker image | Unknown | Yes Source | Yes Official Docker Compose setup (TryGhost/ghost-docker), including an optional self-hosted ActivityPub service. Source |
| S3-compatible object storage | Unknown | Unknown | Yes Built-in S3Storage adapter with a configurable endpoint, set in config. Source |
| PostgreSQL | No Source | No Source | No Source |
| MySQL or MariaDB | Yes Source | Yes Source | Yes MySQL 8 is the only supported production database; MariaDB is not recommended. Source |
| SQLite | Partial Needs the SQLite Database Integration feature plugin. Source | Yes Source | Partial SQLite is for development only; MySQL 8 is required in production. Source |
| Single-user mode | Unknown | Yes Source | Unknown |
| Handles on a different domain | Unknown | Unknown | Yes The social web handle can use another domain that redirects WebFinger to Ghost. Source |
| Custom themes or CSS | Yes Source | Yes Each blog can set custom CSS. Source | Yes Source |
| Cleans up cached remote media | Yes Cached remote media is removed when remote posts are purged, after 30 days by default. Source | Unknown | Unknown |
| Plugins or extensions | Yes Source | No Source | Unknown |
Answers are contributed and sourced. See something wrong or missing? Use “Unknown” links or a software's Feature support section to fix it.