<?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>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>
