<?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: Kien Tran</title>
    <description>The latest articles on DEV Community by Kien Tran (@kientndev).</description>
    <link>https://dev.to/kientndev</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%2F4063355%2Fc069a79b-c2c8-441b-9105-dc7f0e83fc82.png</url>
      <title>DEV Community: Kien Tran</title>
      <link>https://dev.to/kientndev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kientndev"/>
    <language>en</language>
    <item>
      <title>Stop Sending Devs 80-Page Security Reports: The Case for Autonomous Remediation</title>
      <dc:creator>Kien Tran</dc:creator>
      <pubDate>Sun, 16 Aug 2026 01:19:27 +0000</pubDate>
      <link>https://dev.to/kientndev/stop-sending-devs-80-page-security-reports-the-case-for-autonomous-remediation-422m</link>
      <guid>https://dev.to/kientndev/stop-sending-devs-80-page-security-reports-the-case-for-autonomous-remediation-422m</guid>
      <description>&lt;p&gt;Traditional application security tooling is built on an outdated assumption: that engineers have endless bandwidth to parse 80-page vulnerability scan reports.&lt;/p&gt;

&lt;p&gt;In high-velocity engineering teams, static analysis reports often become shelfware. Security teams flag high-severity issues, development teams push back due to tight sprint deadlines, and the remediation backlog compounds. &lt;/p&gt;

&lt;p&gt;The friction isn't identifying the vulnerability—it's drafting, testing, and applying the fix without breaking existing business logic.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Flaw in the Modern AppSec Loop
&lt;/h2&gt;

&lt;p&gt;When a security scanner flags an issue, the current workflow looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scanner outputs: &lt;code&gt;"Unsafe object assignment at line 142."&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;An engineer reads the alert, opens the file, and reviews the surrounding call graph.&lt;/li&gt;
&lt;li&gt;The engineer writes boilerplate guard clauses.&lt;/li&gt;
&lt;li&gt;The engineer submits a PR, waits for review, and manually tests for regressions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This cycle takes hours or days per vulnerability. Multiplied across hundreds of microservices, remediation velocity drops to near zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shifting from Passive Alerts to Git Patches
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;BugZ&lt;/strong&gt; was built to eliminate this triage friction by shifting from passive advisory to active resolution. Instead of handing engineers a generic advisory, it analyzes the codebase and directly synthesizes a precise Git &lt;code&gt;.patch&lt;/code&gt; file.&lt;br&gt;
The future of software security isn't telling developers what went wrong—it's handing them the verified solution.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Direct Remediation:&lt;/strong&gt; Replaces abstract vulnerability advice with functional, commit-ready diffs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frictionless Review:&lt;/strong&gt; Engineers inspect the exact patch changes via standard Git tooling before applying.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Velocity Preservation:&lt;/strong&gt; Security fixes move from multi-day triage items to one-click pull request reviews.&lt;/li&gt;
&lt;/ul&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
# Review and apply the synthesized fix directly
git apply bugz-remediation.patch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>devsecops</category>
      <category>webdev</category>
      <category>programming</category>
      <category>security</category>
    </item>
    <item>
      <title>How We Built an Instant AI Security &amp; Code Auditor in Next.js &amp; Convex</title>
      <dc:creator>Kien Tran</dc:creator>
      <pubDate>Fri, 14 Aug 2026 03:07:44 +0000</pubDate>
      <link>https://dev.to/kientndev/how-we-built-an-instant-ai-security-code-auditor-in-nextjs-convex-i9i</link>
      <guid>https://dev.to/kientndev/how-we-built-an-instant-ai-security-code-auditor-in-nextjs-convex-i9i</guid>
      <description>&lt;h2&gt;
  
  
  🚀 How We Built an Instant AI Security &amp;amp; Code Auditor in Next.js &amp;amp; Convex
&lt;/h2&gt;

&lt;p&gt;When building security or code auditing tools, &lt;strong&gt;speed is everything&lt;/strong&gt;. Developers won't wait 45 seconds for a bloated PDF report—they want instant feedback on potential bugs, security leaks, or bad practices.&lt;/p&gt;

