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.

8
Developer Frameworks
10
P2P Protocols
9
Productivity Apps

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-firstOfflineSyncConflict ResolutionRich TextSchemaReact HooksType SafetySelf-HostedLicenseIdentityPluginsPlatforms
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 ScopeData ModelSyncIdentityLanguageStatusBest For
xNet App frameworkSchema-typed nodes + YjsP2P (WebRTC)DID:key + UCANTypeScriptPre-releaseFull-stack local-first apps
AT Protocol Social protocolSigned repos (Lexicons)Federated relayDID:plcTypeScriptProduction (30M+ users)Social networking
Nostr Event protocolSigned JSON eventsRelay (WebSocket)secp256k1 keysAnyProductionSocial + payments
Hypercore / Pear P2P runtimeAppend-only logsP2P (DHT)Public keysJavaScriptProductionP2P apps + streaming
Iroh Networking libraryContent-addressed blobsP2P (QUIC)Public keysRustProductionP2P networking layer
p2panda P2P toolkitDAG of CBOR operationsP2P (QUIC / iroh)Public keysRustActive (v0.5)Encrypted group apps
Willow Sync protocol3D namespace modelProtocol-agnosticCapabilities (Meadowcap)Spec + JS/RustActiveFine-grained sync + access
Holochain Agent frameworkAgent chains + DHTDHT gossipAgent keysRust (WASM)Beta (7+ years)Agent-centric apps
Anytype App + protocolTyped objects + DAGsP2P (custom)Key pairsGo + TypeScriptProduction (1M+ users)Personal knowledge base
Solid Data podsRDF / Linked DataServer (REST)WebIDAnyActive (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-firstOfflineReal-time CollabRich TextDatabasesCanvasOpen SourceSelf-HostedPluginsPricingData OwnershipPlatforms
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.

Need low-level P2P?
Check out Iroh or Hypercore.

Want a knowledge base today?
Check out Anytype or Obsidian.