Ghost ActivityPub: How to Connect Your Blog to the Fediverse

Guide to Ghost's ActivityPub integration. Connect your Ghost blog to Mastodon, Threads, and the fediverse for federated social following.

What Is Ghost ActivityPub?

Ghost has made ActivityPub a core feature, with significant improvements in Ghost 6. ActivityPub is the protocol that powers the fediverse — a network of interconnected social platforms including Mastodon, Threads, Flipboard, WordPress (with a plugin), WriteFreely, and Surf.

With ActivityPub enabled, your Ghost publication becomes a social account that anyone on the fediverse can follow. When you publish a post, it federates to your followers’ feeds across all connected platforms. Readers on Mastodon see your posts in their timeline. Threads users can follow you directly. Your blog becomes part of the social web.

This is a fundamentally different distribution model from traditional social media. Instead of driving traffic from Twitter or Facebook to your blog, your blog is the social presence. Followers subscribe to @you@yourdomain.com from any fediverse-compatible app.

What You Can Do

  • Publish long-form posts that federate to followers across the fediverse
  • Post short-form “Notes” directly from Ghost’s social web interface — like tweets, but from your own domain
  • Receive replies and interactions in Ghost’s built-in social web inbox
  • Connect to Bluesky via Bridgy Fed integration
  • Build an audience that you fully own — followers are tied to your domain, not a platform

How Ghost ActivityPub Works

Publishing Flow

  1. You write a post in Ghost’s editor and publish it
  2. Ghost sends the post to all your ActivityPub followers
  3. Followers see the post in their Mastodon/Threads/Flipboard feed
  4. Readers can reply, boost, and favorite — all visible in Ghost’s social web inbox

Notes (Short-Form Posts)

Ghost introduced Notes — short-form posts published directly to the social web without creating a blog post. Think of them as tweets from your own domain.

Notes appear in your followers’ feeds and in Ghost’s social web timeline. They don’t create pages on your website — they exist only on the social web.

The Social Web Inbox

Ghost Admin includes a built-in social web reader (think of it as a fediverse client inside Ghost). From here you can:

  • View posts from accounts you follow
  • Reply to interactions with your content
  • Post Notes directly
  • Manage your fediverse presence

Setting Up ActivityPub on Ghost(Pro)

If you’re on Ghost(Pro), setup is straightforward.

Requirements

  • Custom domain required — ActivityPub does not work on .ghost.io subdomains. You must have a custom domain connected to your Ghost(Pro) site.
  • Any Ghost(Pro) plan works (Starter, Publisher, Business)

Enable ActivityPub

  1. Go to Settings → ActivityPub in Ghost Admin
  2. Toggle ActivityPub on
  3. Set your display name and bio for the fediverse
  4. Your fediverse handle is @yourname@yourdomain.com

That’s it. Your publication is now discoverable on the fediverse.

Test It

  1. Open Mastodon (or any fediverse app)
  2. Search for @yourname@yourdomain.com
  3. Follow your Ghost publication
  4. Publish a test post on Ghost — it should appear in your Mastodon timeline within seconds

Self-Hosted ActivityPub Setup

Self-hosted Ghost can use ActivityPub in two ways: through Ghost’s hosted gateway, or with a fully self-hosted ActivityPub container.

Option 1: Ghost’s Hosted Gateway (Simplest)

By default, even self-hosted Ghost routes ActivityPub through Ghost’s hosted gateway at ap.ghost.org. This means you get ActivityPub functionality without running additional containers.

Setup:

  1. Ensure your Ghost instance has a custom domain with SSL
  2. Enable ActivityPub in Settings → ActivityPub
  3. Ghost automatically routes federation through ap.ghost.org

Limitation: 100 interactions per day. The hosted gateway imposes a rate limit. For small publications, this is fine. If you exceed it (e.g., a post goes viral on Mastodon), you’ll need the self-hosted option.

Option 2: Self-Hosted ActivityPub (Full Control)

For higher limits and full control, self-host the ActivityPub service using Ghost’s official Docker Compose setup.

If you’re using Ghost’s official Docker installation, enable ActivityPub by adding it to the COMPOSE_PROFILES variable in your .env file:

COMPOSE_PROFILES=activitypub

Then pull and restart:

Terminal window
docker compose pull
docker compose up -d

Ghost’s Docker Compose configuration handles the ActivityPub service, Caddy routing, and database dependencies automatically. The ActivityPub service runs alongside Ghost and Caddy within the same stack.

Important: AMD64-only images. Ghost’s ActivityPub container is AMD64-only. If you’re running on ARM64 hardware (Oracle Cloud free tier, Raspberry Pi), you’ll need to build from source or use QEMU emulation, which significantly impacts performance. Choose an AMD64 VPS if ActivityPub is important to you.

For the full self-hosting Docker Compose setup including Ghost, Caddy, and MySQL, see our Ghost self-hosting guide.

Connecting to Mastodon, Threads, and Bluesky

Mastodon