&lt;p&gt;Over the last week, we've been building &lt;strong&gt;BugZ AI&lt;/strong&gt;, a lightweight scanner designed to analyze code repos and security links in under &lt;strong&gt;5 seconds&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Here is a breakdown of our stack and the architecture choices behind keeping real-time scans ultra-fast.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Build in Public Update:&lt;/strong&gt; We hit &lt;strong&gt;175 total developer visits&lt;/strong&gt; today on Day 4 of building out in the open!&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🛠️ 1. The Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Next.js 15 (App Router) + Tailwind CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend &amp;amp; Database:&lt;/strong&gt; Convex (for real-time reactive updates without manual polling)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth:&lt;/strong&gt; Clerk&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile Sync:&lt;/strong&gt; Capacitor (wrapping web assets into native Android)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ⚡ 2. Solving the Speed Bottleneck
&lt;/h2&gt;

&lt;p&gt;The biggest challenge was stream handling. Instead of waiting for the entire LLM response to complete before rendering analysis to the UI, we used Convex's real-time mutations paired with edge streaming. &lt;/p&gt;

&lt;p&gt;This lets the user paste a link or snippet and see initial vulnerability checks pop up in real-time within &lt;strong&gt;&amp;lt; 20 seconds&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  📈 3. What We Learned Building Out in the Open
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep the UI distraction-free:&lt;/strong&gt; Developers hate bloated dashboards when a single search bar will do the job.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time &amp;gt; Batch:&lt;/strong&gt; Showing progress indicators reduces drop-off rates significantly compared to static loader spinners.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🧪 Try it out &amp;amp; Drop Your Feedback!
&lt;/h3&gt;

&lt;p&gt;If you want to run a quick audit on your project or test a link, check out the live demo here: &lt;strong&gt;[INSERT YOUR BUGZ AI LINK HERE]&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'd love to hear your feedback on the scanning speed and response accuracy. What features would make this a daily part of your dev workflow?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>ai</category>
      <category>showdev</category>
    </item>
    <item>
      <title>"Dev Log #1: Crossing 150+ Users on BugZ (Lessons from 3 Days of Shipping)</title>
      <dc:creator>Kien Tran</dc:creator>
      <pubDate>Thu, 13 Aug 2026 02:47:22 +0000</pubDate>
      <link>https://dev.to/kientndev/dev-log-1-crossing-150-users-on-bugz-lessons-from-3-days-of-shipping-257f</link>
      <guid>https://dev.to/kientndev/dev-log-1-crossing-150-users-on-bugz-lessons-from-3-days-of-shipping-257f</guid>
      <description>&lt;p&gt;Quick milestone update: &lt;strong&gt;BugZ&lt;/strong&gt; (an autonomous AI security auditor) just hit &lt;strong&gt;156 users&lt;/strong&gt; overnight!&lt;/p&gt;

&lt;p&gt;Building this solo with Next.js 14, Convex, and Gemini Pro has been an awesome experiment in real-time AST parsing and auto-generating Git &lt;code&gt;.patch&lt;/code&gt; files.&lt;/p&gt;

&lt;h3&gt;
  
  
  💡 Key Takeaway from Early Community Feedback
&lt;/h3&gt;

&lt;p&gt;After posting our first breakdown on Dev.to yesterday, senior devs dropped great insights on &lt;strong&gt;patch validation boundaries&lt;/strong&gt;—specifically running generated diffs in disposable checkouts against test suites before showing them to the user.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 What's Next
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Adding rule ID &amp;amp; exact source span tracking to generated patches.&lt;/li&gt;
&lt;li&gt;Fine-tuning real-time streaming latency for larger repos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try running a quick security audit on your repositories:&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://bugz-ai.vercel.app" rel="noopener noreferrer"&gt;bugz-ai.vercel.app&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Got feedback or want to roast the UI? Drop a comment below! 👇&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>buildinpublic</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>How I Built an AI Security Auditor That Streams AST Fixes (151 Users in 3 Days)</title>
      <dc:creator>Kien Tran</dc:creator>
      <pubDate>Wed, 12 Aug 2026 03:11:33 +0000</pubDate>
      <link>https://dev.to/kientndev/how-i-built-an-ai-security-auditor-that-streams-ast-fixes-151-users-in-3-days-29l0</link>
      <guid>https://dev.to/kientndev/how-i-built-an-ai-security-auditor-that-streams-ast-fixes-151-users-in-3-days-29l0</guid>
      <description>&lt;p&gt;Most Static Application Security Testing (SAST) tools give you a massive wall of text. They flag OWASP vulnerabilities, but leave you searching line-by-line to manually apply fixes.&lt;/p&gt;

