<?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: Jordan Autrey</title>
    <description>The latest articles on DEV Community by Jordan Autrey (@jordan_autrey_e3c46315aad).</description>
    <link>https://dev.to/jordan_autrey_e3c46315aad</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3832705%2Fc03847c7-3302-4b7b-a69e-377284b8ea17.jpeg</url>
      <title>DEV Community: Jordan Autrey</title>
      <link>https://dev.to/jordan_autrey_e3c46315aad</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jordan_autrey_e3c46315aad"/>
    <language>en</language>
    <item>
      <title>Day 2: Building an AI Real Estate Company That Makes Its Own Phone Calls</title>
      <dc:creator>Jordan Autrey</dc:creator>
      <pubDate>Thu, 19 Mar 2026 20:03:38 +0000</pubDate>
      <link>https://dev.to/jordan_autrey_e3c46315aad/day-2-building-an-ai-real-estate-company-that-makes-its-own-phone-calls-505c</link>
      <guid>https://dev.to/jordan_autrey_e3c46315aad/day-2-building-an-ai-real-estate-company-that-makes-its-own-phone-calls-505c</guid>
      <description>&lt;p&gt;Yesterday I launched The Hive publicly — a multi-agent AI system running on my Mac Studio M4 Max — with Warren B making paper trades on Alpaca and Felix RE starting to scout distressed properties. Day 1 was about getting agents live. Day 2 was about giving one of them a voice and a real company behind it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing Abode AI Incorporated
&lt;/h2&gt;

&lt;p&gt;Today I formally spun up &lt;strong&gt;Abode AI Incorporated&lt;/strong&gt; — an AI-first real estate solutions company. The flagship product is &lt;strong&gt;Liam Pryor&lt;/strong&gt;, an AI voice agent who makes outbound cold calls, handles inbound callbacks, books follow-up appointments, and processes his own transcripts.&lt;/p&gt;

&lt;p&gt;Liam runs on &lt;strong&gt;ElevenLabs Conversational AI&lt;/strong&gt; + &lt;strong&gt;Twilio&lt;/strong&gt; for the actual phone infrastructure. The personality prompt was built by stacking three philosophies on top of each other:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ryan Serhant's relationship-first sales&lt;/strong&gt; — leads with curiosity, never desperation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alex Hormozi's value equation&lt;/strong&gt; — every interaction is a value exchange, not a pitch&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Win Without Pitching Manifesto&lt;/strong&gt; — never sell, just explore problems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result is an agent that doesn't sound like a robot dialer. He sounds like a sharp acquisitions guy who genuinely wants to understand your situation before ever mentioning a number.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Liam Makes a Call
&lt;/h2&gt;

&lt;p&gt;When Felix RE identifies a distressed property lead, it packages the context and passes it to the voice engine. Here's what gets injected into the ElevenLabs dynamic_variables payload before each call:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dynamicVars&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Record&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;owner_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;lead&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ownerName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;address&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;expandAddress&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lead&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;city&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;lead&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;city&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;lead&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;call_type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;lead&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;callType&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;            &lt;span class="c1"&gt;// "cold" | "follow-up" | "pre-foreclosure"&lt;/span&gt;
  &lt;span class="na"&gt;requires_recording_disclosure&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;true&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;investor_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Abode AI&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;company_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Abode AI&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// The secret sauce — municipal distress data injected per lead&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lead&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;distressContext&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;dynamicVars&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;distress_signals&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;lead&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;distressContext&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That distress_signals variable is what makes this different from every other AI dialer out there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Post-Call: Groq Classifies Every Transcript
&lt;/h2&gt;

&lt;p&gt;After the call ends, the transcript comes back from ElevenLabs. I pipe it through &lt;strong&gt;Groq&lt;/strong&gt; (Llama 3.3 70B, runs in ~1 second) with a structured classification prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"outcome"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"interested"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"not_interested"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"callback_scheduled"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;|&lt;/span&gt;&lt;span class="w"&gt;
           &lt;/span&gt;&lt;span class="s2"&gt;"no_answer"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"voicemail"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"wrong_number"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"dnc_request"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the outcome is callback_scheduled, the system resolves relative times ("call me back Tuesday around this time") into absolute ISO 8601 datetimes and automatically creates a &lt;strong&gt;Google Calendar event&lt;/strong&gt; — so I have a human-readable record even if I never touch the dashboard. Then it re-queues the lead for Liam to auto-call at that exact time.&lt;/p&gt;

&lt;p&gt;DNC requests are handled immediately and atomically — the number hits a local JSON blocklist before the function returns.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Distress Signal Pipeline
&lt;/h2&gt;

&lt;p&gt;The real moat here isn't the voice agent. It's the data feeding into it.&lt;/p&gt;

