<?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: Kevan</title>
    <description>The latest articles on DEV Community by Kevan (@kevan3010).</description>
    <link>https://dev.to/kevan3010</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%2F4177766%2F9ce6e6fc-9c04-4e89-b3cb-2134e06403d2.png</url>
      <title>DEV Community: Kevan</title>
      <link>https://dev.to/kevan3010</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kevan3010"/>
    <language>en</language>
    <item>
      <title>Find people who need your side project with the DEV API, in about 20 lines of Python</title>
      <dc:creator>Kevan</dc:creator>
      <pubDate>Mon, 12 Oct 2026 16:05:40 +0000</pubDate>
      <link>https://dev.to/kevan3010/find-people-who-need-your-side-project-with-the-dev-api-in-about-20-lines-of-python-58c5</link>
      <guid>https://dev.to/kevan3010/find-people-who-need-your-side-project-with-the-dev-api-in-about-20-lines-of-python-58c5</guid>
      <description>&lt;p&gt;I'm a solo founder looking for my first users, and a lot of the people I want to talk to write on DEV. "I launched and nobody came." "0 sales after 3 weeks." Those posts are a good place to start a conversation, because the person just described their problem in public.&lt;br&gt;
Here's the script I run to find them. It only uses the public DEV API, so you don't need a key.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timedelta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timezone&lt;/span&gt;

&lt;span class="n"&gt;TAGS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;buildinpublic&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sideprojects&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;saas&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;startup&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;WORDS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;first users&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;first customers&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;no users&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0 users&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0 sales&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;zero sales&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;nobody&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;how do you find&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;SINCE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;timezone&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;utc&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nf"&gt;timedelta&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;days&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;req&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;User-Agent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;first-users-finder&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;seen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;tag&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;TAGS&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://dev.to/api/articles/latest?tag=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;tag&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;per_page=100&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;published&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fromisoformat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;published_at&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Z&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;+00:00&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;title&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)).&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;seen&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;published&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;SINCE&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="nf"&gt;any&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;WORDS&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;continue&lt;/span&gt;
        &lt;span class="n"&gt;seen&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;published_at&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;  &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;comments_count&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; comments  &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;title&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;  &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It pulls the latest articles for four tags, keeps the last 7 days, and keeps the ones whose title or description contains one of the phrases. Then it prints the date, the number of comments, the title and the link.&lt;br&gt;
Change &lt;code&gt;WORDS&lt;/code&gt; to fit what you sell. If you built an invoicing tool, try "late payment" or "chasing invoices" instead of "0 sales". When I ran it today, most of the matches had 0 comments, so a reply there doesn't get lost.&lt;br&gt;
Now the honest part. Over the last week I left 29 comments on DEV posts like these. 2 people answered. On Indie Hackers, the same kind of reply got 9 answers out of 16. My read is that most DEV posts are finished articles, not questions, so the author isn't expecting a conversation. If you use the script, favour posts that end with a question, and keep your comment about their post: one specific detail, one easy question, no link.&lt;br&gt;
I'm building FounderPulse, which runs this kind of search across more sites than DEV. But the script above is enough to start, and it's free.&lt;/p&gt;

</description>
      <category>python</category>
      <category>api</category>
      <category>startup</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>I replied to 47 founders' posts in a week. 9 of the 11 answers came from Indie Hackers.</title>
      <dc:creator>Kevan</dc:creator>
      <pubDate>Mon, 12 Oct 2026 16:02:46 +0000</pubDate>
      <link>https://dev.to/kevan3010/i-replied-to-47-founders-posts-in-a-week-9-of-the-11-answers-came-from-indie-hackers-58pb</link>
      <guid>https://dev.to/kevan3010/i-replied-to-47-founders-posts-in-a-week-9-of-the-11-answers-came-from-indie-hackers-58pb</guid>
      <description>&lt;p&gt;I'm building FounderPulse on my own (it looks for people who just posted about the problem you solve), and I don't have a paying customer yet. So this week I did the most basic thing possible: find founders who had just written about their problem, and reply under their post.&lt;br&gt;