&lt;p&gt;To solve this, I spent the last few weeks building &lt;strong&gt;BugZ&lt;/strong&gt;—an autonomous security auditor designed to analyze code and generate immediate, actionable fixes.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ The Core Concept &amp;amp; How It Works
&lt;/h2&gt;

&lt;p&gt;Instead of dumping static logs, &lt;strong&gt;BugZ&lt;/strong&gt; parses AST nodes and streams real-time reasoning directly to the UI. Once a flaw is detected, it auto-generates a downloadable Git &lt;code&gt;.patch&lt;/code&gt; file so you can fix your code instantly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Apply a fix generated by BugZ in one command&lt;/span&gt;
git apply security-fix.patch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ⚡ The Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Next.js 14 (App Router) + Tailwind CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database &amp;amp; Real-Time State:&lt;/strong&gt; Convex&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Engine:&lt;/strong&gt; Gemini Pro&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Early Traction (First 3 Days)
&lt;/h2&gt;

&lt;p&gt;Building in public and focusing on a genuine developer pain point brought in awesome early validation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📈 &lt;strong&gt;151 unique visitors/users&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;⭐ &lt;strong&gt;3 GitHub stars&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;💰 &lt;strong&gt;$0 spent on ads&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 What I Learned Building Solo
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Streaming UI is Essential:&lt;/strong&gt; Handling real-time AST parsing streams directly to the frontend required fine-tuning Server-Sent Events (SSE) alongside React Suspense boundaries to keep latency low.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Convex for Live State Sync:&lt;/strong&gt; Instead of polling a traditional REST DB, Convex made syncing live AST execution states between the parser engine and the client seamless.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🔗 Try It Out &amp;amp; Give Feedback
&lt;/h2&gt;

&lt;p&gt;Run a free audit on your repositories:&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://bugz-ai.vercel.app" rel="noopener noreferrer"&gt;bugz-ai.vercel.app&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;I'd love your feedback!&lt;/strong&gt; Test it on your repos, roast the UI/UX, or let me know what features you'd like to see next in the comments below! 👇&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>nextjs</category>
      <category>ai</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Kien Tran</dc:creator>
      <pubDate>Tue, 11 Aug 2026 02:41:30 +0000</pubDate>
      <link>https://dev.to/kientndev/-2630</link>
      <guid>https://dev.to/kientndev/-2630</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/kientndev/i-got-tired-of-200-noisy-sast-alerts-so-i-built-an-ai-engine-that-auto-writes-git-patches-1i80" class="crayons-story__hidden-navigation-link"&gt;I got tired of 200 noisy SAST alerts, so I built an AI engine that auto-writes Git patches&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/kientndev" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F4063355%2Fc069a79b-c2c8-441b-9105-dc7f0e83fc82.png" alt="kientndev profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/kientndev" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Kien Tran
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Kien Tran
                
              
              &lt;div id="story-author-preview-content-4364999" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/kientndev" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F4063355%2Fc069a79b-c2c8-441b-9105-dc7f0e83fc82.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Kien Tran&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/kientndev/i-got-tired-of-200-noisy-sast-alerts-so-i-built-an-ai-engine-that-auto-writes-git-patches-1i80" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 11&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/kientndev/i-got-tired-of-200-noisy-sast-alerts-so-i-built-an-ai-engine-that-auto-writes-git-patches-1i80" id="article-link-4364999"&gt;
          I got tired of 200 noisy SAST alerts, so I built an AI engine that auto-writes Git patches
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/kientndev/i-got-tired-of-200-noisy-sast-alerts-so-i-built-an-ai-engine-that-auto-writes-git-patches-1i80" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/kientndev/i-got-tired-of-200-noisy-sast-alerts-so-i-built-an-ai-engine-that-auto-writes-git-patches-1i80#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              4&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>I got tired of 200 noisy SAST alerts, so I built an AI engine that auto-writes Git patches</title>
      <dc:creator>Kien Tran</dc:creator>
      <pubDate>Tue, 11 Aug 2026 02:41:05 +0000</pubDate>
      <link>https://dev.to/kientndev/i-got-tired-of-200-noisy-sast-alerts-so-i-built-an-ai-engine-that-auto-writes-git-patches-1i80</link>
      <guid>https://dev.to/kientndev/i-got-tired-of-200-noisy-sast-alerts-so-i-built-an-ai-engine-that-auto-writes-git-patches-1i80</guid>
      <description>&lt;p&gt;Traditional security tools like SonarQube or Snyk are great at one thing: throwing a wall of 200 warnings at you, half of which are false positives, and leaving you to figure out how to manually fix them.&lt;/p&gt;