&lt;p&gt;Every night at 1 AM, a scraper pipeline hits &lt;strong&gt;6 public municipal portals&lt;/strong&gt; across three markets:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Market&lt;/th&gt;
&lt;th&gt;County&lt;/th&gt;
&lt;th&gt;Signals&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Atlanta&lt;/td&gt;
&lt;td&gt;Fulton County&lt;/td&gt;
&lt;td&gt;Code violations, tax delinquency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memphis&lt;/td&gt;
&lt;td&gt;Shelby County&lt;/td&gt;
&lt;td&gt;Code violations, tax delinquency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Indianapolis&lt;/td&gt;
&lt;td&gt;Marion County&lt;/td&gt;
&lt;td&gt;Code violations, tax delinquency&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The pipeline: run each scraper sequentially (rate-limit polite), upsert raw signals into &lt;strong&gt;SQLite&lt;/strong&gt;, run an enrichment pass to normalize addresses and match signals to active pipeline leads, then write a distress-signals.md file into each lead's folder.&lt;/p&gt;

&lt;p&gt;Total monthly cost: &lt;strong&gt;/bin/zsh&lt;/strong&gt;. All public records. All open-source tools (Puppeteer, SQLite, Node.js).&lt;/p&gt;

&lt;p&gt;When Liam calls a homeowner with an open code violation, he already knows about it. That's not a magic trick — it's just doing the research before picking up the phone.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Debug That Wasn't a Bug
&lt;/h2&gt;

&lt;p&gt;Spent a few hours today troubleshooting voice agent instability. Liam kept cutting himself off mid-sentence. I tuned turn eagerness, adjusted silence timeouts, toggled speculative turn detection — nothing worked.&lt;/p&gt;

&lt;p&gt;Turned out it wasn't a configuration issue at all. It was &lt;strong&gt;ElevenLabs error 1002 — quota exceeded&lt;/strong&gt; on the free tier. The agent was failing silently at the API layer, not at the conversation layer.&lt;/p&gt;

&lt;p&gt;Lesson: when a voice agent behaves erratically, check API quota before touching model settings.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Day 3:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launch the Abode AI landing page (built with Lovable, already prompted)&lt;/li&gt;
&lt;li&gt;Upgrade to ElevenLabs paid plan — unlock the quota ceiling&lt;/li&gt;
&lt;li&gt;First real calls to actual homeowners using live pipeline leads&lt;/li&gt;
&lt;li&gt;Warren B transitions from paper trading to evaluating real position sizing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The infrastructure is ready. Tomorrow we find out if homeowners pick up.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Building The Hive in public. All code is TypeScript, all inference is local (Ollama + LM Studio + Groq). Questions or thoughts — drop them in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>typescript</category>
      <category>buildinpublic</category>
      <category>agents</category>
    </item>
    <item>
      <title>Why I Built a Local-First Voice-to-Code Tool (And What 18 Days of $0 Revenue Taught Me)</title>
      <dc:creator>Jordan Autrey</dc:creator>
      <pubDate>Wed, 18 Mar 2026 20:47:51 +0000</pubDate>
      <link>https://dev.to/jordan_autrey_e3c46315aad/why-i-built-a-local-first-voice-to-code-tool-and-what-18-days-of-0-revenue-taught-me-be3</link>
      <guid>https://dev.to/jordan_autrey_e3c46315aad/why-i-built-a-local-first-voice-to-code-tool-and-what-18-days-of-0-revenue-taught-me-be3</guid>
      <description>&lt;h1&gt;
  
  
  Why I Built a Local-First Voice-to-Code Tool (And What 18 Days of $0 Revenue Taught Me)
&lt;/h1&gt;

&lt;p&gt;I'm going to be honest with you: I'm writing this post from $0 MRR on day 18 of building Voco V2.&lt;/p&gt;

&lt;p&gt;Not because I don't have a product. The product works. The architecture is solid. The latency is sub-300ms. Everything runs local.&lt;/p&gt;

&lt;p&gt;I'm at $0 because I spent 18 days building instead of selling. This post is me fixing that.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Nobody Talks About
&lt;/h2&gt;

&lt;p&gt;Every AI coding assistant — GitHub Copilot, Continue, Kiro, Cursor — expects you to type your prompts. You're using an AI to write code faster, but you're still bottlenecked by a keyboard.&lt;/p&gt;

&lt;p&gt;For most developers, that's a minor friction. For developers with RSI, carpal tunnel, or limited mobility, it's a wall.&lt;/p&gt;

&lt;p&gt;And even if your hands are fine today, the average software engineer types 5,000-10,000 keystrokes per hour. Over a career, that adds up. &lt;a href="https://spectrum.ieee.org/programming-by-voice-may-be-the-next-frontier-in-software-development" rel="noopener noreferrer"&gt;According to research&lt;/a&gt;, RSI affects a significant percentage of professional programmers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Exists Today
&lt;/h2&gt;

