Domains & Interoperability
Domains & Interoperability
How many independently built apps can work together on Bonafide, and what you get for free when you build one.
Bonafide isn't one app, and it isn't one domain. It's a protocol that lets many domains exist. Within any single domain, many independently built apps interoperate by construction.
Many domains, many interoperable apps
A domain is a schema and the operations that go with it. It defines the content types, the access-control categories, and the commands that act on that content. Pools is a domain today, and Contacts is coming. Anyone can define and submit a new one, and the process is public. See Build a Bonafide App.
A domain isn't owned by any one app. Two independently built apps that both implement the same domain correctly interoperate automatically. Email clients work like that. They interoperate because they speak the same mail protocols, and their developers never had to coordinate. The Pools app is the first implementation of the bonafide.pools domain, and it won't be the only one.
That interoperability covers how far shared content can travel. A hop limit, set at the time of sharing, governs how far content goes beyond its immediate recipient. It isn't negotiated per app or inferred from context, so any two apps implementing the domain honor the same limit in the same way.
What this means if you're building an app
You define the domain-specific content and the features that make your app what it is. You don't build the rest, because Bonafide already provides it:
- Connections. How two parties establish a private relationship in the first place.
- Access control. Who is authorized to receive what, enforced by the protocol and not by app-level logic.
- Data sharing. The mechanics of delivering content from one party to another correctly.
- Propagation across degrees of separation. How far content travels beyond the people it was directly shared with.
The last one deserves a closer look, because it doesn't work the way you might expect. The person sharing sets the hop limit, at the moment they share. Neither the protocol nor your app sets it. Left alone, content reaches only the people it was shared with directly. A domain or a person can raise the limit so it reaches second- or third-degree connections. That's a deliberate choice made by the sharer, or by an app that surfaces the choice to them. Your app never extends it silently, and the protocol never decides on its own.
Build the part that makes your app yours, and use Bonafide for everything underneath it.
What this guarantees for the people using these apps
There's no global feed to rank, because there's no global pool of content to begin with. There's only what your own connections have shared with you, under access you granted. Two practical consequences follow.
No spam, and no unsolicited connections. Connecting with someone takes a deliberate, mutual exchange outside the network. There's no mechanism to message or reach someone you haven't connected with. So there's nothing to filter after the fact, because no path for unsolicited contact exists.
You control what you receive, and the sharer controls how far it goes. Nothing reaches you unless you've subscribed to receive it, and nothing you share travels further than the limit you set. Control runs in both directions, and the platform never gets a say.