Compare software

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

WordPress
Writefreely
Ghost
107 questions
Feature support for WordPress, Writefreely, Ghost
Question
WordPress
40 yes · 42 unknown
Writefreely
20 yes · 44 unknown
Ghost
33 yes · 64 unknown
Accounts and profiles
Move to another server with followersFEP-7628 Move actorPartial

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 actorYes Source No Source Yes Source
Export your dataFEP-6fcd Account Export Container FormatFEP-9091 Export Actor Service EndpointYes

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 mutesPartial

Only follows, from a Fediverse Starter Kit JSON file, and only with the Following UI enabled. No block or mute list import.

Source
UnknownUnknown
Delete your own accountUnknownPartial

Self-deletion only if the admin enables open_deletion, and the deletion is not federated to other servers.

Source
Unknown
Two-factor authenticationPartial

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 keysUnknownNo Source Unknown
Sign in with an external providerPartial

Needs a plugin such as OpenID Connect Generic Client.

Source
Yes Source Unknown
Profile metadata fieldsFEP-fb2a Actor metadataYes Source No Source No Source
Verified profile linksUnknownUnknownUnknown
Profile header imageYes Source No Source Yes Source
Bot accountsUnknownNo Source Unknown
Several identities under one loginUnknownYes

One account can own several blogs, each its own ActivityPub actor, up to the admin's max_blogs limit.

Source
Unknown
Posting
Edit published postsYes Source Yes Source Yes Source
Content warningsPartial

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 postsYes Source Yes Source Yes Source
Write in MarkdownPartial

Not in WordPress core; needs Jetpack's Markdown block or another plugin.

Source
Yes Source Yes

Through the editor's Markdown card.

Source
Scheduled postsYes

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
DraftsYes Source Yes Source Yes Source
Control who can replyUnknownUnknownUnknown
Custom emojiFEP-9098 Custom emojisPartial

Custom emoji from other servers are shown. WordPress has no local custom emoji to use in posts.

Source
UnknownUnknown
Post languagePartial

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 profileYes

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 postsYes

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 postsUnknownUnknownUnknown
Long-form articlesFEP-b2b8 Long-form TextYes Source Yes Source Yes Source
HashtagsFEP-eb48 HashtagsYes Source Yes Source Unknown
Link previewsFEP-8967 Generating link previews for attached linksUnknownUnknownUnknown
Translate postsUnknownUnknownUnknown
Media
Upload JPEG imagesYes Source No

No media upload; images can only be embedded by URL in Markdown.

Source
Yes Source
Upload PNG imagesYes Source No

No media upload; images can only be embedded by URL in Markdown.

Source
Yes Source
Upload animated GIFsUnknownNo

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 imagesYes Source No

No media upload; images can only be embedded by URL in Markdown.

Source
Yes Source
Upload HEIC imagesPartial

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 imagesPartial

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 videoYes 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 videoYes 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 audioYes 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 AttachmentsYes Source UnknownUnknown
More than four attachments per postPartial

Federates 4 images per post by default; admins or authors can raise the limit.

Source
UnknownUnknown
Image descriptions (alt text)UnknownUnknownYes Source
Sensitive mediaUnknownUnknownPartial

Sensitive media from other servers is hidden until revealed; Ghost users cannot mark their own media sensitive.

Source
Removes location data from photosUnknownUnknownUnknown
Video and audio
Video transcodingUnknownUnknownUnknown
Interactions
LikesPartial

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
BoostsPartial

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 reactionsUnknownUnknownUnknown
Direct messagesNo Source UnknownNo Source
Approve followers manuallyNo Source No Source No Source
BookmarksFEP-4772 Representing bookmarksUnknownUnknownUnknown
Join fediverse groupsFEP-1b12 Group federationUnknownUnknownUnknown
Host groups or communitiesFEP-1b12 Group federationUnknownUnknownUnknown
Interact from another serverFEP-3b86 Activity IntentsYes Source UnknownUnknown
EventsFEP-8a8e A common approach to using the Event object typePartial

Needs the Event Bridge for ActivityPub plugin and a supported event plugin.

