<?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: Fatt Coder</title>
    <description>The latest articles on DEV Community by Fatt Coder (@fatt).</description>
    <link>https://dev.to/fatt</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%2F4099760%2Fa6ed3ad2-4192-4e31-bffd-2b5fa2c45650.png</url>
      <title>DEV Community: Fatt Coder</title>
      <link>https://dev.to/fatt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fatt"/>
    <language>en</language>
    <item>
      <title>I added `backdrop-filter: blur()` to my AI results and it broke my 3-month zero-sales streak</title>
      <dc:creator>Fatt Coder</dc:creator>
      <pubDate>Tue, 29 Sep 2026 00:38:21 +0000</pubDate>
      <link>https://dev.to/fatt/i-added-backdrop-filter-blur-to-my-ai-results-and-it-broke-my-3-month-zero-sales-streak-1ak7</link>
      <guid>https://dev.to/fatt/i-added-backdrop-filter-blur-to-my-ai-results-and-it-broke-my-3-month-zero-sales-streak-1ak7</guid>
      <description>&lt;p&gt;Let's talk about the developer's curse: building a great AI feature, shipping it, and watching absolutely nobody buy it.&lt;/p&gt;

&lt;p&gt;For the last few months, I've been running &lt;strong&gt;&lt;a href="https://freeaudiototext.com" rel="noopener noreferrer"&gt;FreeAudioToText&lt;/a&gt;&lt;/strong&gt;. It's a platform built for fast, privacy-first audio transcription. The core transcription is free, but I built a premium AI summarization tool to extract meeting notes and speaker action items. &lt;/p&gt;

&lt;p&gt;Traffic was coming in, users were transcribing, but my MRR for the AI feature was stuck at $0.00. &lt;/p&gt;

&lt;p&gt;I was ready to scrap the premium tier, assuming people just used ChatGPT for free. But before throwing in the towel, I thought about the psychology of my UX. My up-sell was just a standard button saying "Unlock AI Summary." It was abstract. Why would they pay for a button?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffyzxgp66rbqv9l4j7s6k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffyzxgp66rbqv9l4j7s6k.jpg" alt=" " width="800" height="755"&gt;&lt;/a&gt;&lt;br&gt;
I decided to write three lines of CSS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.ai-summary-result&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;blur&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;6px&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;user-select&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;transition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;filter&lt;/span&gt; &lt;span class="m"&gt;0.3s&lt;/span&gt; &lt;span class="n"&gt;ease&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;Instead of an empty state, I rendered the actual AI summary in the DOM but applied this blur class. Users could see the length of the summary, the structured bullet points, and the highlighted keywords—but they couldn't read a single word. &lt;/p&gt;

&lt;p&gt;To reveal the text, they had to unlock the premium tier.&lt;/p&gt;

&lt;p&gt;The psychological shift was insane. By hiding the exact answer but showing the physical shape of the data, it created a massive "curiosity gap." They knew their messy 1-hour recording had been perfectly condensed, and it was sitting right in front of them. &lt;/p&gt;

&lt;p&gt;Within a day, I got my first Stripe notification. Then another. The 3-month drought was over. &lt;/p&gt;

&lt;p&gt;If you are building an AI-wrapper, a directory, or a data SaaS, audit your free tier. Make sure you are teasing the actual output, not just describing it. Sometimes, a simple blur is more effective than integrating the newest LLM model.&lt;/p&gt;

</description>
      <category>indiehackers</category>
      <category>webdev</category>
      <category>ux</category>
      <category>sass</category>
    </item>
    <item>
      <title>Confessions of a dev: I spent 3 months coding a product nobody searched for.</title>
      <dc:creator>Fatt Coder</dc:creator>
      <pubDate>Tue, 22 Sep 2026 01:46:08 +0000</pubDate>
      <link>https://dev.to/fatt/confessions-of-a-dev-i-spent-3-months-coding-a-product-nobody-searched-for-3bg</link>
      <guid>https://dev.to/fatt/confessions-of-a-dev-i-spent-3-months-coding-a-product-nobody-searched-for-3bg</guid>
      <description>&lt;p&gt;Let’s be honest. As developers, we love the building phase. Setting up the repo, configuring the CI/CD pipeline, arguing over which state management library to use—that’s our comfort zone. &lt;/p&gt;

&lt;p&gt;But marketing? SEO? Keyword research? That feels like black magic. &lt;/p&gt;

&lt;p&gt;Last year, I built an AI-powered resume builder. It was technically brilliant. I used Next.js, OpenAI's latest models, and Tailwind for a slick UI. I launched it, and my traffic was basically just me, my mom, and a few bots. Why? Because I was competing against companies with $50k/month SEO budgets. Nobody was ever going to find my site on page 47 of Google.&lt;/p&gt;

