/ Fediverse Gateway
Functional demo · in development

Bring Matters long-form publishing into the Fediverse.

A small, inspectable gateway for Mastodon, Misskey, GoToSocial, and other ActivityPub implementations to discover, read, follow, and interact with public Matters articles.

This page uses Matters main-site publishing as the case study. It links to a live Cloudflare Worker ActivityPub demo, static prototype endpoints, and an ActivityPub seed bundle that models the output expected from thematters/ipns-site-generator. Source code is available in the GitHub repository.

What it is

Matters is a long-running, open-source, interoperable IPFS-protocol publishing site and censorship-resistant community-governance platform with more than 280,000 registered users. The Fediverse is an open social network of interoperable servers and applications, including Mastodon, Misskey, GoToSocial, Threads, and others.

Matters Fediverse Gateway connects those two worlds. It lets Fediverse users follow Matters publishing, read full public long-form articles as ActivityPub Article objects, reply, like, and boost. Those interactions can flow back into Matters. Paid articles, encrypted articles, private content, and messages stay outside federation.

Matters main-site flow

The concrete case is the Matters main site. A public article starts on matters.town, moves through the IPFS/IPNS-oriented static publisher, becomes an ActivityPub seed bundle, and is then canonicalized by the gateway for discovery and interaction.

Matters public article

Author publishes a public long-form article on matters.town.

IPNS static output

ipns-site-generator emits durable public article files and feeds.

ActivityPub seed bundle

The static layer emits manifest, seed actor, and seed outbox.

Gateway runtime

gateway-core owns identity, inbox, delivery, moderation, and recovery.

Fediverse reach

Fediverse users discover, follow, read, reply, like, and boost.

For writersLong-form work gets social reach without surrendering archive durability.
For readersArticles appear inside existing Fediverse clients as first-class Article objects.
For operatorsModeration, delivery state, keys, and recovery stay in a dedicated runtime.

Try the prototype

The live Cloudflare Worker prototype demonstrates the read-side federation surface with ActivityPub and NodeInfo JSON served from narrow routes on the Matters domain. The canonical demo actor is acct:matters@matters.town. The demo article is represented as an ActivityPub Article, not reduced to a short-form note.

EndpointURL
Matters rootmatters.town
WebFinger/.well-known/webfinger?resource=acct:matters@matters.town
Actor/ap/users/matters
Outbox/ap/users/matters/outbox
Article/ap/articles/matters-main-site-open-social-demo
Seed manifest/ap/seed/activitypub-manifest.json
Seed outbox/ap/seed/outbox.jsonld
NodeInfo discovery/.well-known/nodeinfo
NodeInfo 2.1/ap/instance-info/2.1

The isolated Worker testbed remains available at gateway-demo.matters.town for edge-runtime diagnostics without touching the main-site root route.

The static GitHub Pages prototype remains available for the seed-bundle surface: WebFinger, actor, outbox, Article, seed manifest, seed outbox, and NodeInfo.

This is not a production service. It does not accept real user content. The Worker currently demonstrates ActivityPub content types, edge routing, seed bundle exposure, and the future signed inbox pass-through path to gateway-core.

ActivityPub seed bundle

The seed bundle is the contract between ipns-site-generator and gateway-core. The static publisher should only emit public data that is safe to federate. The gateway then rewrites that seed into canonical ActivityPub identity and runtime state.

activitypub-manifest.jsonDeclares generator version, source actor, canonical gateway actor, listed files, and the public-only visibility boundary.
about.jsonldRepresents the static source actor before gateway canonicalization. Personal static sites can use this directly; Matters production should use the gateway actor.
outbox.jsonldContains public Create activities whose objects are Article, with canonical links back to Matters public articles.
Gateway rewriteRewrites actor, outbox, followers, audience, and key references to the runtime actor, while preserving article content, summary, tags, attachments, and canonical URL.

The public boundary is part of the data contract: paid, encrypted, private, draft, and message-like content must be excluded before the seed bundle is generated.

Architecture

matters.town public article
        |
        v
ipns-site-generator
        |
        +-- HTML / RSS / JSON Feed / IPFS-IPNS output
        |
        +-- ActivityPub seed bundle
              |
              v
Cloudflare Worker edge
        |
        +-- WebFinger / NodeInfo / cached actor reads
        |
        +-- signed inbox pass-through
              |
              v
gateway-core runtime
        |
        +-- HTTP signatures / followers / delivery queue
        +-- moderation / audit / alerts / recovery
              |
              v
Mastodon / Misskey / GoToSocial / other Fediverse servers

Static + dynamic split: public article output remains durable through the IPFS/IPNS-oriented publishing layer. The gateway handles the dynamic social layer: discovery, inbox handling, followers, delivery state, moderation, and recovery. The proposed integration contract and Worker deployment path are documented in the IPNS gateway plan.

Current status

Stage 01Instance Platformdone Stage 02Identity & Discoverydone Stage 03Gateway Corein progress Stage 04Social Interopin progress Stage 05Moderation & Opsin progress Stage 06Multi-Instance Control Planespecified Stage 07Launch Readinessspecified

Roadmap

GoalScopeTimeline
G1Single-instance reference release with multi-implementation interoperability.3 months
G2Matters production integration: pilot, beta, then general availability.4-6 months
G3Second-instance validation to prove reuse beyond Matters.2 months

The full roadmap is in development-plan.

Technical decisions

Object type = Article

Long-form work is not downgraded to Note. Articles keep room for HTML, summary, attachments, and canonical links.

Static publishing + inbox bridge

The project is not another full social server. Static publishing handles public article output; the gateway handles social state.

Programmed public-content boundary

Paid, encrypted, private, and message-like content is blocked by code-level visibility gates, not by manual convention.

Worker-fronted runtime

The first release can put a Cloudflare Worker in front of gateway-core for routing, content types, caching, size limits, and signed inbox pass-through.

Learn more