&lt;p&gt;I wanted a faster, more actionable security workflow for my own projects. Instead of just flagging a line number and saying "potential memory leak here," I wanted a tool that synthesizes an exact .patch diff file I can review and apply in seconds.&lt;/p&gt;

&lt;p&gt;So I built BugZ AI—an open-source vulnerability scanner and automated patching engine.&lt;/p&gt;

&lt;p&gt;The Architecture &amp;amp; Stack&lt;br&gt;
To keep the UI real-time and snappy while LLMs crunch through repository files, I used this stack:&lt;/p&gt;

&lt;p&gt;Frontend: Next.js (App Router) + Tailwind CSS for a dark-mode, terminal-focused UI.&lt;/p&gt;

&lt;p&gt;Backend &amp;amp; Database: Convex. Handling real-time scan state updates and streaming execution logs to the UI without managing WebSockets manually was ridiculously clean with Convex.&lt;/p&gt;

&lt;p&gt;Authentication: Clerk for zero-friction user management.&lt;/p&gt;

&lt;p&gt;AI Engine: Gemini / OpenAI APIs with structured JSON output enforcement to guarantee valid unified Git patch syntax.&lt;/p&gt;

&lt;p&gt;Key Challenge: Generating Valid Git Patches&lt;br&gt;
Getting an LLM to explain a bug is easy. Getting an LLM to generate a syntactically correct .patch file that git apply won't reject is the hard part.&lt;/p&gt;

&lt;p&gt;To solve this, the pipeline:&lt;/p&gt;

&lt;p&gt;Parses the raw AST / code context.&lt;/p&gt;

&lt;p&gt;Prompts the LLM with strict unified diff formatting constraints.&lt;/p&gt;

&lt;p&gt;Validates line counts and chunk headers (@@ -line,count +line,count @@) before presenting the patch file in the UI.&lt;/p&gt;

&lt;p&gt;How it looks in action&lt;br&gt;
When you import a repo or paste code snippets into BugZ:&lt;/p&gt;

&lt;p&gt;It runs a deep security audit looking for async state bugs, unhandled API edge cases, or injection vulnerabilities.&lt;/p&gt;

&lt;p&gt;It streams live execution logs directly to your dashboard.&lt;/p&gt;

&lt;p&gt;It generates a executable .patch file that you can inspect side-by-side or copy straight to your terminal.&lt;/p&gt;

&lt;p&gt;Try it out &amp;amp; Feedback&lt;br&gt;
BugZ is live in early MVP stage right now. I'd love to hear your thoughts, bug reports, or ideas on how to improve the patch syntax generation!&lt;/p&gt;

&lt;p&gt;Live Demo: bugz-ai.vercel.app&lt;/p&gt;

&lt;p&gt;Stack Highlights: Next.js, Convex, Clerk, Tailwind, AI APIs&lt;/p&gt;

&lt;p&gt;Drop your thoughts in the comments below! What SAST tool features do you wish existed in your daily dev workflow?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How I built a real-time AI code auditor with Next.js 14, Convex, and Gemini Pro</title>
      <dc:creator>Kien Tran</dc:creator>
      <pubDate>Thu, 06 Aug 2026 07:15:12 +0000</pubDate>
      <link>https://dev.to/kientndev/how-i-built-a-real-time-ai-code-auditor-with-nextjs-14-convex-and-gemini-pro-5bna</link>
      <guid>https://dev.to/kientndev/how-i-built-a-real-time-ai-code-auditor-with-nextjs-14-convex-and-gemini-pro-5bna</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;I recently shipped &lt;strong&gt;&lt;a href="https://bugz-ai.vercel.app" rel="noopener noreferrer"&gt;BugZ&lt;/a&gt;&lt;/strong&gt; — an autonomous security auditor that doesn't just flag vulnerabilities, but actually writes the Git &lt;code&gt;.patch&lt;/code&gt; file to fix them. &lt;/p&gt;