Here's what my tracker says:&lt;br&gt;
Indie Hackers: 16 replies, 9 people answered.&lt;br&gt;
dev.to: 29 comments, 2 people answered.&lt;br&gt;
X: 2 replies, 0 answers.&lt;br&gt;
Every message had the same shape. One line about a specific detail in their post, then one easy question about their project. No link, no price, nothing about what I'm building. On a post about a QA tool, I wrote: "Treating 'installed' and 'exported a useful first test' as different milestones is smart. How many installs have reached that second one so far?" He answered the same day.&lt;br&gt;
My guess for the gap, and I can't prove it: most of the IH posts I answered ended with a question, like "how did you find the bottleneck?". The author was waiting for replies. On dev.to, most were finished articles. A comment there reads like feedback on an essay, and nobody owes you an answer to that.&lt;br&gt;
An answer isn't a customer, though. Nobody has paid yet. The next step is the awkward one: when someone's interested, asking straight out whether they'd pay $49 a month, and writing down why when they say no.&lt;br&gt;
If you've done this kind of outreach, where did people actually answer you?&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>saas</category>
      <category>startup</category>
    </item>
    <item>
      <title>800 press reprints, 3 visitors: what 10 recent launch posts on DEV say about getting your first users</title>
      <dc:creator>Kevan</dc:creator>
      <pubDate>Sun, 11 Oct 2026 21:34:10 +0000</pubDate>
      <link>https://dev.to/kevan3010/800-press-reprints-3-visitors-what-10-recent-launch-posts-on-dev-say-about-getting-your-first-3j97</link>
      <guid>https://dev.to/kevan3010/800-press-reprints-3-visitors-what-10-recent-launch-posts-on-dev-say-about-getting-your-first-3j97</guid>
      <description>&lt;p&gt;Every week on DEV, someone writes the post nobody enjoys writing: I launched, and almost nobody came.&lt;/p&gt;

&lt;p&gt;I read the ones published between September 20 and October 11. Not the growth threads, the honest ones with real numbers. Ten of them, side by side, tell a pretty clear story.&lt;/p&gt;

&lt;p&gt;What didn't move the needle&lt;br&gt;
A press release. Hisashi sent the launch of Pinateca through a wire service. It got reprinted on about 800 sites. Those reprints sent 3 visitors.&lt;/p&gt;

&lt;p&gt;Directories and submission forms. Yaniv launched Deckgauge on Product Hunt, a Reddit megathread, DEV and a few listing sites, with $54 of ads. In Yaniv's words: "Every directory and submission channel we paid or applied for produced less than that one unpaid segment." More on that segment below.&lt;/p&gt;

&lt;p&gt;A marketplace. Revanza put 39 products on Gumroad and sold almost nothing: "I had built a cash register and expected it to bring customers." Luca says the same about RapidAPI: search "seems dead for newcomers".&lt;/p&gt;

&lt;p&gt;The usual launch stack. Chris sold the first 100 React Native templates for Applighter and listed what flopped: X threads, Product Hunt, YouTube, and paid ads at about $120 to acquire a customer for a $79 product.&lt;/p&gt;

&lt;p&gt;What did move it&lt;br&gt;
One person showing the product to the right people. Yaniv's "unpaid segment" was a YouTuber demoing Deckgauge for 38 seconds. Direct traffic more than doubled the next day.&lt;/p&gt;

&lt;p&gt;Showing the result instead of describing it. Fatt had three months of $0 on a paid AI summary. Fatt started showing the real summary, blurred, instead of an "Unlock" button. The first Stripe payment came within a day.&lt;/p&gt;

&lt;p&gt;Answering people who were already asking. Chris's list of what worked starts with long-tail SEO and answers on Reddit. The first 20 sales took three months. The next 80 took two.&lt;/p&gt;

&lt;p&gt;Going one by one. vmzavas lost 82% of PeerPlay's active users to a bug that hid apps for two months. The fix was code, but the rebuild was manual outreach on itch.io and dev forums, one developer at a time. On October 6, the first paid campaign went through.&lt;/p&gt;

&lt;p&gt;Looking at the real numbers, then at real people. innerlove spent seven months on a funnel. The analytics said 15 users. The database said 2. One of them sent 390 messages in a day and came back. The conclusion: "I had spent seven months on the funnel when the problem was that I never showed the thing to anyone."&lt;/p&gt;

&lt;p&gt;Two more worth reading&lt;br&gt;
Nandan listed a whole year: 4 web apps, 3 open-source tools, a book, 250+ users, $25 in total. The takeaway: "One paying subscriber counts."&lt;/p&gt;

&lt;p&gt;Arbizen built a cat greeting card site for grandparents. More than 3,000 people used it, mostly 18 to 30 year olds. The users weren't the ones planned for, and that only became clear by watching who actually showed up.&lt;/p&gt;

&lt;p&gt;The pattern&lt;br&gt;
Everything in the first list reaches a lot of people at a moment when none of them is looking for you.&lt;/p&gt;

&lt;p&gt;Everything in the second list reaches a few people at the moment they care: a viewer watching a demo of exactly their problem, someone staring at their own messy recording, a developer asking in a forum. Small numbers, but every one of them is in the right place at the right time.&lt;/p&gt;

&lt;p&gt;That's also why it doesn't feel like marketing. You're not announcing. You're answering.&lt;/p&gt;

&lt;p&gt;I'm building FounderPulse for that last part: it finds people who posted in the last few days about the problem you solve, so you can answer while it's still fresh. The link is in my profile if you're curious.&lt;/p&gt;

&lt;p&gt;If you've got your first 10 users: which channel actually brought them? Not the one you planned, the one that worked.&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>marketing</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
