<?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: Jin Otto</title>
    <description>The latest articles on DEV Community by Jin Otto (@threadotter).</description>
    <link>https://dev.to/threadotter</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%2F3991292%2F9f4c8267-0804-44bb-97f5-8b01a8fa58f9.png</url>
      <title>DEV Community: Jin Otto</title>
      <link>https://dev.to/threadotter</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/threadotter"/>
    <language>en</language>
    <item>
      <title>Everyone says build in public. Nobody tells you what to post when you're at $0 MRR.</title>
      <dc:creator>Jin Otto</dc:creator>
      <pubDate>Thu, 18 Jun 2026 17:47:42 +0000</pubDate>
      <link>https://dev.to/threadotter/everyone-says-build-in-public-nobody-tells-you-what-to-post-when-youre-at-0-mrr-2o41</link>
      <guid>https://dev.to/threadotter/everyone-says-build-in-public-nobody-tells-you-what-to-post-when-youre-at-0-mrr-2o41</guid>
      <description>&lt;p&gt;"Build in public" is the most repeated piece of GTM advice for founders, and almost nobody tells you the part that actually matters: what do you post when there's nothing impressive to report yet?&lt;/p&gt;

&lt;p&gt;The build-in-public posts that go viral all have the same secret ingredient. &lt;em&gt;"My brother and I scaled several SaaS past 20K MRR."&lt;/em&gt; &lt;em&gt;"We hit $40K MRR in 8 months, here's the playbook."&lt;/em&gt; The number is the hook. It's the thing that makes you stop scrolling. And if you're early, with nothing impressive to report yet, you don't have the number. So you do one of two things, both bad: you stay silent because you've got nothing to brag about, or you manufacture a hook you haven't earned.&lt;/p&gt;

&lt;p&gt;I've done both. Here's what I learned about the version that works when you're at $0.&lt;/p&gt;

&lt;h2&gt;
  
  
  You cannot borrow a hook you haven't earned
&lt;/h2&gt;

&lt;p&gt;The first temptation is to write like the founders you admire — to open with momentum you don't have. "Here's how I'm going to grow this to 10K MRR." You're allowed to &lt;em&gt;want&lt;/em&gt; that. But the moment your content implies traction you don't have, two things happen. The savvy readers — the exact founders and operators you want — smell it, because they've written the same hopeful tweet and know what zero looks like dressed up as something. And you set a frame you then have to keep feeding, which is how earnest build-in-public curdles into LARPing as a successful founder.&lt;/p&gt;

&lt;p&gt;There's also a quieter cost. If you're building a product whose whole pitch is "be genuine, don't sound like a bot, don't astroturf" — and that's literally Thread Otter's pitch — then borrowing an unearned hook is the one unforced error that makes you the thing you're selling against. The content has to clear the same bar the product does.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you actually have at $0 that's worth posting
&lt;/h2&gt;

&lt;p&gt;You don't have a revenue number. You have something the 20K-MRR founders no longer do: you're &lt;em&gt;in&lt;/em&gt; the part of the journey most of your audience is also in. That's the asset. Specifically:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real numbers, including the bad ones.&lt;/strong&gt; The signup that churned on day two. The channel that produced nothing. The funnel step you can't get to convert. That's a post people stop for, because almost nobody publishes the parts that didn't work. The honesty &lt;em&gt;is&lt;/em&gt; the hook, and it's a hook you've fully earned.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The teardown of your own mistakes.&lt;/strong&gt; I launched a feature on Twitter, got four likes, and figured out afterward what I should have done — &lt;a href="https://dev.to/blog/launch-once-launch-five-times"&gt;that's a post&lt;/a&gt;. My Reddit account got shadowbanned and a mod explained exactly why — &lt;a href="https://dev.to/blog/founder-led-marketing-reddit-shadowban-lessons"&gt;that's a post&lt;/a&gt;. You don't need a win. You need a specific lesson, told honestly, with the embarrassing part left in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you're learning about the problem.&lt;/strong&gt; Not your product — the &lt;em&gt;problem&lt;/em&gt;. If you're building in a space, you're learning things about it daily. "I watched 770 mentions of my keyword come in over ten hours; three were worth replying to. Here's how I decide" — &lt;a href="https://dev.to/blog/buying-intent-signals-770-mentions"&gt;that's a post&lt;/a&gt;, and it's useful whether or not anyone ever buys your tool.&lt;/p&gt;

