- 129 Posts
- 181 Comments
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.
xoron@programming.devOPto
Rust@programming.dev•Anybody with experience / insights on Dioxus? I have an idea and want to see if its worth investigating further.
2·21 days agoThanks!
It sounds promising if you chose it for a similar reason.
I’ll plan something and see if I can get all the core parts working.
xoron@programming.devOPto
Rust@programming.dev•Anybody with experience / insights on Dioxus? I have an idea and want to see if its worth investigating further.
2·22 days agoThanks. I’m a JavaScript developer. To create a webapp is relatively easy for me because I’m familiar with the tooling.
I see there are things like UI component libraries like dioxus-material… I suspect there will be things I might have to create myself. Are there nuances that might stand out?
What are your thoughts on the ecosystem with dioxus?
My core reason to consider dioxus over JavaScript is the ability to use more mature tooling for formal verification.
xoron@programming.devOPto
React@programming.dev•A React Hook For Asynchronous State Management.
11·24 days agoThose are useful hooks for their own purpose. My approach might be more comparable to redux.
In contrast to redux, in this approach, we can update a state value and all other components listening will receive and update accordingly. Redux does this in a deterministic render and compares the vdom for what to update.
The origins on my approach is from trying to create it for webcomponents where components between different shadow-roots need to share an update.
It’s all my code. I don’t have to open source all my work. By using module federation, i can be selective about what I open source.
Some open source versions of the core concepts.
- Chat
- File
- Crypto
The main app itself is not open source even though it consumes exports from several open source repos. The core reason around the main core being close-source is that after creating open source versions, it only seems to put me at a competitive disadvantage.
https://www.reddit.com/r/VeraCrypt/comments/1r9qdxg/veracrypt_clone_in_javascript
(The demo there isn’t open source.)
The key details that sets my approach apart is the zero-setup approach. There no need to install or register when there are no databases.
There would be much to consider when introducing collaborative editing, but that’s also on the roadmap. Many useful features seen in cryptpad are missing in my approach at the moment. The features on my project are not as mature as what you see in cryptpad, but it’s something I’m working towards.
xoron@programming.devOPto
Opensource@programming.dev•Chat - Decentralized P2P Messenging
1·2 months agoall 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.devOPto
Opensource@programming.dev•Chat - Decentralized P2P Messenging
2·2 months agothanks. ive had that feedback before. its also not the easiest thing to type out. many are probably unable to find it again because the name wasnt memorable enough.
im in the process of rebranding to “http://enkrypted.chat/”. talking about it to others could still lead to some confusion, but i think could be a bit more memorable to say “encrypted.chat, but with a ‘K’.”
xoron@programming.devOPto
Opensource@programming.dev•Chat - Decentralized P2P Messenging
1·2 months agoI’ve come across it before. That one is good and easy to get started.
I also have another version to the approach where im refining details: https://enkrypted.chat/ . (It’s far from finished and not open source yet.)
Thanks! I haven’t come across chatmail before. I’ll take a look there and see how it works.
With git, I like that there are many providers with a free-tier. It’ll make it easier to get started. Although it seems this way of using git could be against ToS.
thanks. i’ll aim to do that. i’ll see if i can figure out who to reach out to from github and etc to ask.
feel free to reach out. im reluctant to waste your time on reading through all that draft. its fairly unique and more going against the grain… not typically a good sign.
my project is far from finished including all the spec and docs.
xoron@programming.devOPto
Git@programming.dev•Can we use Github as free cloud storage?
21·2 months agoThat’s right. Git as an offline cache. When you read a peers message, you can also update you own git repo to say you read it, and so when the peer comes online they can update their side to delete the messages (keeping the size small)… Going further against the grain, the app doesn’t care about the history of messages deleted, so I expect to add things for purging history.
I considered the Blockchain, but i think the git approach is better. It’s hard to describe what I’m imagining. I’d like to put together a demo when I get time.
I have a full-ish description of the protocol.
https://positive-intentions.com/docs/technical/whitepaper/complete-protocol-spec
Instead of reading that, if you really want to know more, I would suggest you ask me for clarity. (Nothing about this git approach is mentioned there.)
xoron@programming.devOPto
Git@programming.dev•Can we use Github as free cloud storage?
11·2 months agoIn 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.
xoron@programming.devOPto
Git@programming.dev•Can we use Github as free cloud storage?
12·2 months agoIn any case it wouldn’t be on my account. It would be great for users to self-host. Things like GitHub would only make it easier to get started to test things out.
Why would they ban my account? That would be unsettling. I’m a developer. The code itself is fairly basic git stuff.
My project is hardly popular, but if it gets there, I’m sure it would impact githubs performance. Would the concern be that my app ddos GitHub? I can explicitly prevent remotes like GitHub if necessary.
xoron@programming.devOPto
Git@programming.dev•Can we use Github as free cloud storage?
12·2 months agoI’m happy to advise people to self-host a git server. That would be ideal. The ability to do it on GitHub or codeberg would only make it easier to get started. I can put logic there to prevent using a remote with from GitHub if necessary.
In any case, it wouldn’t be on my git account.
This is all ultimately for my project which is a fairly unique approach to secure messaging. I’m trying things out.
That would be acceptable. I can limit it to only text messages.
The aim would be for it to be able to use a generic git backend. Perhaps the advice I give should be to self-host a git server.
xoron@programming.devOPto
Git@programming.dev•Can we use Github as free cloud storage?
11·2 months agoi understand how it must sound but ive thought about it for a while, and it seems ideal for my particular architecture.
github isnt decentralized, but git can have multiple remotes for redundency. you could use multiple providers including selfhosted options.









I previously was in a situation where I was trying to bridge js and rust.
Perhaps you can do something with rust to wasm?