&lt;p&gt;I realized that for solo devs, building the product is only 20% of the work. Finding a profitable, low-competition niche is the other 80%. If you build a tool for a highly specific problem that people are searching for (e.g., "resume builder for offshore rig engineers"), you can easily rank on page 1 without a massive marketing budget.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk058qs2gdifd8drbm1lq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk058qs2gdifd8drbm1lq.jpg" alt=" " width="800" height="1590"&gt;&lt;/a&gt;&lt;br&gt;
I've stopped using bloated enterprise SEO tools that cost $100/mo. To find these specific gaps before I even touch VS Code, I just run my ideas through &lt;a href="https://thenichegap.com" rel="noopener noreferrer"&gt;https://thenichegap.com&lt;/a&gt;. It gives me a straightforward analysis of the SERP competition so I know immediately if a micro-SaaS idea is viable or if the market is too saturated.&lt;/p&gt;

&lt;p&gt;Don't write code for a market you haven't validated. Validate the search intent first, find the gap, and &lt;em&gt;then&lt;/em&gt; build the solution. &lt;/p&gt;

</description>
      <category>indiehacker</category>
      <category>seo</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I was severely undercharging for freelance dev work until I did the math</title>
      <dc:creator>Fatt Coder</dc:creator>
      <pubDate>Thu, 17 Sep 2026 05:14:07 +0000</pubDate>
      <link>https://dev.to/fatt/i-was-severely-undercharging-for-freelance-dev-work-until-i-did-the-math-39cd</link>
      <guid>https://dev.to/fatt/i-was-severely-undercharging-for-freelance-dev-work-until-i-did-the-math-39cd</guid>
      <description>&lt;p&gt;Hey DEV community 👋&lt;/p&gt;

&lt;p&gt;Let's talk about the most uncomfortable topic in software engineering: &lt;strong&gt;Money and pricing your freelance work.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I took on my first few side-gigs, I thought charging $50/hr was fantastic. But at the end of the year, after paying for GitHub Copilot, Vercel hosting, self-employment taxes, and realizing I spent 30% of my time just answering client emails (unbillable!), my actual take-home profit was shockingly low.&lt;/p&gt;

&lt;p&gt;As developers, we love formulas. So why do we guess our pricing?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiw0oj3xhvq2o1qh4fq3d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiw0oj3xhvq2o1qh4fq3d.png" alt=" " width="799" height="546"&gt;&lt;/a&gt;&lt;br&gt;
I found a ridiculously helpful free tool called &lt;a href="https://thechmodcalc.com" rel="noopener noreferrer"&gt;TheChmodCalc&lt;/a&gt;. It’s a freelance rate calculator that treats your pricing like an algorithm. &lt;/p&gt;

&lt;p&gt;You feed it your variables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Target net income&lt;/li&gt;
&lt;li&gt;Business expenses (AWS, domains, software)&lt;/li&gt;
&lt;li&gt;Tax brackets&lt;/li&gt;
&lt;li&gt;Real billable hours (excluding vacation and admin work)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It executes the logic and returns the exact hourly rate you &lt;em&gt;must&lt;/em&gt; charge to hit your goal. No fluff, just raw numbers. &lt;/p&gt;

&lt;p&gt;If you're doing freelance dev work, stop guessing your worth. Run your parameters through the calculator. Let me know in the comments if your calculated rate was higher or lower than what you currently charge!&lt;/p&gt;

</description>
      <category>freelance</category>
      <category>career</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why Automotive Data is a Nightmare to Parse (And How I Found a Solution)</title>
      <dc:creator>Fatt Coder</dc:creator>
      <pubDate>Tue, 15 Sep 2026 00:51:56 +0000</pubDate>
      <link>https://dev.to/fatt/why-automotive-data-is-a-nightmare-to-parse-and-how-i-found-a-solution-4e68</link>
      <guid>https://dev.to/fatt/why-automotive-data-is-a-nightmare-to-parse-and-how-i-found-a-solution-4e68</guid>
      <description>&lt;p&gt;If you've ever tried to build a side project in the automotive space, you know the dark truth: car data is an absolute, unstructured mess.&lt;/p&gt;

&lt;p&gt;A few weeks ago, I wanted to build a simple web app for my local car club to match compatible spare wheels. I thought, "How hard can it be? A wheel has a bolt pattern, an offset, and a center bore."&lt;/p&gt;

&lt;p&gt;Turns out, it's a nightmare. Manufacturers change specs mid-generation. A 2018 Ford F-150 has a different lug nut thread pitch than a 2014, despite looking identical. &lt;/p&gt;

&lt;p&gt;I spent days writing Python scripts trying to scrape and normalize data from PDF spec sheets and old HTML tables. The edge cases are insane.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwqfx4qzpjm5wfd1ptzzn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwqfx4qzpjm5wfd1ptzzn.jpg" alt=" " width="800" height="735"&gt;&lt;/a&gt;&lt;br&gt;
Just as I was about to give up on my database schema, I stumbled upon a tool that someone had already built beautifully: the &lt;a href="https://boltpatternhq.com/bolt-pattern-finder/" rel="noopener noreferrer"&gt;Bolt Pattern Finder Tool&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Looking at it from a developer's perspective, their fuzzy search implementation is incredibly snappy. You can type "BMW M3 2015" and it instantly returns the parsed specs. Even cooler is their reverse-lookup architecture, allowing you to query by the PCD string itself across a 10,000+ vehicle dataset without noticeable latency.&lt;/p&gt;