&lt;p&gt;If you’ve ever run a SAST scan, you know the pain of sifting through raw warning logs trying to figure out what to rewrite. I wanted to build something that automated the remediation step.&lt;/p&gt;

&lt;p&gt;Here is a quick breakdown of the architecture and how I solved the main technical hurdles.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend &amp;amp; Routing:&lt;/strong&gt; Next.js 14 (App Router)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State &amp;amp; Real-time Database:&lt;/strong&gt; Convex&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth:&lt;/strong&gt; Clerk&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Engine:&lt;/strong&gt; Gemini 1.5 Pro&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Challenge: Serverless Timeouts vs. AST Analysis
&lt;/h3&gt;

&lt;p&gt;The hardest part of building BugZ was handling the live terminal UI. When parsing an AST (Abstract Syntax Tree) and running it through an LLM, standard serverless functions often time out or force the user to stare at a loading spinner for 30 seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Solution:&lt;/strong&gt; I used &lt;strong&gt;Convex subscriptions&lt;/strong&gt;. Instead of standard polling, the backend processes the AST and pushes real-time execution logs directly to the frontend terminal UI. The user sees exactly what the engine is analyzing line-by-line, eliminating the timeout UX friction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Auto-Generating the Fix
&lt;/h3&gt;

&lt;p&gt;Once the vulnerabilities are mapped, Gemini 1.5 Pro synthesizes the findings and outputs a clean, unified Git &lt;code&gt;.patch&lt;/code&gt; file. You can download it directly from the UI and apply it to your repo in one click.&lt;/p&gt;

&lt;h3&gt;
  
  
  Try it out
&lt;/h3&gt;

&lt;p&gt;BugZ is completely free to run (5 free daily scans) and takes about 30 seconds to run a full audit.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;Live App:&lt;/strong&gt; &lt;a href="https://bugz-ai.vercel.app" rel="noopener noreferrer"&gt;https://bugz-ai.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’d love for some folks to test a scan on your repos and share feedback on how the patch generator performs on edge cases!&lt;br&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%2F960qhf626mikael4gcl2.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%2F960qhf626mikael4gcl2.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I built an AI security scanner that writes Git patches instead of noisy warning logs</title>
      <dc:creator>Kien Tran</dc:creator>
      <pubDate>Wed, 05 Aug 2026 03:47:49 +0000</pubDate>
      <link>https://dev.to/kientndev/i-built-an-ai-security-scanner-that-writes-git-patches-instead-of-noisy-warning-logs-24dk</link>
      <guid>https://dev.to/kientndev/i-built-an-ai-security-scanner-that-writes-git-patches-instead-of-noisy-warning-logs-24dk</guid>
      <description>&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%2Fo1l7rgcpmypnc56trsdr.gif" 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%2Fo1l7rgcpmypnc56trsdr.gif" alt=" " width="720" height="289"&gt;&lt;/a&gt;If you have ever run a traditional SAST scanner on a codebase, you know the frustration: you get a wall of 150+ warning flags, half are false positives, and none show you how to actually fix the code.&lt;/p&gt;

&lt;p&gt;I wanted something faster and more actionable for my own workflow, so I built &lt;a href="https://bugz-ai.vercel.app" rel="noopener noreferrer"&gt;BugZ&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does differently
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Generates &lt;code&gt;.patch&lt;/code&gt; files:&lt;/strong&gt; Instead of just flagging an OWASP vulnerability, it synthesizes the exact Git patch code so you can review and apply the fix immediately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live execution streaming:&lt;/strong&gt; Uses Convex serverless actions to stream AST analysis logs in real-time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Action support:&lt;/strong&gt; Runs automated audits directly on Pull Requests.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Next.js 14, Tailwind CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Convex (serverless state &amp;amp; actions)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Engine:&lt;/strong&gt; Gemini Pro 1.5&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is completely free to try with 5 scans per day and zero signup required: &lt;a href="https://bugz-ai.vercel.app" rel="noopener noreferrer"&gt;https://bugz-ai.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would love to hear your thoughts, feedback, or ideas for custom SAST rules!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
