The Local-First Landscape
We're building xNet because we believe in a future where users own their data. We're not alone — here are the projects pushing this vision forward. We encourage you to explore them all.
Developer Frameworks & Data Tools
What you'd use to build a local-first app today. Each has different tradeoffs around sync architecture, schema systems, and infrastructure requirements.
| Project | Local-first | Offline | Sync | Conflict Resolution | Rich Text | Schema | React Hooks | Type Safety | Self-Hosted | License | Identity | Plugins | Platforms |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| xNet | Yes | Full | P2P (WebRTC) | Yjs + Lamport LWW | Yjs + TipTap | TypeScript defineSchema() | useQuery / useMutate / useNode | Full inference | No server needed | MIT | DID:key + UCAN | 4-layer system | Electron + Web + Expo |
| Zero | Yes | Full | Server (sync engine) | Server rebase | — | Postgres | useQuery | Via Postgres types | Server required | Apache 2.0 | External | — | Web |
| Triplit | Yes | Full | Server (WebSocket) | LWW per-attribute | — | TypeScript | useQuery | Full inference | Server required | AGPL | External | — | Web + Mobile |
| ElectricSQL | Yes | Full | Server (Postgres CDC) | Server rebase | — | Postgres | useShape | Via Postgres types | Server required | Apache 2.0 | External | — | Web |
| Jazz | Yes | Full | P2P via relay | Automerge-based | — | CoValues (TypeScript) | useCoState | Full inference | Relay optional | MIT | Built-in | — | Web + React Native |
| LiveStore | Yes | Full | Client-side events | Event-sourced | — | SQLite | useStore | Full inference | Client-only | MIT | External | — | Web |
| DXOS | Yes | Full | P2P (MESH) | Automerge (ECHO) | Automerge | TypeScript (ECHO) | useQuery | Full inference | P2P optional | MIT | Built-in (HALO) | Yes | Web + Electron |
| Convex | No | Partial | Server (reactive) | Server authority | — | TypeScript | useQuery | Full inference | Cloud only | Proprietary** | External | — | Web |
** Convex runtime is proprietary; client SDKs are open source. All other projects are fully open source.
Protocols & P2P Infrastructure
The broader ecosystem of decentralized data. Different scopes, different goals — all pushing toward user-owned data.
| Project | Scope | Data Model | Sync | Identity | Language | Status | Best For |
|---|---|---|---|---|---|---|---|
| xNet | App framework | Schema-typed nodes + Yjs | P2P (WebRTC) | DID:key + UCAN | TypeScript | Pre-release | Full-stack local-first apps |
| AT Protocol | Social protocol | Signed repos (Lexicons) | Federated relay | DID:plc | TypeScript | Production (30M+ users) | Social networking |
| Nostr | Event protocol | Signed JSON events | Relay (WebSocket) | secp256k1 keys | Any | Production | Social + payments |
| Hypercore / Pear | P2P runtime | Append-only logs | P2P (DHT) | Public keys | JavaScript | Production | P2P apps + streaming |
| Iroh | Networking library | Content-addressed blobs | P2P (QUIC) | Public keys | Rust | Production | P2P networking layer |
| p2panda | P2P toolkit | DAG of CBOR operations | P2P (QUIC / iroh) | Public keys | Rust | Active (v0.5) | Encrypted group apps |
| Willow | Sync protocol | 3D namespace model | Protocol-agnostic | Capabilities (Meadowcap) | Spec + JS/Rust | Active | Fine-grained sync + access |
| Holochain | Agent framework | Agent chains + DHT | DHT gossip | Agent keys | Rust (WASM) | Beta (7+ years) | Agent-centric apps |
| Anytype | App + protocol | Typed objects + DAGs | P2P (custom) | Key pairs | Go + TypeScript | Production (1M+ users) | Personal knowledge base |
| Solid | Data pods | RDF / Linked Data | Server (REST) | WebID | Any | Active (niche) | Academic / government |
Productivity Apps
How xNet's built-in app compares to the tools you might already use. Different philosophies — from cloud-first SaaS to local-first open source.
| App | Local-first | Offline | Real-time Collab | Rich Text | Databases | Canvas | Open Source | Self-Hosted | Plugins | Pricing | Data Ownership | Platforms |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| xNet App | Yes | Full | P2P (Yjs) | TipTap + Yjs | 15 property types, views | Infinite, spatial index | MIT | Full (Hub optional) | 4-layer system | Free forever | Full — encrypted, local | Desktop, Web, Mobile |
| Notion | No | Partial (cache) | Server (OT) | Block-based | Full (views, relations) | No | No | No | Integrations API | Freemium ($8+/mo) | Cloud only | Desktop, Web, Mobile |
| Obsidian | Yes | Full | Paid plugin | Markdown | Via plugins | Yes | No (free for personal) | Files on disk | Community plugins | Free / $50/yr sync | Full — local files | Desktop, Mobile |
| Anytype | Yes | Full | P2P | Block-based | Relations + views | Yes | Source-available | Self-hosted nodes | No | Free (paid tiers coming) | Full — encrypted, P2P | Desktop, Web, Mobile |
| Linear | No | Partial (cache) | Server | Minimal | Issue tracker | No | No | No | Integrations | Free / $8+/mo | Cloud only | Desktop, Web, Mobile |
| Coda | No | No | Server | Block-based | Tables + formulas | No | No | No | Packs (marketplace) | Freemium ($10+/mo) | Cloud only | Web, Mobile |
| Airtable | No | No | Server | Rich field type | Full (views, automations) | Interfaces | No | No | Extensions + scripts | Freemium ($20+/mo) | Cloud only | Web, Mobile |
| AppFlowy | Yes | Full | Cloud sync | Block-based | Grid, board, calendar | No | AGPL | Full | Flutter plugins | Free / cloud plans | Full — local + optional cloud | Desktop, Web, Mobile |
| AFFiNE | Yes | Full | Yjs (cloud) | BlockSuite | Table views | Edgeless mode | MIT | Full | Plugin system | Free / cloud plans | Full — local + optional cloud | Desktop, Web, Mobile |
Where xNet Fits
xNet combines TypeScript-inferred schemas, a dual CRDT strategy (Yjs for rich text + Lamport LWW for structured data), React hooks, a four-layer plugin system, and true P2P sync — all in one framework.
Building a React app?
Want local-first with minimal boilerplate? Start here.
Need a social protocol?
Check out AT Protocol or Nostr.