&lt;p&gt;It made me realize that sometimes, as developers, we don't need to reinvent the wheel (pun intended). If you are building any auto-related apps, or just happen to be a dev who wrenches on cars on the weekends, analyzing how tools like this structure their query inputs is a great lesson in UX for complex datasets.&lt;/p&gt;

</description>
      <category>automotive</category>
    </item>
    <item>
      <title>Stop Sending Sensitive Audio to OpenAI: A Drop-In Offline REST API for Whisper</title>
      <dc:creator>Fatt Coder</dc:creator>
      <pubDate>Sun, 30 Aug 2026 02:08:22 +0000</pubDate>
      <link>https://dev.to/fatt/stop-sending-sensitive-audio-to-openai-a-drop-in-offline-rest-api-for-whisper-42do</link>
      <guid>https://dev.to/fatt/stop-sending-sensitive-audio-to-openai-a-drop-in-offline-rest-api-for-whisper-42do</guid>
      <description>&lt;p&gt;If you are building an AI note-taker, a CRM integration, or an internal meeting summarizer, you’ve probably hit the same wall I did: &lt;strong&gt;Privacy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Using the OpenAI Whisper API is incredibly easy, but the moment you try to sell your software to enterprise clients (like law firms, healthcare providers, or corporate boards), they will immediately ask: &lt;em&gt;"Are you sending our proprietary meeting audio to a public cloud?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8207135i78i15m9v30ro.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8207135i78i15m9v30ro.jpg" alt="FreeAudioToText Enterprise Admin Dashboard" width="799" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you answer "yes," the deal usually dies right there.&lt;/p&gt;

&lt;p&gt;That’s why I stopped relying solely on cloud APIs and built a &lt;strong&gt;fully offline, air-gapped REST API&lt;/strong&gt; powered by Faster-Whisper, packaged perfectly inside a Docker container. &lt;/p&gt;

&lt;p&gt;Here is how you can use it to keep all data strictly inside your own VPC.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Developer Experience (Drop-In Replacement)
&lt;/h2&gt;

&lt;p&gt;The goal was to make the transition from cloud APIs to an on-premise solution as frictionless as possible. Once the Docker container is running on your local machine or AWS EC2 instance (&lt;code&gt;docker run -p 8000:8000&lt;/code&gt;), you can interact with it via a standard REST API.&lt;/p&gt;

&lt;p&gt;Instead of fighting with Python environments, PyTorch versions, and CUDA drivers, you just make an HTTP request.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example: Transcription via cURL
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"http://localhost:8000/api/transcribe"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer YOUR_LICENSE_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-F&lt;/span&gt; &lt;span class="s2"&gt;"file=@meeting_recording.mp3"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-F&lt;/span&gt; &lt;span class="s2"&gt;"language=en"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-F&lt;/span&gt; &lt;span class="s2"&gt;"diarization=true"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example: Python Integration
&lt;/h3&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;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:8000/api/transcribe&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;files&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;file&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;meeting_recording.mp3&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;rb&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;
&lt;span class="n"&gt;data&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;diarization&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;true&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&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;files&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;files&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data&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="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Magic: Built-in Speaker Diarization
&lt;/h2&gt;

&lt;p&gt;The standard Whisper model is amazing at generating text, but it completely fails at telling you &lt;em&gt;who&lt;/em&gt; is speaking. For meeting transcripts, a wall of text without speaker labels is useless.&lt;/p&gt;

&lt;p&gt;Our REST API includes an integrated Speaker Diarization engine (using CAM++). The JSON response automatically chunks the text by speaker:&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"success"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"segments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"speaker"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SPK_1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"start"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"end"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;4.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"So, how are we handling the data privacy compliance?"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"speaker"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SPK_2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"start"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;4.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"end"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;8.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Everything is kept on-premise. No outbound network requests."&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;If you are tired of paying per-minute API fees and losing enterprise clients over GDPR/privacy concerns, it’s time to self-host. &lt;/p&gt;

&lt;p&gt;You can test drive the underlying transcription engine for free at &lt;a href="https://freeaudiototext.com" rel="noopener noreferrer"&gt;FreeAudioToText.com&lt;/a&gt;, or check out the &lt;a href="https://freeaudiototext.com/enterprise" rel="noopener noreferrer"&gt;Enterprise Docker Edition&lt;/a&gt; if you need unlimited, air-gapped processing via REST API.&lt;/p&gt;

</description>
      <category>api</category>
      <category>ai</category>
      <category>security</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
