Related Work
Current status: positioning document for architecture discussions. Faberio is specification-stage; compared projects are existing software or protocols.
Faberio sits at the intersection of local-first sync, operator-governed trust, and heterogeneous hosting — personal devices alongside always-on servers. Several mature projects address parts of that problem space. None combines administrator-gated information spaces, background replication as a platform service, and a reference validation path in the way the current scope defines.
Comparison overview
| Project / family | Primary model | Sync / state | Hosting | vs Faberio |
|---|---|---|---|---|
| CouchDB / PouchDB | Document DB + replication | App-configured replication filters | Self-host per database | Faberio moves replication, identity, and DAC into the Runtime |
| Automerge / CRDT libraries | In-app CRDT documents | Peer sync in application code | Any host | Faberio applies CRDT merge in the Runtime — apps use record/file APIs, not embedded CRDT libraries |
| Solid | Pods + linked data | Per-pod storage; app-specific | Pod providers | Faberio is information-space infrastructure with admin-gated membership |
| ActivityPub / Fediverse | Federated social products | Activity streams between instances | Self-hosted instances (Mastodon, Lemmy, …) | Faberio is Runtime infrastructure below the product — complementary, not a Mastodon replacement |
| ATProto (Bluesky) | PDS + lexicon + relay | Account-centric federation | Hosted PDS | Faberio is category-neutral Runtime, not a PDS or lexicon stack |
| Yjs / CRDT editors | Real-time co-editing | CRDT over WebSocket/WebRTC | App-dependent | Possible future app pattern; not the reference MVP deliverable |
CouchDB and PouchDB
CouchDB and PouchDB pioneered local-first replication with HTTP sync and conflict handling. Applications define what replicates via filters and design documents.
Faberio borrows the local-first replication goal but moves sync, identity, and access control into the Runtime. Applications use SDK/API against replicated state; they do not configure Couch-style replication filters per app. The reference MVP implements node-level database replication for the Community Hub path first — not a general CouchDB-compatible engine.
Automerge and CRDT-centric stacks
Automerge and similar libraries expose CRDT documents as the application data model. Sync is peer-to-peer at the document level; applications embed the CRDT library directly.
Faberio applies CRDT merge at the Runtime layer for replicated records and file metadata. Applications use the database and file storage APIs; the Replication engine detects concurrent updates and merges replicas using declared CRDT types (see Distributed Database — CRDT merge). Real-time co-editing (Yjs-style) remains a possible application-level pattern on top of the platform.
Solid
Solid separates data into pods controlled by users, with apps accessing linked data via standard protocols.
Faberio uses information spaces — operator-governed networks of nodes with administrator approval for nodes and users. Data portability and cryptographic identity are shared themes; trust model and protocol differ.
ActivityPub and the Fediverse
The Fediverse — Mastodon, Lemmy, PeerTube, Pixelfed, Misskey, and similar software — gives communities federated, self-hosted application instances. Operators run a finished product; users join an instance; instances exchange data through an application-level federation protocol, most often ActivityPub.
ActivityPub fits social scenarios well: posts, comments, follows, notifications, and reach across the wider Fediverse. Clients talk to a home server; federation extends visibility between instances.
Faberio addresses a different layer: distributed runtime infrastructure for applications whose state is local-first, replicates across operator nodes and user devices, and stays within an administrator-gated information space. It is not an ActivityPub server and not a drop-in alternative to Mastodon or Lemmy.
| Layer | Fediverse stack (typical) | Faberio |
|---|---|---|
| Product | Mastodon, Lemmy, PeerTube, … | Custom Community Hub, Civic Platform, Emergency Collaboration, other business apps, … built on the Runtime |
| Application protocol | ActivityPub and app-specific APIs | Faberio Protocol between Runtimes |
| Data model | Instance database (often PostgreSQL) | Replicated database and file storage on each node |
| Offline / local-first | Server-centric; clients are views on the instance | Local replica on devices; background sync between nodes |
| Trust boundary | Instance membership and moderation | Information space with explicit node and user approval |
| Best fit | Adopt a mature federated product and join the wider Fediverse | Build a custom app with operator-owned, replicated state |
ActivityPub is not Faberio's replication core. Arbitrary record replication, offline reconciliation, CRDT merge, and business-process sync need a Runtime-level protocol — see Distributed Database. The long-term model is Faberio Protocol first, with a future ActivityPub adapter that could publish selected content to the Fediverse or interact with users on compatible platforms — without constraining what the Runtime replicates internally. That adapter is not in the current scope.
An operator may run both stacks: Mastodon or Lemmy for public federated reach, and a Faberio-based Community Hub for device-local history and administrator-gated membership in a dedicated information space. Faberio is complementary to the Fediverse ecosystem, not a competitor.
ATProto (Bluesky)
ATProto defines Personal Data Servers, lexicons, and relay-based federation for social applications.
Faberio is category-neutral infrastructure: the reference implementation validates a Federated Community Hub on a general Runtime, not a PDS or lexicon implementation. Data portability and cryptographic identity are shared themes; protocol and scope differ.
What Faberio adds
Across related work, Faberio's scoped contribution is:
- Runtime-first platform — replication, identity, and access control as platform services, not per-app wiring.
- Administrator-gated information spaces — explicit node and user approval before shared data access.
- NixOS-deployable server Runtime — reproducible self-hosting for operator nodes.
- Honest MVP scope — reference milestones deliver validation for Community Hub on node-level DB replication first; full file storage, user-level replication, native access, and ActivityPub adapters follow the protocol spec in later work.
Further reading
- CouchDB — couchdb.apache.org
- Automerge — automerge.org
- Solid — solidproject.org
- ActivityPub — w3.org/TR/activitypub
- Fediverse (overview) — fediverse.info
- ATProto — atproto.com
- Yjs — yjs.dev