<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: HearMe Editorial</title>
    <description>The latest articles on DEV Community by HearMe Editorial (@hearme).</description>
    <link>https://dev.to/hearme</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4137831%2F2d600dee-d219-44b3-9910-f9320fd31d5f.png</url>
      <title>DEV Community: HearMe Editorial</title>
      <link>https://dev.to/hearme</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hearme"/>
    <language>en</language>
    <item>
      <title>We built a stranger chat with no video. Here's what our first nine days actually looked like.</title>
      <dc:creator>HearMe Editorial</dc:creator>
      <pubDate>Tue, 22 Sep 2026 15:16:01 +0000</pubDate>
      <link>https://dev.to/hearme/we-built-a-stranger-chat-with-no-video-heres-what-our-first-nine-days-actually-looked-like-a12</link>
      <guid>https://dev.to/hearme/we-built-a-stranger-chat-with-no-video-heres-what-our-first-nine-days-actually-looked-like-a12</guid>
      <description>&lt;p&gt;Nine days ago we put HearMe live: an anonymous chat where you get matched with a stranger and talk by voice or by text. Not by video. There is no video mode, and there will never be one.&lt;/p&gt;

&lt;p&gt;This is the honest write-up of what happened next. The short version: almost nothing, and one bug that hid even that from us.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we built, and why no video
&lt;/h2&gt;

&lt;p&gt;Random video chat is a solved product with an unsolved problem: the camera is where the abuse lives. Omegle shut down in 2023 under the weight of it, and in February 2026 Apple revised its guidelines to make clear that "random or anonymous chat" apps fall under the user-generated-content rules that let them be pulled without notice. Every "Omegle alternative" list we could find is still ten video sites in a row.&lt;/p&gt;

&lt;p&gt;So we took the camera out entirely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Voice or text only.&lt;/strong&gt; A call negotiates an audio track and nothing else. The site never asks for camera permission because there is no code path that would use it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No sign-up to start.&lt;/strong&gt; Pick up to five interests, tap voice or text, get matched. A free account only adds friends, DMs and block.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;India first.&lt;/strong&gt; The interface ships in eight languages including Hindi, and the voice path uses a self-hosted TURN relay tuned for Indian mobile data, because that is where most of our future users are — on a phone with a flaky uplink.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Honest presence.&lt;/strong&gt; The home page says "Quiet now" when nobody is waiting. No seeded users, no bots, no made-up "12,483 online".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last decision is the one this post is really about.&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers, unrounded
&lt;/h2&gt;

&lt;p&gt;As of 21 September 2026:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Days live:&lt;/strong&gt; 9 (13–21 September).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sessions from outside our own devices and test runs that pressed Start:&lt;/strong&gt; 6. Six people. They made 13 attempts between them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stranger-to-stranger matches:&lt;/strong&gt; 0. Every completed conversation in nine days was either our own devices talking to each other, or our end-to-end tests talking to each other.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Revenue:&lt;/strong&gt; $0. Premium subscribers: 0.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Editorial links pointing at us:&lt;/strong&gt; 0.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of those six people arrived, pressed Start, waited alone, and left. That is the cold-start problem in its purest form: a matching product with nobody to match.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bug that hid the numbers
&lt;/h2&gt;

&lt;p&gt;For eight of those nine days our matching server was writing to the wrong database.&lt;/p&gt;

&lt;p&gt;HearMe shares a server with another project of ours. The socket server loaded its environment file with a path relative to the working directory, not to the file. The process manager started it one directory up from where we expected, so it read the other project's &lt;code&gt;.env&lt;/code&gt; — and its &lt;code&gt;DATABASE_URL&lt;/code&gt; — and every match record and guest row it created went into the other database. Nothing visibly broke, because the two schemas were identical at the time.&lt;/p&gt;

&lt;p&gt;It surfaced only when we added a column on our side. The next connect blew up on a ban check, matching died for two and a half hours across our first evening "voice hour", and the stack trace pointed at a database we had not touched in weeks.&lt;/p&gt;

&lt;p&gt;The fixes were small and boring: resolve the env path from &lt;code&gt;__dirname&lt;/code&gt;; pin the process manager's working directory; log the database name at boot and refuse to start on anything but the two names we allow. Then we reconciled: backed up both sides, moved the misplaced rows across with their original timestamps, and deleted ours from the other database.&lt;/p&gt;

&lt;p&gt;Reconciling was the humbling part. Our internal report had said "13 conversations in week one". The corrected count was 74 rows — and when we attributed each one by IP, the organic number went down, to zero. We had been about to publish a match rate.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we are doing about the empty room
&lt;/h2&gt;

&lt;p&gt;Not faking it. The temptation is obvious: seed a few "users", show a comforting online count, let people believe someone is about to answer. Several sites we tested show counts we couldn't verify. We think that is why people leave those sites feeling worse than when they arrived, and we are not going to build that.&lt;/p&gt;

&lt;p&gt;Instead:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Say the truth on the page.&lt;/strong&gt; "Quiet now" stays. If you are the only person waiting, the page tells you so and offers something else to do instead of a spinner.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make waiting worth something.&lt;/strong&gt; You can leave a 15-second voice note for the next person who shows up, ask to be rung when someone real arrives, or send a friend a private link that drops them straight into a call with you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Concentrate the few people we have.&lt;/strong&gt; We are pushing everything toward one evening window in Indian time, so that six people spread over nine days become six people in the same hour.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write this up honestly&lt;/strong&gt; and see who finds it interesting enough to try. If you want to be one of the first stranger-to-stranger matches, &lt;a href="https://hearme.chat/text-chat" rel="noopener noreferrer"&gt;HearMe text chat&lt;/a&gt; needs nothing at all and &lt;a href="https://hearme.chat/voice-chat" rel="noopener noreferrer"&gt;HearMe voice chat&lt;/a&gt; asks for your microphone only when you tap Call.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We will post the next set of numbers when there is something to count. If it is still zero, we will say zero.&lt;/p&gt;

&lt;p&gt;— HearMe Editorial · &lt;a href="https://hearme.chat" rel="noopener noreferrer"&gt;https://hearme.chat&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>webrtc</category>
      <category>startup</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