&lt;p&gt;The voice coding space isn't empty. There are real tools doing real work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Talon Voice&lt;/strong&gt; — incredible for full hands-free computer control. Built by Ryan Hileman after he developed severe hand pain. But it has a steep learning curve and requires significant setup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wispr Flow&lt;/strong&gt; — fast, polished dictation. But it's cloud-based (your audio leaves your machine) and built for prose, not code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SuperWhisper&lt;/strong&gt; — solid local transcription. But it's a general-purpose tool, not optimized for code syntax.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code Voice Mode&lt;/strong&gt; — just launched, push-to-talk in terminal. Cool, but limited to Claude's ecosystem.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these is good at what it does. None of them are built specifically for the workflow of &lt;em&gt;speaking code into existence&lt;/em&gt; with local-first privacy as a non-negotiable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Built
&lt;/h2&gt;

&lt;p&gt;Voco V2 is voice-to-code. Not voice-to-text-that-you-paste-into-code. Voice to working code.&lt;/p&gt;

&lt;p&gt;The key specs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sub-300ms latency&lt;/strong&gt; — speak and see code appear, not "speak, wait 2 seconds, see code appear"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fully local&lt;/strong&gt; — your audio never leaves your machine. No API keys, no cloud calls, no telemetry. The model runs on your hardware.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-trust architecture&lt;/strong&gt; — we literally can't see your data because it never reaches us&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built for code&lt;/strong&gt; — understands syntax, function signatures, variable names. Not optimized for writing emails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero config&lt;/strong&gt; — no grammar files to write, no training period, no custom commands to memorize&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Architecture Decision That Changed Everything
&lt;/h2&gt;

&lt;p&gt;Early on, we had to make a choice: cloud or local?&lt;/p&gt;

&lt;p&gt;Cloud is easier. You get access to massive models, the transcription quality is higher out of the box, and you don't have to worry about hardware requirements.&lt;/p&gt;

&lt;p&gt;We chose local anyway. Here's why:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Privacy isn't optional for developers.&lt;/strong&gt; You're speaking your code out loud. That includes function names, business logic, API endpoints, proprietary algorithms. Sending that to a cloud service is a non-starter for any serious engineering team.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Latency compounds.&lt;/strong&gt; Even 500ms of network round-trip feels wrong when you're in flow. Sub-300ms local processing means voice coding feels like typing, not like dictating.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No dependency = no risk.&lt;/strong&gt; Cloud services go down. APIs get deprecated. Pricing changes. Your local tool works on an airplane.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What 18 Days of $0 Taught Me
&lt;/h2&gt;

&lt;p&gt;Here's the uncomfortable truth I'm sharing publicly because I think other builders need to hear it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I built a working product, solid infrastructure, automated pipelines, monitoring dashboards, a content engine, and a campaign framework — and generated exactly zero revenue.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why? Because I never talked to a single potential customer.&lt;/p&gt;

&lt;p&gt;I told myself I was "building the foundation" and "getting ready to launch." In reality, I was hiding behind code because shipping to production is comfortable and selling is not.&lt;/p&gt;

&lt;p&gt;The infrastructure isn't the product. The sale is the product.&lt;/p&gt;

&lt;p&gt;So here I am. Day 18. Talking to people.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Ask
&lt;/h2&gt;

&lt;p&gt;I'm looking for &lt;strong&gt;10 founding members&lt;/strong&gt; for Voco V2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$39/month&lt;/strong&gt; — founding rate, locked forever. That means if we raise prices later (and we will), yours stays at $39.&lt;/p&gt;

&lt;p&gt;What you get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full access to Voco V2&lt;/li&gt;
&lt;li&gt;Direct access to me (the founder)&lt;/li&gt;
&lt;li&gt;Priority feature requests — your voice literally shapes the roadmap&lt;/li&gt;
&lt;li&gt;A seat at the table of something we're building from scratch&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Who this is for:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers dealing with RSI, carpal tunnel, or any repetitive strain&lt;/li&gt;
&lt;li&gt;Anyone who codes on mobile and wants a faster input method&lt;/li&gt;
&lt;li&gt;Developers who want to try voice-first coding without a week of setup&lt;/li&gt;
&lt;li&gt;Privacy-conscious builders who won't send their code to the cloud&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Who this is NOT for:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;People who want a general dictation tool (use Wispr Flow)&lt;/li&gt;
&lt;li&gt;People who need full computer control by voice (use Talon)&lt;/li&gt;
&lt;li&gt;People who are happy with their current coding speed and input method&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://itsvoco.com" rel="noopener noreferrer"&gt;itsvoco.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm not hiding behind a waitlist. The product exists. You can use it today.&lt;/p&gt;

&lt;p&gt;If you have questions, drop them in the comments. I'll answer every single one.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Building in public means showing the messy parts too. Day 18, $0 MRR, and I'm just now doing what I should have done on day 1 — talking to people who might actually want this.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you're an indie hacker reading this and you recognize the pattern... stop building. Start selling.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>devtools</category>
      <category>a11y</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