&lt;p&gt;The pattern: at $0, your credibility comes from &lt;em&gt;specificity and honesty&lt;/em&gt;, not from &lt;em&gt;outcomes&lt;/em&gt;. You trade the revenue-number hook for the brutal-honesty hook. It's a good trade, because the honesty hook is one almost nobody else is willing to use.&lt;/p&gt;

&lt;h2&gt;
  
  
  The "never sell in the video, build a relationship" advice is right — and incomplete
&lt;/h2&gt;

&lt;p&gt;The viral posts say: don't pitch, document the journey, and by the time you offer the product they're already sold. True. The incomplete part is &lt;em&gt;what you document.&lt;/em&gt; "Building in public" interpreted as "post your feature progress every day" produces a feed of changelog entries nobody outside your own head cares about. The relationship doesn't form around your roadmap. It forms around the &lt;em&gt;problem you both share&lt;/em&gt; and the &lt;em&gt;honesty you bring to it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So the reframe: don't build &lt;em&gt;your product&lt;/em&gt; in public. Build your &lt;em&gt;understanding of the problem&lt;/em&gt; in public. The product shows up as the natural consequence — "...which is why I ended up building X" — not the subject.&lt;/p&gt;

&lt;h2&gt;
  
  
  The mechanical stuff that's actually true
&lt;/h2&gt;

&lt;p&gt;A few tactics from the standard playbook survive contact with reality even at zero:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One shoot, many clips.&lt;/strong&gt; If you do video, filming once and cutting it into four or five pieces is real leverage. It's the rare scale tip that doesn't require an audience to already exist.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The first three seconds decide everything.&lt;/strong&gt; On video especially, the hook is the whole game. At $0 your best hook is a true, specific, slightly uncomfortable statement — "my launch got four likes" — not a claim of success.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency over intensity.&lt;/strong&gt; A small post every day beats a viral attempt every month, because the daily reps are how the platform learns your handle is a real contributor and not a spike.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What this is not
&lt;/h2&gt;

&lt;p&gt;It's not "wait until you have a number to post." That's the silence trap, and it costs you the six months of compounding that only start once you start. You post now, you just post the &lt;em&gt;honest&lt;/em&gt; thing instead of the &lt;em&gt;impressive&lt;/em&gt; thing.&lt;/p&gt;

&lt;p&gt;It's not a guarantee the honest posts go viral. Most won't. But the honest ones build something the impressive-sounding ones don't: a small audience that trusts you specifically, which is worth more at your stage than a large one that scrolled past a hook.&lt;/p&gt;

&lt;p&gt;And it's not permission to overshare for engagement. "Honest" means specific and true, not confessional theater. The numbers, the lessons, the problem — not your feelings about your cofounder.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you've been silent because you have nothing to brag about
&lt;/h2&gt;

&lt;p&gt;That silence is the most common build-in-public failure, and it's invisible because it produces no content to point at. The fix is to post the flat line. Post the four-likes launch. Post the three-out-of-770 lesson. The founders worth reaching are the ones who recognize that part of the journey — because they're in it too.&lt;/p&gt;




&lt;p&gt;If you're at the start of this and want the conversation layer handled — every reply grounded in your real product context and written in your voice, every one reviewed by you before it sends (no auto-posting, ever) — that's what I built Thread Otter to do.&lt;/p&gt;

&lt;p&gt;It's free for 14 days, no card. The first 100 Solo signups lock in &lt;strong&gt;$29/mo for life&lt;/strong&gt; — the Founding 100 cohort, counter live on the pricing page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.threadotter.com/pricing" rel="noopener noreferrer"&gt;threadotter.com/pricing&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.threadotter.com/blog/build-in-public-zero-mrr-posts" rel="noopener noreferrer"&gt;www.threadotter.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>I copy-pasted ChatGPT prompts into Reddit 200 times before I built this</title>
      <dc:creator>Jin Otto</dc:creator>
      <pubDate>Thu, 18 Jun 2026 17:21:19 +0000</pubDate>
      <link>https://dev.to/threadotter/i-copy-pasted-chatgpt-prompts-into-reddit-200-times-before-i-built-this-1kc8</link>
      <guid>https://dev.to/threadotter/i-copy-pasted-chatgpt-prompts-into-reddit-200-times-before-i-built-this-1kc8</guid>
      <description>&lt;p&gt;It's 11:14pm on a Tuesday. I'm 47 tabs deep in Reddit. I have ChatGPT open in another window. I'm doing the same loop I've been doing for three months:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Find a thread where someone has the exact problem my product solves.&lt;/li&gt;
