Comment by r3trohack3r

2 years ago

Love this and it aligns well with the work I'm currently doing.

I believe local-first peer-to-peer networks have gotten close-enough to being able to deliver feature parity with centralized Application Service Providers for 5+ years now, the industry just hasn't caught up.

For social media platforms like Facebook and X, their "killer app" features are all solvable with hash-based data structures (chains, trees, forests), p2p capability systems, and gossip protocols. Identity systems are solvable in ways that non-technical people can understand.

Part of the solution was the p2p stack maturing. The other part is that centralized solutions have normalized a lot of user flows that p2p can be competitive with, users have been trained up on a lot of patterns that previously wouldn't have been palatable in the market.

There is extreme market demand for it, and the zeitgeist is tuned into the societal and financial failings of ASPs right now.

Facebook is trying to act as the free relay and archivist for the entire world's social graph, there are a lot of hard problems to solve there which personally, I think contributed to social networking silently dying and degenerating into the monstrosity that Social Media is.

Once this stuff starts making it into end-user products, I suspect it's going to be a one way door. P2P can provide user experiences that centralized services can't match - either for technical, financial, or legal reasons.

We are in a sweet spot of opportunity for building the web as it was promised to us.

If folks working in this space want to compare notes, or are looking for work on a well funded no-BS R&D team developing this space, my email is in my bio.

It’s not a technology problem. It never really has been. It’s a business problem, which is another way of saying it's a people problem.

People have been conditioned to believe all software must be free, but that SaaS is fine. People are willing to rent software in the cloud but not pay for it at the endpoint.

Add to this the fact that the cloud is the ultimate DRM. It can’t be pirated if the user doesn’t even have binaries or have possession of their own data.

SaaS provides inescapable recurring revenue and very strong lock in. It’s massively superior from a business model point of view. Meanwhile the (much more) evil twin of SaaS, namely “free” surveillance and addiction driven apps, dominates B2C.

People might want local first software but if they won’t pay for it that doesn’t matter. The whole industry will wrap itself around whatever model pays. Everything is all about cloud and SaaS not because these are technically superior or better for the user but because that's where you get cash flow.

  • It's deeper than cash flow.

    As soon as computing becomes a primary job and not a toy... people clam up about their ideas and stick to safe, generic, bland output.

    Computing as-a-job for random plebs, has sacrificed the protection of ideas in pursuit of more innovation and freedom. Resulting in the least innovation and freedom we've seen in decades.

    Until we can walk on water again, this spiral will not end. Why people cannot see this spiral and treat it like an existential threat to the web, I have no idea.

    A 'new kind of network' is surface level analysis, we need to stop computers sucking the life (and consciousness) out of everything they touch.

    Cash flow is way easier, when you can work on something novel and deliver it to the end customer without the concepts being stolen along the way.

    • > A 'new kind of network' is surface level analysis, we need to stop computers sucking the life (and consciousness) out of everything they touch.

      Do you have any ideas on how we might do that?

      3 replies →

  • Yes, for sure SaaS is easier and cheaper (for 1 month :) than BigBoxSoftware you saw years ago.

    I am concerned by the threat to open source this model brings to us.

    • I wasn’t speaking from the customers point of view but the producer’s. I was making a supply side argument for why we don’t have more local first software. But you’re right. I did’t get into friction or lack thereof as a factor.

Can you recommend some p2p technologies that people can start building with today?

Eg I’m tempted to go with a stack of a centralized Postgres with a SQLite for each user (a la Electricsql, mvsql, etc.) because I want users to have their data local as much as possible (in their own SQLite db) but a centralized Postgres database still feels logistically necessary to coordinate eg user accounts and sharing.

I’m all ears on better p2p solutions. I’ve looked into things like eg using matrix or nostr but they don’t feel like the solution I’m looking for yet. But I’m eager to find something that can keep data local and have sharing done more p2p.

  • We are building our overlay network with libp2p

    Our current gossip structure for identity is a hash tree. The secure scuttlebutt research paper by Tarr is a good place to start for that.

    For capabilities, we are (currently) using the same concepts as UCAN.

  • Couchdb/pouchdb remains one of the best: it's super easy to setup and is production-ready, but it's gonna be json docs with no transactions, so it can be limiting.

    Y.js and automerge emerged as solutions combining CRDTs and content transfer, they look really promising. There is a Y.rs version if that's better for you.

    I've always dreamt of building something on top of Syncthing, ie something that would use file synchronization. It's more versatile and will definitely last longer than anything else, and it has some built-in capabilities for having a third party helping transport but not being allowed to read content.

    I recently came across https://github.com/superfly/corrosion , a service discovery and state management tool that is working completely p2p. CR-SQLite, in particular, allows multiple tables from multiple databases to be merged thanks to CRDTs. I'm sure there's a lot to build on top of it.

    I feel like you're not really interested in full p2p but want some centralization point to manage some auth stuff, so I'd investigate couchdb/pouchdb first.