from Hacker News

Earthstar – A database for private, distributed, offline-first applications

by kristianpaul on 2/1/25, 12:22 AM with 42 comments

  • by __MatrixMan__ on 2/1/25, 2:31 AM

    Looks a bit like nostr except:

    - data is named, not content addressed (to support overwrite & deletion), so the primitive data type is associative arrays of names to documents instead of sets of messages

    - documents are grouped into "shares" and you have to know the "share address" before the server will acknowledge that it indeed has documents in that share.

    Seems like an interesting approach: part way private, part way open. It think projects like this which pick an extreme on that axis end up suffering for it--which is most of them.

    I bet it would succeed at keeping the spammers and scammers out, but I'd be leery of using it with a large group against a motivated adversary--if a single user exposes the share address (which is in a gray area between public and private) it seems like all of the users of that share are exposed. I'd prefer to see a web of trust so that an adversary has to compromise each hop on the trust graph before they find their target--but that's a lot of complexity for users to handle so I can see why keeping it simple might be worth tolerating the lack of granularity.

    I certainly hope that something like this succeeds. It feels like we've lost the web and there are too many of us to coordinate en masse without something web-like--and at a time where that coordination is pretty important.

  • by Havoc on 2/1/25, 1:41 AM

    Not entirely following what this is?

    A document and media database of some sort with lots of JavaScript involved somehow? Aimed at something vaguely self-host-ish? With mastodon-ish replication to peer nodes?

    Seems like there is an ambitious grand vision happening here of sorts but not quite seeing it.

  • by brendanyounger on 2/1/25, 1:37 AM

    I believe this is superseded by the Willow protocol [0] which was posted here a while back.

    I tried to read about Willow, but could never make heads or tails of it [1]. It seems to be a hierarchical key value store with a bunch of extra fields for timestamps and cryptographic tokens, but it's woefully short on working examples. Even the recent Rust library [2] is effectively a bunch of abstract classes with implementations that just throw errors.

    I could make a quip about the state of European tech sophistication, but I'll let it pass with a polite smile.

    [0] https://willowprotocol.org/earthstar/spec/

    [1] https://willowprotocol.org/specs/data-model/index.html#data_...

    [2] https://github.com/earthstar-project/willow-rs/tree/main

  • by qwertox on 2/1/25, 6:41 AM

    Does a Python client exist? The only thing I see in the docs which is related to Python is

        # Earthstar timestamps in python
        timestamp = int(time.time() * 1000 * 1000)
  • by jazzyjackson on 2/1/25, 8:34 AM

    I would recommend instead jellyfin, immich, and maybe just plain sftp for all the rest. You can sync (err, become distributed) by way of git, syncthing, or rsync.

    What I haven't seen yet is a good self hosted identity manager, SSO sort of thing. I believe bluesky is working on one but I dont know if it will be self hostable (Freudian autocorrect: self hostage)

    Another thing I haven't figured out yet with my homelab/private cloud is how to be my own CA and manage access to my machine without teaching my counterparties ssh. I want something like NordVPN offers in their meshnet: anyone logged into the family plan can see each other's machines as if they were local network. Can wireguard accomplish this? I think this is what yggdrasil is too but haven't dug into it.

  • by hinkley on 2/1/25, 2:57 AM

    I’m still annoyed I didn’t join the SQLite party until after browsers sunset support for it.
  • by randomcatuser on 2/1/25, 2:54 AM

    I think this will really benefit from blog posts!! (ie, why did we design it like this?/what were the alternatives?)

    At a first glance, it sounds interesting though! identities being keypairs, files, content that is accessible via name...

  • by canadiantim on 2/1/25, 2:35 AM

    Any possibility of implementation in different languages like Python? I like everything about this except that it's Javascript and I'm still cautious about using javascript for something like this
  • by mrbluecoat on 2/1/25, 3:27 PM

    > Always self-hosted. Servers optional. No blockchain. No tokens. Free forever, in every sense.

    Best thesis statement ever.

  • by ofrzeta on 2/1/25, 7:36 AM

    [wrong thread, sorry]
  • by jlkuester7 on 2/1/25, 3:40 PM

    Honestly it kinda feels like they just reimplemented CouchDB/PouchDB....

    Not that it would be a bad thing to do that, but really, for small scale stuff Couch works pretty okay. My first impressions of Earthstar do not lead me to believe they have a particular emphasis on performance at scale.

  • by gwbas1c on 2/1/25, 3:31 AM

    What applications run on top of this?

    Without some seed applications, it's hard to know if this actually works, or is just mental gymnastics.

  • by kapad on 2/2/25, 11:40 AM

    JAWA = Just Another Web3 App