&lt;li&gt;Copy the OP into ChatGPT with a paragraph of context about who I am and what I'm building.&lt;/li&gt;
&lt;li&gt;Wait six seconds.&lt;/li&gt;
&lt;li&gt;Get a reply that sounds like a LinkedIn post wrote a Reddit comment.&lt;/li&gt;
&lt;li&gt;Rewrite it so it sounds like me.&lt;/li&gt;
&lt;li&gt;Paste, post, copy the link, log it in a spreadsheet.&lt;/li&gt;
&lt;li&gt;Forget what I just said by the time I get to the next thread.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I did this about 200 times before I admitted it wasn't working. Not the outreach — the outreach worked. The &lt;em&gt;process&lt;/em&gt; was the thing that was broken. I was the bottleneck, and the bottleneck wasn't writing the replies. It was the 30 seconds between every reply where I had to reload my own brain.&lt;/p&gt;

&lt;p&gt;This post is the field log. If you're doing founder-led GTM on Reddit, X, LinkedIn, or anywhere founders hang out, you've probably done some version of this loop too. Here's what I learned about why ChatGPT-then-paste is the slowest possible way to do it, and what I built instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  The thing nobody tells you about ChatGPT for sales
&lt;/h2&gt;

&lt;p&gt;ChatGPT is a brilliant generalist. It is not a brilliant founder. It does not know what your product does. It does not know what you sound like. It does not know what you said to the last 12 people in this exact subreddit. Every single reply, you are giving it those three things again, and every single reply, it forgets them the second you close the tab.&lt;/p&gt;

&lt;p&gt;The cost of that forgetting compounds in three places:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice drift.&lt;/strong&gt; I sound a certain way when I write. Casual but specific. Short sentences. I don't say "leverage." I say "use." I don't say "synergy" ever. ChatGPT, left to its own defaults, writes like a Medium post from 2019. Every reply takes me four minutes to rewrite into something a human would say out loud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context blindness.&lt;/strong&gt; If you replied in r/SaaS yesterday, you probably want to know that before you reply there again today. ChatGPT does not know. ChatGPT has never met you. Every conversation starts from zero. Every reply re-derives your positioning from scratch and gets it slightly wrong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No memory of what worked.&lt;/strong&gt; I have a sense — vague, unverified — of which replies got upvoted, which got DMs, which got ignored. ChatGPT has zero sense of it. Which means I am never learning from my own data. I am running the same play 200 times and hoping the average gets better.&lt;/p&gt;

&lt;p&gt;The combined effect is that ChatGPT is doing about 15% of the work and creating about 60% of the friction. It's a calculator pretending to be a co-pilot.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually need (and what I built)
&lt;/h2&gt;

&lt;p&gt;The thing I wanted, sitting there at 11pm, was simple to describe and apparently hard to find:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A single tab where I can see every interesting conversation happening about my product's space, where every reply comes back already grounded in what my product does, what I sound like, and what I've already said to this person.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's it. That's the whole brief. I'm not trying to replace myself. I'm trying to delete the 30 seconds of context-loading between every message. Multiply 30 seconds by 200 replies and you've got 100 minutes a day of me being a human RAM stick.&lt;/p&gt;

&lt;p&gt;So I built Thread Otter. It's a Chrome extension plus a web app. Here's what it actually does, in the order it does it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. It watches Reddit, X, LinkedIn, and Bluesky.&lt;/strong&gt; It pulls in threads where someone is actively asking about the problem you solve, using keyword and signal rules you set once. You don't go hunt for conversations. They land in an inbox.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. It already knows what your product does.&lt;/strong&gt; You drop a website URL the first time, it crawls and embeds it. From then on, every draft retrieves the relevant chunks. If someone asks "does it work with Webflow," the draft already knows whether it does, because it read your docs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. It already knows what you sound like.&lt;/strong&gt; You give it five to ten examples of your own writing — old replies, tweets, blog posts. It builds a voice profile and uses it for every draft. No more "leverage." No more LinkedIn cadence. The drafts come out &lt;em&gt;quiet&lt;/em&gt;. They sound like you wrote them at 11pm, because the model was given a sample of you writing at 11pm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. It remembers the conversation.&lt;/strong&gt; If you replied to this person on Tuesday, the Wednesday draft knows that. Every message in the thread is part of the context, not just the OP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The Chrome extension closes the loop in-place.&lt;/strong&gt; You don't have to leave Reddit to draft a reply. You open the side panel, the draft is already there, you edit, you paste, you post. Same flow on X, LinkedIn, Bluesky.&lt;/p&gt;

