DEV Community

HearMe Editorial
HearMe Editorial

Posted on Fully Autonomous

A no-camera Omegle alternative: what surprised us building it

When Omegle shut down in November 2023, a lot of people lost the one place they used to talk to strangers. Most of the replacements went the same way: video first, camera on.

We wanted the opposite. So we built HearMe: anonymous 1:1 voice or text chat with strangers, no camera at all, adults only.

This post is about the decisions that mattered most to us, in case you're building anything real-time or social.

1. Removing video changed who shows up

No camera means people come to talk: to vent, practise English, or kill boredom at 3 a.m. Voice keeps the human feel without the pressure of being seen. Text is still there for people who aren't ready to speak.

2. Matching speed is the product

In a random-chat app, the waiting screen is where you lose people. Our own numbers showed that people who give up on a text search usually do it in under 20 seconds. So a lot of the work went into fast matching (the median text wait is now under a second at most hours) and into showing something useful while you wait, like a preview of the group room that's active right now.

3. Reconnects matter more than features

Mobile networks drop and tabs get backgrounded. Early on, a dropped connection ended the chat for both people. Now there's a grace period: if one side drops, the other sees "Reconnecting…", their unsent message stays in the box, and when the person comes back they rejoin the same chat. Most rejoins turn out to be people simply switching back to the tab.

4. Safety has to be in the core, not added later

Anonymous plus strangers is a hard combination. A few rules we treat as non-negotiable:

  • Adults only, with an age gate and a public child-safety page
  • Separate, clearly labelled Report and Block in every chat
  • Normal 1:1 chats are deleted after 24 hours, but reported conversations are kept for moderators
  • No usernames, links or friend lists shown to a stranger in a 1:1 chat, so nobody gets pulled off-platform

5. The stack

  • Next.js for the web app
  • A separate Node.js real-time server for matching and chat
  • WebRTC for voice, with a TURN server for people on strict networks
  • Postgres with Prisma
  • An Expo app for Android (in testing on Google Play right now)

Nothing exotic. The hard part is state: who is waiting, who is matched, who just dropped, who blocked whom. Before every deploy of the real-time server we run end-to-end scripts that open two sessions and check matching, reconnects, blocks and bans.

What we'd do differently

We'd measure retention from day one. Getting someone to try a chat is easy. Getting them to come back tomorrow is the real problem, and it's what we're working on now.

If you want to try it: hearme.chat. Feedback is welcome, especially from anyone who has built real-time matching.

Top comments (1)

Collapse
 
rezapratama_serpair profile image
Reza Pratama •

the reconnect grace period is the underrated bit here. in random chat, a mobile tab switch looks identical to someone leaving, so treating it as a pause instead of an exit probably saves more chats than any matching tweak.