Source
UnknownUnknown
Privacy and safety
Followers-only postsUnknownNo Source Unknown
Unlisted postsYes

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 accountsYes Source UnknownYes Source
Mute accountsUnknownUnknownUnknown
Block whole servers (personal)Yes Source UnknownYes Source
Word filtersYes

Incoming activities containing blocked keywords are rejected.

Source
UnknownUnknown
Hide follower and following listsYes Source UnknownUnknown
Choose whether posts are searchableFEP-5feb Search indexing consent for actorsFEP-268d Search consent signals for objectsPartial

The federated indexable flag follows the site-wide search engine visibility setting, not a per-user choice.

Source
UnknownUnknown
Hide from search enginesYes

Site-wide Discourage search engines setting in WordPress core.

Source
UnknownUnknown
Signed fetches required (secure mode)FEP-7502 Limiting visibility to authenticated actorsYes Source No Source Unknown
Moderation
Report contentUnknownNo Source Unknown
Forward reports to other serversNo Source No Source Unknown
Block servers (admin)Yes Source No Source Yes

Per site, from the social web moderation settings.

Source
Limit serversUnknownNo Source Unknown
Allowlist federationUnknownNo Source Unknown
Import server blocklistsYes

CSV import plus blocklist subscriptions.

Source
No Source Unknown
Approve sign-upsUnknownNo Source Unknown
Invite linksUnknownYes Source Unknown
CAPTCHA on sign upUnknownNo Source Unknown
Moderation audit logUnknownUnknownUnknown
Appeal moderation decisionsUnknownUnknownUnknown
Custom content rulesYes

Site-wide blocked keywords reject matching incoming content.

Source
UnknownUnknown
Discovery
Full-text searchYes

WordPress core site search over the site's own posts.

Source
No Source Unknown
Trending contentUnknownUnknownUnknown
Profile directoryUnknownUnknownUnknown
Local timelineUnknownYes

The Reader timeline, enabled by the admin with local_timeline.

Source
Unknown
Federated timelineUnknownNo Source Unknown
RSS feedsYes Source Yes Source Yes Source
Relay supportFEP-ae0c Fediverse Relay Protocols: Mastodon and LitePubYes

Sends public activities to configured relays; Mastodon-style relay subscription is not supported.

Source
UnknownUnknown
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 signaturesYes7.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 ProofsNo Source UnknownUnknown
Fetches missing repliesFEP-f228 Backfilling conversationsFEP-7458 Using the replies collectionUnknownUnknownUnknown
Diaspora protocolNo Source UnknownUnknown
Nomadic identityFEP-ef61 Portable ObjectsUnknownUnknownUnknown
WebmentionsPartial

Needs the separate Webmention plugin.

Source
No Source Yes Source
ActivityPub client-to-server APIFEP-d8c2 OAuth 2.0 Profile for the ActivityPub APIPartial

Experimental, off by default, and only part of the ActivityPub API Basic Profile.

Source
UnknownUnknown
Apps and API
Mastodon-compatible APIPartial

Needs the separate Enable Mastodon Apps plugin.

Source
No Source Unknown
Official mobile appUnknownPartial

iOS app for iPhone and iPad only; no Android app.

Source
Unknown
Installable web appUnknownUnknownUnknown
Push notificationsUnknownUnknownUnknown
WebhooksUnknownUnknownYes Source
Documented APIYes Source Yes Source Yes Source
Running a server
Official Docker imageUnknownYes Source Yes

Official Docker Compose setup (TryGhost/ghost-docker), including an optional self-hosted ActivityPub service.

Source
S3-compatible object storageUnknownUnknownYes

Built-in S3Storage adapter with a configurable endpoint, set in config.

Source
PostgreSQLNo Source No Source No Source
MySQL or MariaDBYes Source Yes Source Yes

MySQL 8 is the only supported production database; MariaDB is not recommended.

Source
SQLitePartial

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 modeUnknownYes Source Unknown
Handles on a different domainUnknownUnknownYes

The social web handle can use another domain that redirects WebFinger to Ghost.

Source
Custom themes or CSSYes Source Yes

Each blog can set custom CSS.

Source
Yes Source
Cleans up cached remote mediaYes

Cached remote media is removed when remote posts are purged, after 30 days by default.

Source
UnknownUnknown
Plugins or extensionsYes 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.