&lt;p&gt;That's the product. I'm not going to tell you it's magic. It is not magic. It is the same writing you would have done, with 30 seconds shaved off every reply, and the boring stuff cached.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this is not
&lt;/h2&gt;

&lt;p&gt;I have to be careful here, because the failure mode of every AI tool in 2026 is overselling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is not a fire-and-forget posting bot.&lt;/strong&gt; I will not build that. Spam is what kills good outbound and it's how good subreddits die. Every draft is reviewed by you before it posts. If you wanted a bot, there are plenty. This is not it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It does not find product-market fit for you.&lt;/strong&gt; If you point it at a market that doesn't want what you sell, it will help you write very pleasant replies to a market that does not want what you sell. Garbage in, polite garbage out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It does not replace the judgment call.&lt;/strong&gt; Should I reply to this thread? Should I push harder? Should I back off? You still decide. The tool just makes the mechanics cheaper.&lt;/p&gt;

&lt;p&gt;What it gives you back is the most valuable thing a solo founder has and the easiest thing to lose: an evening. If you do 200 reps a month and each rep cost you four minutes of fiddly editing, that's 13 hours a month. That's a weekend. That's the difference between burning out on outreach and actually getting to write the next feature.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I'm using it right now
&lt;/h2&gt;

&lt;p&gt;In the interest of not making this an ad, here is exactly what my week looks like now.&lt;/p&gt;

&lt;p&gt;Sunday night I open the inbox. There are roughly 30 to 50 fresh threads from the week, sorted by how well they match my saved rules. I skim. I trash maybe half — wrong fit, wrong tone, off-topic. The rest sit as drafts.&lt;/p&gt;

&lt;p&gt;Monday morning, coffee in hand, I work the queue. I'm probably averaging 90 seconds per reply now: read the thread, read the draft, edit two sentences, send. The draft is not always right. Sometimes it gets the angle wrong and I rewrite the opener. But the &lt;em&gt;bones&lt;/em&gt; of the reply — what my product does, what I sound like, what I already said — are correct. That's the part that used to take all my attention.&lt;/p&gt;

&lt;p&gt;Tuesday through Friday, the extension does most of the catching. Threads I want to reply to surface in-place. I draft in the side panel, post, move on.&lt;/p&gt;

&lt;p&gt;The result, ten weeks in: I'm sending roughly 4x the replies I was sending in the ChatGPT-and-spreadsheet era. The quality is better, not worse, because the drafts are grounded in stuff a generalist model never had. I haven't been to bed at 1am in a month.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you've been doing this loop too
&lt;/h2&gt;

&lt;p&gt;If any of the 11pm Tuesday scene at the top of this post felt familiar, I'd like to make this easy.&lt;/p&gt;

&lt;p&gt;I'm running a &lt;strong&gt;Founding 100&lt;/strong&gt; cohort right now. The first 100 founders to sign up on the Solo plan pay &lt;strong&gt;$29/month, locked in for life.&lt;/strong&gt; No tier games, no annual contract, no expiry. The plan after that is $49.&lt;/p&gt;

&lt;p&gt;The reason for the discount is that I want the first 100 customers to be people who'd give me real feedback. I will read every email. I will fix things you point at. If something is broken for the way you work, tell me and I'll move it to the top of the list.&lt;/p&gt;

&lt;p&gt;There are real spots left and the counter is live on the pricing page. When it hits 100, the lifetime price closes.&lt;/p&gt;

&lt;p&gt;If you want to try it without committing, every plan has a 14-day trial, no card required. Go in, drop your product URL, paste five of your own replies into the voice profile, point it at one subreddit you care about, and watch what shows up by tomorrow morning.&lt;/p&gt;

&lt;p&gt;And if you want to skip the trial and just take the founding deal: &lt;a href="https://www.threadotter.com/pricing" rel="noopener noreferrer"&gt;threadotter.com/pricing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The thing I wish someone had told me at 11pm three months ago was: this loop you're in is solvable. You don't have to keep being the bottleneck. The work is yours. The 30 seconds of reloading isn't.&lt;/p&gt;

&lt;p&gt;-- Otto&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.threadotter.com/blog/i-copy-pasted-chatgpt-prompts-into-reddit-200-times-before-i-built-this" rel="noopener noreferrer"&gt;www.threadotter.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
