2
34 Comments

My listener found 289 invoicing complaints. I replied to zero.

Earlier this month I built a small listener for demand discovery. It watches five subreddits and seven Hacker News search phrases, matches five keyword groups, and stores every hit in a local SQLite file.

Week one gave me:

  • 12 sources
  • 289 keyword hits
  • 4 of 5 subreddits returning HTTP 429, even at an 8-second delay
  • 232 snippets truncated at 300 characters by a bug in my own fetcher
  • 9 conversations I could actually read
  • 0 where a reply from me wouldn't feel like a pitch

The zero is what caught my attention.

The usual advice is "go where the pain is." So I did. The listener found plenty of pain. One of the nine, paraphrased: a freelancer waiting on an unpaid invoice, client gone quiet, asking how long others wait before sending the second follow-up.

But finding someone with a problem isn't the same as having a good reason to jump into their conversation. I could have replied: "I built an offline invoicing tool that..." Technically relevant. Probably also exactly the kind of reply everyone has learned to ignore.

So I'm starting to think discovery isn't the scarce resource. Earned context is.

So here's what I'm going to try. For the next four weeks I'll answer useful questions in one community without mentioning my product. No links. No "I built this." No clever transition into a pitch. At the end I'll count one thing: how many of the conversations I participated in naturally led someone to ask what I was building.

Not traffic. Not impressions. Not profile views. Not upvotes. If the number is zero, I'll publish zero. I'll name the community in the week-four post, whichever way it lands.

Here's the part that makes the experiment uncomfortable for me: the same week my listener found 289 invoicing hits, my own Indie Hackers post about publishing my data format got zero comments. Maybe I don't have a discovery problem at all. Maybe I have a presence problem. I'm curious whether I'm overcorrecting.

I'm not naming my product in this post. Zero customers so far.

Two questions, and I'd especially like answers from people who've tested both sides:

  • What's your rule for mentioning your product in someone else's pain thread — and do counterexamples exist: drive-by replies that genuinely worked?
  • Has the community where you consistently helped people ever converted better than the community where you actively promoted yourself?

I'll post the week-four count here, whether it's zero or not.

on September 22, 2026
  1. 1

    Really solid approach — curious how you're thinking about this, what's been the hardest part to figure out so far?

  2. 1

    I’d make the no-pitch rule a checklist: can I answer the exact question without product context, have I already contributed in that community, and did they explicitly invite tools? If not, reply with a useful example or diagnostic and stop. I’ve found the best conversion signal is when someone asks a follow-up about the workflow, not when a profile gets a view.

  3. 1

    Thanks for sharing the numbers, that makes it much easier to follow.

  4. 1

    Thanks for sharing the numbers, that makes it much easier to follow.

  5. 1

    Your four-week experiment is close to what I've been running across several communities for my own product, so a few field notes. On mentioning: my rule is the product gets named only when the OP's question is directly about the category I work in - then it is context, not a pitch. A drive-by that 'worked' has never been a reply with a link; it has been the reply where the OP asks a follow-up question. That is my equivalent of your count. On community-vs-promotion: the places where I just help have produced every real conversation so far; the one channel where I allowed anything close to promotion produced silence. One tweak to the experiment: four weeks of zero-mention is clean, but the someone-asks-what-you-build signal is rare and lumpy - also count OP follow-up questions, or you will discard signal that is not zero. What made you pick invoicing complaints as the pool to listen to?

  6. 1

    "Earned context" is the right framing, and your instinct on the zero replies is correct.

    My rule for mentioning a product in a pain thread: only when I can answer the question first, completely, without the product — and the product is a natural extension of the answer rather than the answer itself. "I built a tool that does this" is a pitch. "Here's how to think about follow-up timing, and then yes there are tools including mine that automate the ladder" is a contribution that happens to mention you exist. Most people get the order wrong.

    The counterexamples where drive-by replies worked were all people who had been building context for weeks before they dropped a product mention. The product mention wasn't the introduction — it was the fifth or sixth touchpoint. And in almost every case, they got asked first rather than inserting it.

    On your second question: yes, consistently. The communities where I'd helped people without pitching converted at a higher rate from a much lower volume of conversations. The mechanism is simple: if someone has watched you be helpful for weeks, they'll try your product partly because they believe it's likely good and partly because they feel like they know you. The promotional version of community work bypasses the relationship and gets measured in clicks, which is a worse proxy.

    Your four-week experiment is the right test. The count you want at week four isn't "how many asked about my product" — it's "how many conversations had a real back-and-forth where the other person sent more than one message." That's the signal. The product question is a lagging indicator of that.

  7. 1

    Thanks for sharing the numbers, that makes it much easier to follow.

  8. 1

    That 232 truncated snippets number feels like an important split in the experiment. Right now “no reply felt earned” is mixed with “I couldn’t properly read the context.” I’d log those separately in week four, even if the main no-pitch count stays fixed. Otherwise the fetcher bug might look like a distribution lesson. The no-link/no-pitch rule still feels right though.

  9. 1

    Vlad, I run a version of your experiment in two communities, one comment a day, and I count something slightly different: how many authors reply at all, and how many of those replies correct me. I'm a QA engineer, so my comments are usually one specific thing I found in the poster's own product. The pattern after a few weeks is blunt. The ones that got an answer were always posts where the author had just shipped something and I had opened it before typing. The ones that got nothing were posts where I had an opinion but nothing specific to point at. So the variable may not be restraint versus promotion. It may be whether you did any work before you wrote.

  10. 1

    I think the four-week experiment will be more useful if you measure what happens after the first helpful reply, not just whether someone eventually asks about the product.

    A reply can create useful context even if nobody asks what you're building. For example, someone might clarify the problem, describe their current workaround, or come back with a more specific question.

    Those signals could tell you whether the community is actually giving you access to real problem conversations, even before there is any product interest.

    I’d probably track the conversation depth alongside the eventual product questions. That might also help separate a community with genuine problem discussion from one that simply has a lot of keyword matches.

    1. 1

      That's the layer my count misses, and it misses it in a specific direction: depth can prove access even when product interest never shows up.

      So I'll log three depth signals per thread I reply in: they clarify the problem, they describe a current workaround, or they come back
      with a sharper question. The primary count stays binary — I committed to that publicly and won't move it mid-experiment — but the depth column goes into the week-four post next to it.

      That also gives me the separation you named: a community where threads deepen is giving me real problem conversations; one where they don't is just keyword matches with people in them.

      From your side: which of those three signals has actually predicted real access for you — the workaround description or the return visit?

  11. 1

    The zero is a useful constraint. I’d make “no pitch” operational with a two-step gate: can I answer fully without mentioning a product, and did the person actually ask for a tool? Then track replies that lead to a follow-up or explicit permission before sharing anything—keeps “earned context” measurable.

    1. 1

      The two-step gate turns "no pitch" from an intention into a check I can fail, which is exactly what it needed. Adopting it verbatim: can I answer fully without naming a product, and did this person actually ask for a tool? Only a yes to the second makes sharing permissible at all — and even then only after a follow-up or explicit permission.

      That second gate also solves a quieter problem: it stops me from treating silence as an invitation. Nobody asked for a tool in any of the nine readable conversations, so nothing was shareable, and now I can say why in one sentence instead of vibes.

      Curious which half does the real work in your experience: has the "did they ask for a tool" gate ever flipped a reply from draft to sent, or does the first gate catch everything first?

  12. 1

    That “earned context” distinction rings true. I’d be tempted to make the experiment’s unit of learning the reply itself: log whether each response is purely helpful, asks a clarifying question, or includes a concrete next step, then compare which threads produce follow-up. Have you considered adding a small relevance/urgency score before reading the full context, so the listener helps with triage rather than just volume?

    1. 1

      Making the reply the unit of learning is the upgrade this experiment needed. I'll grade every reply at write time — purely helpful, clarifying question, or concrete next step — and compare which grade produces follow-up.

      On the relevance score: my listener already paid that tuition. It died at triage, not at reading — 232 of 289 snippets truncated by my own fetcher bug before any score could run. Version two scores first and fetches full context only above a threshold.

      One practical question: do you grade at write time or after, when you can see what landed? I'm leaning write time plus a one-line post-hoc note.

  13. 1

    Makes sense. Are you planning to charge for it, or keep it free for now?

    1. 1

      Both halves already exist. The Start tier is free to try — up to 5 clients and 5 projects a month, same encryption, same local file. Standard is $49 one-time when it ships: no subscription, no account, no per-seat math.

      The one-time price is the part I can't prove yet, and I said so in the post. Zero customers so far. I'll use Start-to-Standard conversion at 30 days as one of the first tests — published either way, but it's a test, not a promise.

      What made you ask — pricing for something you're building, or something you're buying?

  14. 1

    Interesting approach. What was the hardest part to get right?

  15. 1

    Nice progress. What is the next thing you are focusing on?

  16. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  17. 1

    Nice work shipping it. What has been the biggest challenge since launch?

  18. 1

    Interesting. How are you measuring whether it is working?

  19. 1

    Helpful post. How did you get your first bit of traction?

  20. 1

    Nice progress. What is the next thing you are focusing on?

  21. 1

    Curious how long it took before you saw the first real results?

  22. 1

    For the four-week experiment, what would distinguish meaningful commercial signal from people simply appreciating your replies—an unsolicited product question, a qualified conversation, or a request to test it?

    1. 1

      The count stays as the post defines it: an unsolicited product question. It's the only event in your list I can't manufacture.
      Appreciation I can earn with any decent reply; a question about the tool means someone moved from "good comment" to "what's behind it"
      without me pushing.

      The other two I record as tiers, next to the count, not inside it. A qualified conversation is substance without an ask; a request to test
      is the strongest of the three and currently unfulfillable, since the build isn't public until Early Access.

      And none of the three is commercial signal. Commercial signal is money, and money shows up in the cohort number after launch. This
      experiment measures whether earned context produces curiosity without prompting; the cohort measures whether the promise produces payment.
      Conflating them is the mistake you pushed back on in thread #3, so I won't rebuild it here.

      From your side of the hinge: which of the three would you accept as evidence before launch — and has your filter ever burned you by being
      too strict?

      1. 1

        That’s exactly where I’d be careful about giving a universal answer. Whether any of those signals count as useful evidence depends on the decision they’re being used to inform—and that’s where I’d want to examine the specific context rather than apply a fixed filter.

  23. 1

    289 complaints and zero replies is a wild gap between signal and action. What's been the blocker — bandwidth, or not being sure which ones are worth responding to?

    1. 1

      Mostly the second one.

      The 289 were keyword hits, not 289 good conversations. After the fetcher problems, I could actually read 9. The harder part was
      deciding whether I had something genuinely useful to add without turning the reply into a disguised pitch.

      So bandwidth wasn't the bottleneck. Knowing whether I had earned a reason to join the conversation was.

  24. 1

    Clear and practical, thanks. Did anything surprise you along the way?

    1. 1

      Yes — I expected the hard part to be finding enough pain. It turned out to be the opposite.

      Once I had actual conversations in front of me, the surprise was how hard it was to find a reply that was both useful and not a disguised
      pitch.

      And the other surprise: how much of the 289 disappeared once I fixed my own fetcher. The bottleneck was my code, not the market.

  25. 1

    Curious how long it took before you saw the first real results?

    1. 1

      Pretty quickly for the discovery part — the first run produced the 289 hits.

      But I wouldn't call that a real result yet. The interesting result was what happened after filtering: 9 conversations I could actually read, and zero where I felt good about replying.

      The commercial part hasn't happened yet. That's what the four-week experiment is supposed to test.