Mastodon was the first major fediverse platform and has the deepest ActivityPub integration. Your Ghost publication is fully compatible:

  • Mastodon users search for @you@yourdomain.com and follow
  • Your posts appear as full articles in their timeline
  • Replies, boosts, and favorites flow back to Ghost’s social web inbox
  • Your followers see Notes (short-form posts) in their regular feed

Threads (Meta)

Threads added fediverse support in March 2024. Integration works but with some limitations:

  • Threads users can follow your Ghost publication
  • Your posts appear in their Threads feed
  • Reply threading works across platforms
  • Some features (like editing federated posts) may behave differently

Bluesky (via Bridgy Fed)

Bluesky uses AT Protocol, not ActivityPub. However, Bridgy Fed bridges the two protocols. Setup:

  1. Go to fed.brid.gy
  2. Enter your Ghost publication’s fediverse handle
  3. Bridgy creates a bridge between your ActivityPub presence and Bluesky
  4. Bluesky users can now follow and interact with your content

This is a third-party bridge, not a native integration — it works but may have occasional delays or formatting differences.

Flipboard

Flipboard natively supports ActivityPub. Your Ghost posts can appear in Flipboard magazines and feeds. Flipboard users follow your @you@yourdomain.com handle directly.

WordPress

WordPress sites with the ActivityPub plugin can follow your Ghost publication and vice versa. This creates interesting cross-platform publishing networks where readers on WordPress can follow Ghost publishers in their reader.

ActivityPub Limitations and Gotchas

1. Custom Domain Required

ActivityPub does not work on .ghost.io subdomains. You must have a custom domain configured. This is a protocol requirement — your domain is your identity on the fediverse.

2. Rate Limits on Hosted Gateway

The hosted gateway (ap.ghost.org) limits self-hosted instances to 100 interactions per day. This includes incoming follows, replies, boosts, and favorites. For most small publications, this is sufficient. If a post goes viral, you may temporarily hit the limit.

Solution: Run the self-hosted ActivityPub container for unlimited interactions.

3. AMD64-Only Docker Images

Ghost’s ActivityPub container and Traffic Analyzer container are built for AMD64 architecture only. They do not run natively on ARM64 hardware without QEMU emulation. If you’re choosing a VPS for self-hosted Ghost with ActivityPub, pick an AMD64 server.

4. Docker Compose Required for Self-Hosted

The self-hosted ActivityPub container requires Docker Compose. Ghost-CLI installations (the traditional Ubuntu + NGINX setup) don’t get ActivityPub natively — you’d need to run a separate Docker container alongside your Ghost-CLI install, which adds complexity.

Recommendation: If you plan to use ActivityPub on a self-hosted instance, use the full Docker Compose stack from the start. See our Ghost installation guide for Docker setup instructions.

5. Federation is Not Instant

ActivityPub federation relies on server-to-server communication. Most posts federate within seconds, but during high-traffic periods or when interacting with smaller, slower instances, delays of minutes to hours can occur. This is inherent to the protocol, not a Ghost-specific issue.

6. Edits and Deletes

Edits to published posts are re-federated, but not all platforms handle edits the same way. Mastodon shows the updated version. Some smaller clients may still show the original. Deleting a post sends a delete request, but cached copies on other servers may persist.

7. No Selective Federation

Currently, Ghost federates all published posts. You cannot choose to federate some posts but not others. If you publish a post, it goes to the fediverse. For content you want to keep off the fediverse, use “Email only” publishing mode.

Common Questions

Does ActivityPub help with SEO?

Not directly. ActivityPub interactions (follows, boosts, replies) happen on the fediverse, not on the open web. Google doesn’t crawl or index fediverse interactions. However, ActivityPub drives traffic to your site when followers click through to read full articles — and that traffic can improve engagement metrics.

Can I use ActivityPub for Ghost membership growth?

Yes. When fediverse followers click through to your Ghost site, they land on your posts where membership signup prompts (via Ghost Portal) are active. This creates a natural funnel: fediverse follower → site visitor → free member → paid subscriber. Combine this with a well-configured newsletter to keep those new members engaged.

Is Ghost ActivityPub the same as Mastodon?

No. Ghost is a publishing platform with ActivityPub support. Mastodon is a microblogging platform built on ActivityPub. They interoperate — a Mastodon user can follow your Ghost blog — but they serve different purposes. Ghost is for long-form publishing with a website; Mastodon is for short-form social posting.

What if I change my domain?

Changing your domain effectively creates a new fediverse identity. Your old followers would need to re-follow your new handle. ActivityPub identity is tied to your domain — treat it like a permanent decision.

Should I enable ActivityPub?

If your audience uses Mastodon, Threads, or other fediverse platforms — yes, it’s free distribution. If your audience is primarily on Twitter/X, Instagram, or LinkedIn, ActivityPub won’t reach them directly. Enable it as an additional channel, not a primary strategy. It costs nothing to turn on and may capture an audience segment you didn’t know existed.