Built a community and discovery layer for Ghost newsletters

Hey everyone,

I’m Fran Mendez, creator of AsyncAPI (the industry standard for event-driven APIs, hosted under the Linux Foundation). I’ve been building something called Commune that I think Ghost creators might find interesting, and I’d love to get your feedback.

The short version: Commune adds community and cross-newsletter discovery to your Ghost newsletter. You connect once via the Ghost API, and every post you publish automatically becomes a public page with a discussion thread. Readers from other newsletters in the network can discover your content, and your readers can discover theirs.

Think of it as the part of Substack that people actually like (the network, the discovery, the conversations) without having to leave Ghost.

A few things that might matter to this community:

  • It works with Ghost, not instead of it. Your newsletter stays on Ghost. Commune is a layer on top. Subscribers who join through Commune get added back to your Ghost member list.

  • Everything is public and indexable. Articles and conversations are discoverable by search engines and LLMs. More visibility for your content.

  • Open API. You can pull all your data out anytime. No lock-in.

  • Free. No revenue share, no platform tax.

It’s early and the network is small (about 15 active newsletters, mostly in the tech/API/engineering space). But the cross-newsletter discovery is already working: roughly half of active readers engage with newsletters they didn’t originally subscribe to.

One thing I wanted to flag: Ghost creators on the Starter plan can’t connect right now because custom integrations aren’t available on that tier. If anyone has thoughts on how to best handle that, I’m all ears.

Happy to answer any questions or hear honest feedback. I’m building this because I believe newsletter creators shouldn’t have to choose between independence and discovery.

usecommune.com

Hi! Your site doesn’t load for me. Just a blank page with an invite to install it as an app. Might want to fix that!

It sounds from your description that you’re using webhooks from Ghost? How do you handle members-only or paid-only content, which is included in the webhook payload?

Hey @Cathy_Sarisky, thanks for flagging the loading issue. It’s working on my end and monitoring is green, but if you’re seeing a blank page there’s likely something I’m missing. Mind sharing your browser and device so I can investigate?

Quick clarification, I’m not actually using Ghost’s webhooks. Commune supports multiple ESPs (Ghost, Kit, Beehiiv, Buttondown, MailerLite, Mailchimp), so I subscribe an inbound email address to your list as a signal that something was published, then call the API to fetch the latest issues.

On members-only and paid-only content, Commune has two independent layers of protection. First, the inbound email address is a separate subscriber on your list, so if you don’t send a broadcast to that subscriber, Commune never even hears about it. Second, when fetching posts via the API, Commune only takes posts where visibility === "public". Either layer would prevent paid content from leaking on its own. Both of them together means creators monetizing through Ghost don’t have to worry about misconfigurations exposing their work.

Thanks for explaining! Interesting approach. I wonder if using the content api would be a good way to support starter users - they do have content api key access.

Thanks @Cathy_Sarisky, I really appreciate you thinking about this! :slightly_smiling_face:

The Content API would solve part of the problem, fetching public posts. But Commune also writes back to Ghost: when someone subscribes on Commune, we add them to the creator’s Ghost subscriber list via the Admin API. We also push engagement data (likes, comments, views) back as custom fields so creators can use real engagement signals in Ghost. Both of those need write access, which the Content API doesn’t provide.

So Starter users can technically be supported for read-only sync, but they’d lose the subscriber flow-back and the engagement data, which are honestly two of the most useful parts.

The cleaner solution would be Commune being a built-in Ghost integration so Starter users get full functionality without needing custom integrations. But that’s a conversation with the Ghost team, not something I can solve unilaterally. Open to ideas if you’ve seen this kind of thing handled well in the Ghost ecosystem before.

Ah, gotcha. You could use the magic link endpoint to send the user a link to get subscribed, but yeah, I got nothing on the rest.

That’s actually clever, I hadn’t considered the magic link route. The friction would probably be too high for the subscribe flow (readers expect one-click subscription on Commune, not a confirmation email taking them to Ghost) but it’s definitely a creative workaround.

Sounds like the cleanest path really is being a built-in integration, which would also let Starter users connect through the official Ghost UI rather than copying API keys around.

Thanks again for thinking through this with me. I noticed you’re a Ghost expert running your own newsletter, would love to have you on Commune if you’re up for it. Honestly, I’d also value your eye on the product as someone who knows Ghost deeply, you’d probably spot things most users miss :slight_smile:

1 Like