https://github.com/positive-intentions/chat
I’m excited to share with you an instant messaging application I’ve been working on that might interest you. This is a chat app designed to work within your browser, with a focus on browser-based security and decentralization.
What makes this app unique is that it doesn’t rely on messaging servers to function. Instead, it works based on your browser’s javascript capabilities.
Here are some features of the app:
- Encrypted messaging: Your messages are encrypted, making them more secure.
- File sharing: Easily share files using WebRTC technology and QR codes.
- Voice and video calls: Connect with others through voice and video calls.
- Shared virtual space: Explore a shared mixed-reality space.
- Image board: Browse and share images in a scrollable format.
Your security is a top priority. Here’s how the app keeps you safe:
- Decentralized authentication: No central server is required for login, making it harder for anyone to gain unauthorized access.
- Unique IDs: Your ID is cryptographically random, adding an extra layer of security.
- End-to-end encryption: Your messages are encrypted from your device to the recipient’s device, ensuring only you and the recipient can read them.
- Local data storage: Your data is stored only on your device, not on any external servers.
- Self-hostable: You have the option to host the app on your own server if you prefer.
A decentralized infrastructure has many unique challenges and this is a unique approach. Ive taken previous feedback and made updates. Its important to note, it is still a work-in-progress and provided for testing/review/feedback purposes.
Looking forward to hearing your thoughts!
Are the File Sharing and Voice and Video Calls are E2EE ?
Yes.
Intriguing approach.
This is NOT criticism - besides running in a browser, how would you compare this to say the many other messaging apps? A table of features/capabilities/limitations VS other apps would be a good way to show the value of your approach.
I like that it’s self-hostable right up front, not as an afterthought.
i think chat is a common type of app that users find intuitive. id like to have an attempt to be creative with the capabilities a browser can provide.
its has been very difficult to get the app to a point where it can be compared to a chat app. but it is not a chat app fundamentally. this app is somewhat a ground-up implementation of p2p communication (using existing things like peerjs and webrtc). a simple way to represent that functionality is sending/recieving messages from peers. so the UI leaned towards that goal.
i moved onto working on the AR aspect where i can share video feed data into AR as well as a gps position in that environment allowing a kind-of decentralized AR space. but because webrtc is fast i can also share larger payloads. so why not a filesystem? using daedalOS i can make the experience seamless in real-time.
ive seen other examples of a table comparing features. i like that idea but didnt make the time for it. thanks for suggesting that it indicates that it could help users understand the app.
Oh wow, I didn’t realize that what you’re doing isn’t a chat app, but a transport that can enable chat, among other things. Similar to how SimpleX Chat got started - they also began as a p2p protocol effort, and chat came out of it (IIRC).
Yea, that’s hard to describe simply. Now I’m not even sure a table comparing to chat apps is all that useful - perhaps, but there’ll be a lot of empty columns for other apps. It’s a tough nut, for sure, such a different concept - focus on the transport and everything else follows.
When communicating about the app, I still stick to framing it as a “chat app”. It’s a useful way to describe it for users.
Very cool idea.
Thanks!