from Proto@programming.dev to programming@programming.dev on 21 Dec 09:49
https://programming.dev/post/42723052
For a few months I’ve spent my free time working on a C++ messenger. It started off pretty simple, just two input boxes for IP address and port number, more of a fun experiment. From there it started to grow and soon allowed for peers to connect automatically using a relay. For a while it only allowed two people to speak at once, which was good for security but was very inconvenient. Now Retro Messenger allows multiple users to speak at once, sending encrypted files and messages that exist only in memory.
Although there is plenty of things I could improve, I was curious to see if anyone had suggestions or requests for what else could be added. I’m currently debugging a local-logs feature, and I could look into how to implement voice calls in the future. Thanks for your time and feel free to ask questions
Landing page: retromessenger.space
#programming
threaded - newest
Not sure what’s up with the website, but my computer was unable to handle it. Had to restart. Maybe cut down on the constant animations? A version that works without JS would be nice as well. Sounds interesting otherwise.
Thank you. Yeah I think I’ll have to cut them. I thought they looked interesting but they’re probably a bit much.
I was just about to comment on the page name glitch effect being pretty cool. Did you use some off the shelf solution for that or make it yourself?
Why not build something on top of Matrix?
P.S what a terrible website. laggy as hell
Honestly (can’t speak for OP, but) I’ve been moving away from matrix recently.
I’ve fallen back to xmpp for now, but I’ve been trying out Delta Chat as of the last few days and I’m liking it, I think I could get the normals on it with the easy onboarding, and the “no public groups” thing might be a feature not a bug.
I really really wanted to like matrix but it boils down to A) even if I do a chat app is useless without my people on it and B) with the Amdocs connection I’m too paranoid to trust it and C) even if I can just avoid the public rooms and thus CP, the fact that someone I know like my mom or cousin could conceivably stumble upon it there isn’t a selling point at the very least.
Where is the source code?
You can’t make any claims about privacy without it.
Would probably need to be open source to be trustworthy. Running a random executable from the Internet seems dicey.
Needs more screenshots. The two that are on the site don’t render great on mobile. Can only see a small portion.
I’m unclear how you find another user and verify who they are.
Website should have a clearer feature list. The user manual wants to download a text file instead of showing it in the browser.
Thanks for the feedback. Should I show snippets of the relay server code or the entire process? Could this be seen as a security risk or do you think the feedback and suggestions from more experienced programmers outweighs that? With the finding users thing, I suppose it’s a little tricky. I sort of imagined it as users connecting through other sites (or the public chatrooms in RM) and using Retro Messenger as a secure messenger, more of a secure, easy tool rather than something people are on constantly like Discord or Messenger.
For the code, open source is probably the way to go. People should be able to build from source. Otherwise, how do they know you’re not doing something shady. Open source is generally a net improvement on security, assuming people actually look at it.
For screenshots, first fix it so the screenshots render nicely on narrow displays.
Is just organize, document, and throw it up in GitHub.
I’d be concerned with the type of user base this will attract. Gonna end up with more predators than Dunder Mifflin Infinity. I just have low trust in online users. Wouldn’t even host a Lemmy server, having to manage text and images submitted by anonymous users, no thanks.
I don’t really see a market need for this, just use signal. C++ is also a weird language to use in the modern era, pretty much totally eclipsed by Go or Rust, not that you need performance anyway. Or just use webrtc for p2p connections with a standard TURN/STUN relay for network layouts that prevent direct p2p, this can be done pure web or via apps. Already has audio/video and encryption. XMPP and Matrix are also fine. But as a learning exercise, great project
Seems like there’s some good advice already in this thread for what might come next for you. I had no issues with the website on my mobile. (I like the aesthetic!) Props to you for choosing a tech stack and a goal and putting something into the world 😄 Keep it up!
Thank you so much. For some weird reason Firefox is making the images small so I’ll need to fix that but it’s working well elsewhere. You too 😄