finds.dev← search

// the find

earthstar-project/earthstar

★ 914 · TypeScript · LGPL-3.0 · updated Apr 2025

Storage for private, distributed, offline-first applications.

Earthstar is a protocol and TypeScript library for building private, offline-first distributed apps where small groups sync data without a central server. It handles document storage, binary attachments, and peer discovery across browser, Deno, and Node. Think of it as a self-hosted, encrypted alternative to Firebase for apps where users own their data.

The sync protocol is genuinely well-thought-out — plum tree gossip, range-based set reconciliation, and thumbnail trees are real distributed systems techniques, not naive diffing. The driver abstraction is clean: swap IndexedDB for SQLite or memory without touching application code. Ephemeral documents with TTLs are a nice primitive that most storage libraries ignore. LAN peer discovery is built in and works without a server, which is rare.

v11/Willow is in beta on a separate branch with the main branch effectively in maintenance mode — you're either adopting an unstable rewrite or building on a protocol that's being superseded. The Node support is clearly second-class: polyfills required, crypto drivers need manual wiring, and the npm build is generated rather than native. The document model stores only text (8KB limit) with attachments as a bolted-on afterthought, which makes rich data structures awkward. At 914 stars and 26 forks, the community is tiny — real-world production deployments are essentially undocumented.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →