Online research turns up two things that look identical on the page - a wishlist and a real felt pain. The discipline that tells them apart has to run at the moment you capture the quote, before an accumulating pattern makes you fall for it.
Scroll through any indie-hacker feed and count how many products are actually solving a problem for someone outside that feed. Landing page builders. Tweet schedulers. AI logo generators. Nearly all of them marketed to other people trying to escape their day jobs, in the same feed, using the same language. One founder, several side projects into failing at this, put the pattern to the community plainly:
"Scroll through any indie hacker feed and count how many products are actually solving problems outside this bubble... All marketed to other indie hackers trying to escape their day jobs."
- a founder reflecting on eight failed side projects, in a Reddit thread
He'd noticed where the actual money was, too:
"The real money? It's in boring industries where people don't even know what a 'tech stack' is. Plumbers. Dentists. Local florists who still use paper invoices. They have problems worth actual money, and nobody's building for them because it's not sexy enough to post about."
And a commenter below him, building scheduling software for car dealerships, made the point without any of the performance the thread usually rewards: forty thousand dollars a month, no Twitter following, no "building in public" - just solving an actual problem for people with money. His own filter for vetting an idea was blunt and had nothing to do with how validating the idea felt to talk about:
"I have to be able to talk to customers. Not cold email, not buy ads, actually talk to someone... How it directly increases sales for the customer must be obvious. Explanations kill customer acquisition... The customer must make enough profit per sale to where buying my thing pays for itself right away."
Notice what that filter is actually doing. It isn't a taste test for exciting ideas. It's a test for whether the "problem" survives contact with someone's wallet - whether it is the kind of pain a person will trade money to be rid of, as opposed to the kind of idea a person enjoys discussing. The indie-hacker feed has no shortage of the second kind. It is loud, articulate, and constantly refreshed, and almost none of it predicts a paying customer. This essay is about the discipline that separates the two - a discipline every practitioner we've read has to reinvent for themselves, because nothing in the raw feed marks the difference for you.
I've caught myself doing this - nodding along at a thread because the phrasing was sharp, not because the pain underneath it was real.
Here is the confusion in its most compact form, from a thread on Reddit's r/SaaS about doing customer research in online communities:
"Reddit gives you wishlists. The good signal is in cancellation feedback."
Sit with the asymmetry that sentence implies. A wishlist is cheap to produce: someone reads a post, imagines a feature, and types "I wish it did X" in under a minute, at zero cost to them if it never ships. A person canceling a subscription, by contrast, is reporting the outcome of an actual decision - money already spent, a workaround already tried and abandoned, a real cost paid in the getting there. Both show up as a sentence on a page. Only one of them tells you anything about what a stranger will do next. The same commenter names the filter that catches the difference, and it is worth reading slowly because every clause does work:
"The biggest filter I use is: pain + attempted workaround + repeated language."
Pain is the felt cost - not "this would be nice" but "this is currently costing me something." Attempted workaround is the proof that the cost was real enough to spend effort escaping, even badly. Repeated language is the check against coincidence - one person's phrasing could be idiosyncratic; the same phrasing from strangers who've never spoken to each other is a pattern. A wishlist item can satisfy none of these and still read, on the page, exactly as confident and articulate as a real pain. That is the entire problem this essay is about: the two are indistinguishable by tone. They are only distinguishable by asking, of each one, what it cost the person to say it.
It would be reasonable to assume that this is a volume problem - that if you widen the aperture and read more community threads, the pain will simply become obvious by sheer repetition. A PM in a different thread, this one on r/ProductManagement, describes trying exactly that, moving from formal interviews to watching raw community signal directly:
"Going from 'I do 5 user interviews a quarter' to 'I'm watching 8 channels of unfiltered signal' sounds great until you realize you're now drowning in raw text and have no system to extract patterns. Most PMs who try this method abandon it after a month for that reason."
The same person is clear about why the raw feed is worth the trouble in the first place, before the volume defeats them:
"The most useful signal I've gotten consistently is from people complaining in public with no idea anyone is watching. Public complaints are unfiltered. The frustration is real, the language is specific, and the context around why they care is usually right there in the thread."
Put these two observations together and the shape of the actual difficulty comes into focus. Unfiltered public complaint genuinely is better raw material than a formal interview - the frustration is real precisely because nobody performed it for an audience. But "unfiltered" cuts both ways: the wishlists arrive with exactly as little filtering as the pain does, mixed into the same eight channels, and reading more of an unsorted mixture does not sort it. The volume that makes online research valuable is the same volume that buries the pain-plus-workaround-plus-repetition filter under noise, unless something applies that filter at the moment each quote is read - not after a month of accumulated, unfiltered text has already worn the reader down.
There is a second reason wishlists dominate raw signal, and it has less to do with volume than with what happens the moment you ask someone a direct question. The same r/ProductManagement thread names it as the thing that keeps its author up at night:
"Something that keeps me up at night: the difference between what people say they do in a formal setting vs. what they actually do under pressure."
A formal setting - a survey, a scheduled call, a feature-request box - is precisely where the wishlist register gets invited. Asked "what would you want," a person answers as an aspirational version of themselves: reasonable, forward-thinking, generous with feature ideas that cost them nothing to propose. The same person, mid-task and under pressure, reveals what they actually do instead - the workaround, the thing they gave up on, the moment they almost canceled. The same thread makes the comparison explicit:
"The best insights I've ever gotten came from support tickets, not interviews. People are polite in interviews. They're honest when they're frustrated and writing to support at 11pm."
This is why watching people talk to each other, unprompted, outperforms asking them directly - not because direct answers are dishonest, but because the formal setting itself pulls for the wishlist register. If your synthesis discipline can't tell the two registers apart, every formal ask you run will quietly stock your problem list with things people would enjoy having, dressed in the same confident sentences as things people are actually suffering over.
None of this would matter much if the cost of getting it wrong were small, but the same r/SaaS thread names the actual failure mode plainly, and it is worth taking as a warning rather than a confession:
"The biggest mistake is falling in love with a problem after seeing one emotional thread."
I have shipped a roadmap item on the strength of exactly one quote before, certain at the time that it was obviously right. It wasn't the pain that convinced me. It was how good the sentence sounded next to the ones around it.
Even a genuinely painful quote, read once, is a single data point wearing the emotional force of a pattern. The danger compounds with the filter from earlier rather than replacing it: pain-plus-workaround-plus-repeated-language requires the repetition, and a single vivid thread cannot supply it no matter how real the pain in it is. The discipline, then, has two moments, not one. At the moment you read a quote, you have to name honestly what it is - pain, or a wish, or just context - before you know whether it fits a pattern. And at the moment a pattern seems to be forming, you have to require that the repetition came from people who don't know each other, rather than mistaking your own growing conviction for evidence.
This two-moment discipline is what CLRA is built to enforce, and it is worth being precise about what it does and doesn't do. As you read a community thread with the CLRA extension, a highlighted sentence surfaces four tags - Pain, Worldview, Jargon, Observation - and choosing one is the whole action. The tool doesn't decide for you whether a quote is pain or wishlist; a founder still has to apply the "pain plus attempted workaround plus repeated language" filter in their own head, the same filter the r/SaaS commenter described. What the tagging step does is force that judgment to happen at the moment of reading, while the workaround and the specific words are right in front of you - not three weeks later from a paraphrased memory of how the thread felt. The highlight below shows what survives that judgment: a sentence worth keeping, sitting right next to a line - "it would be cool if..." - that the same reader chose not to tag, because wanting something and being stuck with something aren't the same sentence.

The second moment - resisting the one-thread trap - is what turns a handful of tagged highlights into a problem. CLRA asks you to frame it as a job story: the situation someone is actually in, the thing they're trying to do, and the outcome they want, all traceable back to the highlights that justify it. A problem built from a single vivid Pain-tagged quote is exactly as fragile as the r/SaaS commenter's warning describes; a problem with highlights pulled from two unrelated threads, in two people's own words, is the repeated-language condition made concrete and auditable.

It's worth being honest about the nearest workaround, because someone in that same r/SaaS thread proposed exactly this fix to the person asking for help:
"Have you thought about creating a lightweight template to track patterns you find, like a simple Notion board with columns for problems, frequency, and emotional intensity."
This is a real improvement over reading with no system at all, and it fails for a specific, avoidable reason. By the time a quote becomes a row in that board, someone has already read it, already decided it's a "problem" worth a row, and already summarized it into a frequency count and an intensity rating. The judgment - pain or wishlist, real workaround or idle ask - happened in the reader's head a moment before the row was typed, and only the conclusion survives into the board. Three weeks later, "frequency: 3" is unfalsifiable: nobody can check whether those three were three real pains or three well-phrased wishes, because the words that would answer the question never made the trip into the columns.
Unlike a Notion board, CLRA keeps the tag attached to the verbatim quote itself, not to a summary of it. When a highlight says Pain, the sentence that earned that tag is one click away, in the exact words the stranger used, so the judgment can be rechecked rather than merely trusted. The point isn't that CLRA has more columns. It's that the thing worth auditing - was this actually pain - is preserved instead of being the first casualty of turning a quote into a row.
Return to the indie-hacker thread this essay opened with. The founder scrolling that feed wasn't short on signal - the feed is never short on signal. What he was short on was a filter running at the moment of reading, one that would have told him early that "AI-powered logo generator, marketed to other founders" satisfies none of pain, workaround, or repeated language, while "plumbers still use paper invoices" might satisfy all three if anyone bothered to go find out. The commenter who was actually making forty thousand dollars a month wasn't reading a different feed. He was reading the same one with a filter that ran before the idea got exciting enough to fall for.
That is the discipline this essay has been describing: not more reading, and not a better board to file conclusions into, but a tag applied honestly at the moment a sentence is captured, and a refusal to promote anything to a problem until the same tag shows up, unprompted, in someone else's words.
Start tagging as you read: add the CLRA extension and create a free workspace.