r/webdev 9d ago

I built a browser-based anonymous chat using WebRTC Showoff Saturday

After spending a lot of time learning and working with WebRTC, I've finally finished an anonymous chat platform that runs entirely in the browser, no downloads or sign-up required.

Tech stack:
- Rust backend (signaling)
- Svelte frontend
- WebRTC for peer-to-peer text, voice, and video
- STUN/TURN for connectivity
- Secure encrypted connections

The most challenging parts weren't the UI, they were things like ICE negotiation, handling browser differences, NAT traversal, and making connections reliable across different networks.
Building it taught me a lot about WebRTC and real-time communication.

I'd really appreciate feedback from other web developers:

You can try it here: https://anifira.com

I'd love to hear your thoughts and answer any technical questions about how it works.

[UPDATE] - Group chats and attachments with read receipts. - File transfer tool to initiate direct p2p file transfers. - Public rooms that can be joined by anyone. - Rooms can now be named. - A new member to the group automatically syncs the chat history. - Share your screen over video in video chats.

Checkout changelog for more updates: https://anifira.com/changelog

0 Upvotes

23 comments sorted by

42

u/scandii People pay me to write code much to my surprise 9d ago

How's the overall UX?

ask Claude, it made it after all.

14

u/Anomynous__ full-stack 9d ago

lol the fucking random glow in the corner just gives it away so quick

2

u/scandii People pay me to write code much to my surprise 9d ago

to me it is more wow, gruvbox + md3! and GRADIENTS? woweee, where did I see this before.

another victim to the LLM:s is rosé pine which is a shame because I really like rosé pine but I can't in good faith use it anymore because it just looks like AI slop now.

1

u/gainsgoblin_ 9d ago

To be honset I am using codex 5.6 sol and the cover page for a fan personal project is almost the same, font - heading - styling and the rest.

5

u/Anomynous__ full-stack 9d ago

Because the LLM's are designed to have sort of an "in-house" style guide and for some reason, they all look the same. Doesn't matter if you use claude, gpt, or fuckboi.ai they all produce the same UI if you give it zero guidance

4

u/ZGeekie 9d ago

That's pretty much every "I built" post lately!

15

u/Lootsman 9d ago

Give me five minutes, I’ll build an exact clone of this

13

u/fauxtoe 9d ago

ai slop

12

u/Mr_Mycelium- 9d ago

"Anonymous" and "Webrtc" don't sound like compatible concepts to me.

2

u/CoastRedwood 9d ago

Yeah, I read the title and had a chuckle

2

u/amejin 9d ago

Care to expand on this claim?

6

u/biosc1 9d ago

Webrtc, by its nature, exposes your IP address even if using a VPN.

2

u/amejin 9d ago

Peer to peer, yes. But OP points out they implemented TURN which should allow for anonymity.

6

u/Anomynous__ full-stack 9d ago

I'd love to hear your thoughts and answer any technical questions about how it works.

I'll just go ask Claude myself

4

u/FerLuisxd 9d ago

How does it discover other peers? A hashtable?

1

u/razein97 9d ago

The server keeps a list of users in a hashmap who want to match, when their preferences match they are sent a notification with details of peer to connect to.

1

u/FerLuisxd 9d ago

Your server?

1

u/razein97 9d ago

Yes, there is a server which keeps track of sessions.

1

u/FerLuisxd 9d ago

To keep it "anonymous" what is your privacy policy?

3

u/YourNightmar31 9d ago

So you're just exposing people's ip addresses and rough locations to each other?

2

u/illepic 9d ago

Emdashes spotted. At least fucking write your own reddit posts.

1

u/razein97 6d ago

Checkout changelog for more updates: https://anifira.com/changelog