• 129 Posts
  • 181 Comments
Joined 2 years ago
Aquileo | cake
Cake day: June 14th, 2024

Aquileo | help-circle



  • I think my approach is yet different from others in the browser-based approach. In the open source version as described here, I don’t add anything like a login. I’m able to avoid installation and registration entirely.

    Simplex has nice ideas around routing messages. Im open to feedback about comparing the webrtc approach to simplex in the post here. it would be a stretch to call it onion-routing, but is 2 peers use different turn relay servers while on VPN, I think that’s that most network hops you can do in my app. simplex has their own cool approach… but you’d be comparing apples and oranges.

    as for contributing, I’m sure other projects have “got it” without my help. I’m just doing my own approach which I think is distinct from others.





















  • all understandable questions.

    group messaging

    this is very complex as im sure you can imagine. im using a p2p and the approach im using is that a “group” is basically a “room with ID”. when sending a message to a group, you send the message to the peers individually and they know to store the payload within the context of the “room with ID”. scaling something like that is limited by how many webrtc connections are possible by the hardware.

    i have some research relating to using MLS, but without some central store to keep the mls keys per-epoch, its very unstable as peers can go offline unexpectedly. another approach im investigating is to be able to ping connected peers to create a kind of mesh-graph that i could use to relay messages. this approach could also be better resiliant to peers going offline in the sense, that the graph could heal from peers going offline.

    im sure there are many details i havent considered, but i have buggy group messaging on the WIP version here: https://enkrypted.chat/ (go to chat-thread page > 3-dot menu on top-right > invite peer)

    offline delivery

    ive mulled over it enough to at least try using an approach to use git as a CRDT. it seems overkill for application data, but it would also allow use git as an offline message cache. https://programming.dev/post/51866250 . i havent implemented anything for this yet. im still mulling it over to make sure i dont overlook important details.

    alternative networks

    webrtc isnt the bit that make this app secure, its the local-first. no need to register anywhere when you have local-first crypto-random IDs. im open to considering other networks. tor has limitations around webrtc. this is perhaps where the git-based offline cache can come in useful in a tor network. i2p is also good as are many others like nostr. i’ll see what setup works best. i think it would be great to be able to support multiple.

    if you want to know more about “how it works”, you can take a look at the roadmap here: https://positive-intentions.com/docs/technical/p2p-messaging-technical-breakdown

    feel free to reach out for clarity instead of reading all that.










  • xoron@programming.devOPtoGit@programming.devCan we use Github as free cloud storage?
    Aquileo | link
    Aquileo | fedilink
    Aquileo | arrow-up
    1
    Aquileo | arrow-down
    1
    ·
    2 months ago

    In my app I’m aiming for minimal steps to get started. The frontend is a pwa which works out the box as a webapp.

    There is a focus on local-first storage. When connected over webrtc, no backend storage is needed.

    This approach with git would be optional. Users have frequently asked about the ability to send messages offline (a completely normal expectation for messaging app). It seemed like a hard limit until this idea with git. My app works without this feature, but with nuanced tradeoffs.

    If I host a git-sever myself, but that would be centralising my project.