<?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: John Ferguson</title>
    <description>The latest articles on DEV Community by John Ferguson (@ferg-cod3s).</description>
    <link>https://dev.to/ferg-cod3s</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%2F210477%2Fde3fee6a-9787-4013-8d1b-ef8b49e6f38c.png</url>
      <title>DEV Community: John Ferguson</title>
      <link>https://dev.to/ferg-cod3s</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ferg-cod3s"/>
    <language>en</language>
    <item>
      <title>I Scanned 9 Popular AI Coding Tools for Security Issues. Here's What Every Developer Should Know.</title>
      <dc:creator>John Ferguson</dc:creator>
      <pubDate>Mon, 13 Oct 2025 11:36:34 +0000</pubDate>
      <link>https://dev.to/ferg-cod3s/i-scanned-9-popular-ai-coding-tools-for-security-issues-heres-what-every-developer-should-know-517p</link>
      <guid>https://dev.to/ferg-cod3s/i-scanned-9-popular-ai-coding-tools-for-security-issues-heres-what-every-developer-should-know-517p</guid>
      <description>&lt;h1&gt;
  
  
  I Scanned 9 Popular AI Coding Tools for Security Issues. Here's What Every Developer Should Know.
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; I built a security scanner and scanned 9 popular AI tools (including Google's Gemini CLI) - found 435 security issues. 89% had critical vulnerabilities. Average score: 16/100 (F). But here's the thing - most of these take like 30 seconds to fix once you know they're there.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Problem We All Face
&lt;/h2&gt;

&lt;p&gt;Look, I love AI coding tools. ChatGPT writes my boilerplate. Claude refactors my mess. Copilot autocompletes before I finish thinking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I ship features faster than ever.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But I had this nagging question nobody wants to ask:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;How many security vulnerabilities am I shipping?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Traditional security tools? They interrupt your flow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❌ Run them in CI/CD only (by the time you see issues, you've moved on)&lt;/li&gt;
&lt;li&gt;❌ Require a security PhD to understand&lt;/li&gt;
&lt;li&gt;❌ Generate massive reports you'll never read&lt;/li&gt;
&lt;li&gt;❌ Break your momentum&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted something different. Security scanning that's &lt;strong&gt;as fast as linting&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;So I built &lt;strong&gt;VibeSec&lt;/strong&gt; - a security scanner that actually fits into how I code. Terminal-based, explains things in normal English, gives you copy-paste fixes.&lt;/p&gt;

&lt;p&gt;Think of it as &lt;strong&gt;ESLint, but for security&lt;/strong&gt;.&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;# As simple as this&lt;/span&gt;
vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Get your security score in seconds&lt;/span&gt;
📊 Security Score: 48/100 &lt;span class="o"&gt;(&lt;/span&gt;D-&lt;span class="o"&gt;)&lt;/span&gt;
🔴 1 critical issue found
🟡 2 high severity issues
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then I thought - let me actually test this on real projects. Not toy examples. Real tools people use.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the Scoring Works
&lt;/h2&gt;

&lt;p&gt;Quick note on scoring before we get into results - it's intentionally simple:&lt;/p&gt;

&lt;h3&gt;
  
  
  Security Score (0-100)
&lt;/h3&gt;

&lt;p&gt;Every project starts at &lt;strong&gt;100 points&lt;/strong&gt; (perfect security). Issues deduct points based on severity:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Severity&lt;/th&gt;
&lt;th&gt;Point Deduction&lt;/th&gt;
&lt;th&gt;What It Means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CRITICAL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-25 points&lt;/td&gt;
&lt;td&gt;Immediate exploitation risk (RCE, data breach)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HIGH&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-10 points&lt;/td&gt;
&lt;td&gt;Serious vulnerability (authentication bypass, XSS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MEDIUM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-5 points&lt;/td&gt;
&lt;td&gt;Should be fixed soon (missing headers, weak config)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LOW&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-2 points&lt;/td&gt;
&lt;td&gt;Best practice violation (information disclosure)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Example Calculation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Project with:
- 2 critical issues (2 × -25 = -50 points)
- 3 high issues (3 × -10 = -30 points)
- 1 medium issue (1 × -5 = -5 points)

Score: 100 - 50 - 30 - 5 = 15/100 (F)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Grade Scale
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;90-100 (A+): Production-ready, excellent security
80-89  (B+): Good, minor improvements needed
70-79  (C+): Acceptable, some gaps to address
60-69  (D):  Concerning, needs security review
0-59   (F):  Critical issues, do not deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Scores can go negative, but we floor them at 0/100. If you see 0/100, there are &lt;strong&gt;serious issues&lt;/strong&gt; that need fixing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Matters
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Focus on critical stuff first&lt;/li&gt;
&lt;li&gt;Track progress as you fix things&lt;/li&gt;
&lt;li&gt;Set standards (like "nothing below 80 gets merged")&lt;/li&gt;
&lt;li&gt;See improvements over time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Okay, now the interesting part - what did I actually find?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Projects I Scanned
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Major AI Coding Tools
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Google Gemini CLI&lt;/strong&gt; (78K stars) - TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenCode&lt;/strong&gt; (26K stars) - TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude-code&lt;/strong&gt; (37K stars) - TypeScript&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  AI-Generated/Assisted Projects
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Plandex AI&lt;/strong&gt; - Go/TypeScript AI assistant&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chatbot UI&lt;/strong&gt; - Next.js AI chat interface&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Elia&lt;/strong&gt; - Python ChatGPT terminal client&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BuilderBot&lt;/strong&gt; - JavaScript WhatsApp bot framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CodePrism&lt;/strong&gt; - JavaScript code visualization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autodoc&lt;/strong&gt; - TypeScript documentation generator&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All real, actively-maintained projects with thousands of stars and actual users.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Results (Yikes)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Overall Stats
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Average Security Score&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;16/100 (F)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Projects with Critical Issues&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;89% (8/9)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Perfect Scores&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;11% (1/9)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total Issues Found&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;435&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Most Common Issue&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Missing Security Headers (29%)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Score Distribution
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;100/100 (A+): ███ 11% (1 project)
 48/100 (D-): ███ 11% (1 project)
  0/100 (F) : ███████████████████████ 78% (7 projects)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Complete Project Scores
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;th&gt;Grade&lt;/th&gt;
&lt;th&gt;Critical&lt;/th&gt;
&lt;th&gt;High&lt;/th&gt;
&lt;th&gt;Medium&lt;/th&gt;
&lt;th&gt;Low&lt;/th&gt;
&lt;th&gt;Total&lt;/th&gt;
&lt;th&gt;Files Scanned&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Autodoc&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100/100&lt;/td&gt;
&lt;td&gt;A+ ✨&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Plandex AI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;48/100&lt;/td&gt;
&lt;td&gt;D-&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;353&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0/100&lt;/td&gt;
&lt;td&gt;F 🚨&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;33&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;36&lt;/td&gt;
&lt;td&gt;137&lt;/td&gt;
&lt;td&gt;894&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenCode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0/100&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;37&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;48&lt;/td&gt;
&lt;td&gt;322&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Chatbot UI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0/100&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;261&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Elia&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0/100&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;BuilderBot&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0/100&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;77&lt;/td&gt;
&lt;td&gt;192&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CodePrism&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0/100&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;39&lt;/td&gt;
&lt;td&gt;39&lt;/td&gt;
&lt;td&gt;49&lt;/td&gt;
&lt;td&gt;134&lt;/td&gt;
&lt;td&gt;58&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Claude-code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0/100&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AVERAGE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;16/100&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;F&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;5.3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;11.6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;18.8&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;12.7&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;48.3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;235&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;What this means:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only &lt;strong&gt;1 project&lt;/strong&gt; out of 9 passed (that's 11%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;8 out of 9&lt;/strong&gt; had critical vulnerabilities&lt;/li&gt;
&lt;li&gt;Google's Gemini CLI? &lt;strong&gt;137 issues&lt;/strong&gt; across 894 files&lt;/li&gt;
&lt;li&gt;Even tiny projects (2 files) had &lt;strong&gt;3 critical issues&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Average project: &lt;strong&gt;48 exploitable security issues&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Real talk:&lt;/strong&gt; If you're using these tools or building with AI assistance, you're probably shipping vulnerabilities. I know because I was.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real Issues Found in Real Tools
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🚨 Google Gemini CLI - 137 Issues
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Score:&lt;/strong&gt; 0/100 (F)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8 Critical Issues Found&lt;/strong&gt;, including:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command Injection in Sandbox:&lt;/strong&gt;&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="c1"&gt;// packages/cli/src/utils/sandbox.ts&lt;/span&gt;
&lt;span class="nf"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`some-command &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;userInput&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// ❌ CRITICAL&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why This Matters:&lt;/strong&gt; This is &lt;strong&gt;Google's official tool&lt;/strong&gt; with 78K stars. If Google ships command injection, what's hiding in your codebase? (Spoiler: probably the same stuff)&lt;/p&gt;




&lt;h3&gt;
  
  
  🔴 OpenCode - 48 Issues
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Score:&lt;/strong&gt; 0/100 (F)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2 Critical Issues:&lt;/strong&gt;&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="c1"&gt;// github/index.ts - Command Injection&lt;/span&gt;
&lt;span class="nf"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`git &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;userCommand&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// ❌ User input in shell&lt;/span&gt;

&lt;span class="c1"&gt;// agent/agent.ts - Commented Security Check&lt;/span&gt;
&lt;span class="c1"&gt;// if (isValidInput(data)) { return data; } // ❌ Security disabled&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// No validation!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The Real Problem:&lt;/strong&gt; Someone commented out the security check to "move faster." We've all done it. This is what happens when security tools slow you down - you just... disable them.&lt;/p&gt;




&lt;h3&gt;
  
  
  ✅ Plandex AI - 5 Issues
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Score:&lt;/strong&gt; 48/100 (D-)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1 Critical Issue:&lt;/strong&gt;&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="c1"&gt;// docs/docusaurus.config.ts&lt;/span&gt;
&lt;span class="nx"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;a811f8bcdd87a8b3fe7f22a353b968ef&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// ❌ Hardcoded&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Plus missing CSP headers and security hardening.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Scored Better:&lt;/strong&gt; Mostly Go with strong typing. Turns out language choice matters. (Still had issues though)&lt;/p&gt;




&lt;h3&gt;
  
  
  💀 BuilderBot - 77 Issues
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Score:&lt;/strong&gt; 0/100 (F)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;20 Critical Issues&lt;/strong&gt; across all OWASP Top 10 categories:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Command Injection (5 instances)&lt;/span&gt;
&lt;span class="nf"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`git clone &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;repo&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// SQL Injection (3 instances)&lt;/span&gt;
&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`SELECT * FROM users WHERE id = &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Path Traversal (4 instances)&lt;/span&gt;
&lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`./data/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Hardcoded Secrets (8 instances)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;apiKey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sk_live_1234567890&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;This is the danger zone.&lt;/strong&gt; When you prioritize "just make it work" over "make it secure."&lt;/p&gt;

&lt;h2&gt;
  
  
  The Same Mistakes, Over and Over
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Command Injection (Still!)
&lt;/h3&gt;

&lt;p&gt;Found in &lt;strong&gt;14 different files&lt;/strong&gt; across projects:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ❌ The Pattern&lt;/span&gt;
&lt;span class="nf"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`command &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;userInput&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;spawn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`git &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;repo&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;system&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;rm {filename}&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// ✅ The Fix (30 seconds)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;execFile&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;child_process&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nf"&gt;execFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;git&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;clone&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;userRepo&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Hardcoded Secrets (Everywhere)
&lt;/h3&gt;

&lt;p&gt;Found &lt;strong&gt;45 instances&lt;/strong&gt; of hardcoded API keys:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ❌ The Pattern&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;apiKey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sk_live_xxx&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;password&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;admin123&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// ✅ The Fix (10 seconds)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;apiKey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Missing Security Headers (29% of Issues)
&lt;/h3&gt;

&lt;p&gt;Found in &lt;strong&gt;every single web application&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// ❌ The Pattern&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;cors&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

&lt;span class="c1"&gt;// ✅ The Fix (5 seconds)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;helmet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;helmet&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;helmet&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// Adds CSP, HSTS, X-Frame-Options, etc.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to Actually Fix This
&lt;/h2&gt;

&lt;p&gt;Here's what I learned: &lt;strong&gt;Security checks should feel like linting, not like homework.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Better Workflow
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Write Code (with AI assistance)&lt;/strong&gt;&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;# You're in your flow, shipping features&lt;/span&gt;
git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Quick Security Check (2 seconds)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Get Instant, Actionable Feedback&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;🔴 CRITICAL: Command Injection &lt;span class="k"&gt;in &lt;/span&gt;src/api/index.js:42

📍 Location:
   40 | app.post&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/clone'&lt;/span&gt;, &lt;span class="o"&gt;(&lt;/span&gt;req, res&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
   41 |   const repo &lt;span class="o"&gt;=&lt;/span&gt; req.body.repo&lt;span class="p"&gt;;&lt;/span&gt;
→  42 |   &lt;span class="nb"&gt;exec&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;git clone &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;repo&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   43 | &lt;span class="o"&gt;})&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

⚠️  Risk: User can execute arbitrary commands

✅ Fix:
const &lt;span class="o"&gt;{&lt;/span&gt; execFile &lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; require&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'child_process'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
execFile&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'git'&lt;/span&gt;, &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'clone'&lt;/span&gt;, repo]&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

📚 Learn more: https://owasp.org/command-injection
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Apply the Fix (30 seconds)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Copy-paste the working code&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;execFile&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;child_process&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nf"&gt;execFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;git&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;clone&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;repo&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. Re-scan &amp;amp; Commit&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Before fix:&lt;/span&gt;
📊 Security Score: 75/100 &lt;span class="o"&gt;(&lt;/span&gt;C+&lt;span class="o"&gt;)&lt;/span&gt;
🔴 1 critical issue &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;-25&lt;/span&gt; points&lt;span class="o"&gt;)&lt;/span&gt;
🟡 0 high issues

&lt;span class="c"&gt;# After fix:&lt;/span&gt;
📊 Security Score: 100/100 &lt;span class="o"&gt;(&lt;/span&gt;A+&lt;span class="o"&gt;)&lt;/span&gt; ✨
✅ All critical issues resolved!
🎉 Production-ready

git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add clone endpoint (security verified)"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Score improvement:&lt;/strong&gt; 75 → 100 (+25 points)&lt;br&gt;
&lt;strong&gt;Time invested:&lt;/strong&gt; ~1 minute&lt;br&gt;
&lt;strong&gt;Security issues prevented:&lt;/strong&gt; Could save your company millions&lt;/p&gt;
&lt;h2&gt;
  
  
  Why This Approach Works
&lt;/h2&gt;
&lt;h3&gt;
  
  
  ✅ Fast Feedback Loop
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Scan completes in seconds&lt;/li&gt;
&lt;li&gt;Issues shown immediately&lt;/li&gt;
&lt;li&gt;Fix while context is fresh&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  ✅ Plain Language
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;No security PhD required&lt;/li&gt;
&lt;li&gt;Explains the actual risk&lt;/li&gt;
&lt;li&gt;Shows working code fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  ✅ Stays Local
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Runs in your terminal&lt;/li&gt;
&lt;li&gt;No code leaves your machine&lt;/li&gt;
&lt;li&gt;Works offline&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  ✅ Integrates Everywhere
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Pre-commit hook&lt;/span&gt;
vibesec scan &lt;span class="nt"&gt;--staged&lt;/span&gt;

&lt;span class="c"&gt;# CI/CD&lt;/span&gt;
vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--fail-on&lt;/span&gt; critical

&lt;span class="c"&gt;# IDE&lt;/span&gt;
vibesec watch &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Pre-push&lt;/span&gt;
vibesec scan &lt;span class="nt"&gt;--diff&lt;/span&gt; main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  The Security Debt Crisis
&lt;/h2&gt;
&lt;h3&gt;
  
  
  What We Found Across All 9 Projects
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Severity&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;th&gt;% of Total&lt;/th&gt;
&lt;th&gt;Impact&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Critical&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;52&lt;/td&gt;
&lt;td&gt;12%&lt;/td&gt;
&lt;td&gt;Immediate exploitation risk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;High&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;73&lt;/td&gt;
&lt;td&gt;17%&lt;/td&gt;
&lt;td&gt;Serious security concerns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Medium&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;165&lt;/td&gt;
&lt;td&gt;38%&lt;/td&gt;
&lt;td&gt;Should be fixed soon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Low&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;145&lt;/td&gt;
&lt;td&gt;33%&lt;/td&gt;
&lt;td&gt;Best practice violations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TOTAL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;435&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Top 5 Issue Categories
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;th&gt;Quick Fix?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. Missing Security Headers&lt;/td&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;✅ Yes (5 sec)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Injection Vulnerabilities&lt;/td&gt;
&lt;td&gt;84&lt;/td&gt;
&lt;td&gt;✅ Yes (30 sec)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Hardcoded Secrets&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;td&gt;✅ Yes (10 sec)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. CSRF/CORS Issues&lt;/td&gt;
&lt;td&gt;38&lt;/td&gt;
&lt;td&gt;✅ Yes (1 min)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5. Weak Cryptography&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;td&gt;⚠️ Moderate (5 min)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The good news?&lt;/strong&gt; Most issues have &lt;strong&gt;10-30 second fixes&lt;/strong&gt;. You don't need a security team - you just need to know they're there.&lt;/p&gt;
&lt;h2&gt;
  
  
  Real Developer Workflows
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Workflow 1: Pre-Commit Check
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# .git/hooks/pre-commit&lt;/span&gt;
&lt;span class="c"&gt;#!/bin/sh&lt;/span&gt;
vibesec scan &lt;span class="nt"&gt;--staged&lt;/span&gt; &lt;span class="nt"&gt;--fail-on&lt;/span&gt; critical

&lt;span class="c"&gt;# Prevents commits with critical issues&lt;/span&gt;
&lt;span class="c"&gt;# Takes 2-3 seconds&lt;/span&gt;
&lt;span class="c"&gt;# Catches issues before they reach main&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Workflow 2: PR Review
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# In your CI/CD&lt;/span&gt;
- name: Security Scan
  run: |
    vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--output&lt;/span&gt; json &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; report.json
    vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--diff&lt;/span&gt; &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="p"&gt;{ github.base_ref &lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;# Shows exactly what new issues were introduced&lt;/span&gt;
&lt;span class="c"&gt;# Comments on PR automatically&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Workflow 3: Development Watch Mode
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# While you code&lt;/span&gt;
vibesec watch &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Auto-scans on file save&lt;/span&gt;
&lt;span class="c"&gt;# Shows issues in real-time&lt;/span&gt;
&lt;span class="c"&gt;# Like nodemon, but for security&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Workflow 4: Quick Spot Check
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Before pushing&lt;/span&gt;
vibesec scan src/

&lt;span class="c"&gt;# 2-second sanity check&lt;/span&gt;
&lt;span class="c"&gt;# Catches obvious issues&lt;/span&gt;
&lt;span class="c"&gt;# Prevents embarrassment&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Why AI Code Needs This More
&lt;/h2&gt;
&lt;h3&gt;
  
  
  The AI Code Security Problem
&lt;/h3&gt;

&lt;p&gt;AI assistants are &lt;strong&gt;amazing&lt;/strong&gt; at functionality, but they:&lt;/p&gt;

&lt;p&gt;❌ Don't prioritize security by default&lt;br&gt;
❌ Use patterns from Stack Overflow (circa 2015)&lt;br&gt;
❌ Copy code without understanding context&lt;br&gt;
❌ Ship what works, not what's secure&lt;/p&gt;
&lt;h3&gt;
  
  
  The Data Proves It
&lt;/h3&gt;

&lt;p&gt;From our scans:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;89% of AI-assisted projects had critical vulnerabilities&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Average score: 16/100&lt;/strong&gt; (would fail any security audit)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Most common issue:&lt;/strong&gt; Patterns that "work" but aren't secure&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  But Here's the Thing...
&lt;/h3&gt;

&lt;p&gt;AI code isn't &lt;em&gt;inherently&lt;/em&gt; less secure. It's just &lt;strong&gt;faster to write&lt;/strong&gt;, which means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More code shipped = more potential issues&lt;/li&gt;
&lt;li&gt;Less time for security review&lt;/li&gt;
&lt;li&gt;Security becomes an afterthought&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Make security checks as fast as the code generation.&lt;/p&gt;
&lt;h2&gt;
  
  
  How VibeSec is Different
&lt;/h2&gt;

&lt;p&gt;You might be thinking: &lt;em&gt;"We already have SonarQube/Snyk/GitHub Security. Why do we need another security tool?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fair question.&lt;/strong&gt; Here's the honest answer:&lt;/p&gt;
&lt;h3&gt;
  
  
  The Problem with Traditional Security Tools
&lt;/h3&gt;

&lt;p&gt;Look, SonarQube and Snyk are &lt;strong&gt;excellent&lt;/strong&gt; at what they do. Enterprise-grade, comprehensive analysis. But they weren't built for how we actually code with AI:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌ They're too slow&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SonarQube: 5-15 minute scans (plus you need to set up a server)&lt;/li&gt;
&lt;li&gt;Snyk: 3-10 minutes (uploads your code to the cloud)&lt;/li&gt;
&lt;li&gt;GitHub Security: CI/CD only (so you find out after you've already moved on)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VibeSec: 2 seconds, runs locally&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;❌ They break your flow&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write code → commit → push → wait 10 minutes → check dashboard in browser → try to remember what you were doing → fix → repeat&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VibeSec: Scan right there in your terminal while you still remember what you wrote&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;❌ They speak security-ese&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"CWE-78: Improper Neutralization of Special Elements used in an OS Command"&lt;/li&gt;
&lt;li&gt;Me: &lt;em&gt;googles what that means&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VibeSec: "Attackers can run any command. Here's the fix: [3 lines of code]"&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;❌ They're not built for AI code&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generic rules that miss AI-specific patterns&lt;/li&gt;
&lt;li&gt;Don't catch the copy-paste mistakes AI tools make&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VibeSec: Built specifically for catching AI-generated vulnerabilities&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  The Shift-Left Approach
&lt;/h3&gt;

&lt;p&gt;Think of security tools as layers of defense:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VibeSec (Dev)     →  SonarQube (CI/CD)  →  Snyk (Production)
    ↓                       ↓                      ↓
2 seconds            5-15 minutes           Continuous
While coding         After commit           After deploy
Catch 80%           Catch remaining 15%     Monitor 5%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VibeSec isn't a replacement - it's a complement.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Real Workflow Comparison
&lt;/h3&gt;

&lt;p&gt;Let's say Copilot just helped you write a file upload endpoint:&lt;/p&gt;

&lt;h4&gt;
  
  
  Traditional Workflow (SonarQube/Snyk)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Write code with AI&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;GitHub Copilot suggests upload code]

&lt;span class="c"&gt;# 2. Commit and push&lt;/span&gt;
git add &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add upload"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; git push

&lt;span class="c"&gt;# 3. Wait for CI/CD (5-15 minutes)&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;Go get coffee ☕]

&lt;span class="c"&gt;# 4. Check dashboard&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;Login to SonarQube dashboard]
&lt;span class="o"&gt;[&lt;/span&gt;Where&lt;span class="s1"&gt;'s my project again?]
[Click through 3 pages to find the report]

# 5. Read finding
"CWE-22: Improper Limitation of Pathname"
[Wait, what does that mean?]
[Google CWE-22]
[Read OWASP docs]
[Try to understand the fix]

# 6. Go back to code (what was I doing?)
[Open the file again]
[Re-read the code I wrote 20 minutes ago]
[Try to remember the context]
[Apply fix]

# 7. Repeat cycle
git add . &amp;amp;&amp;amp; git commit -m "Fix security issue" &amp;amp;&amp;amp; git push
[Wait another 5-15 minutes]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Total time:&lt;/strong&gt; 20-40 minutes + you've completely lost your flow&lt;/p&gt;

&lt;h4&gt;
  
  
  VibeSec Workflow
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Write code with AI&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;Copilot suggests upload code]

&lt;span class="c"&gt;# 2. Quick scan (literally 2 seconds)&lt;/span&gt;
vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# 3. Instant feedback&lt;/span&gt;
🔴 CRITICAL: Path Traversal &lt;span class="k"&gt;in &lt;/span&gt;src/upload.js:12

📍 Location:
   10 | app.post&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/upload'&lt;/span&gt;, &lt;span class="o"&gt;(&lt;/span&gt;req, res&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
   11 |   const filename &lt;span class="o"&gt;=&lt;/span&gt; req.body.name&lt;span class="p"&gt;;&lt;/span&gt;
→  12 |   fs.writeFile&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;./uploads/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;filename&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;, data&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   13 | &lt;span class="o"&gt;})&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

⚠️  Risk: Attackers can write to any directory
    Example: &lt;span class="nv"&gt;filename&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"../../../etc/passwd"&lt;/span&gt;

✅ Fix:
const path &lt;span class="o"&gt;=&lt;/span&gt; require&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'path'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
const safeName &lt;span class="o"&gt;=&lt;/span&gt; path.basename&lt;span class="o"&gt;(&lt;/span&gt;filename&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
fs.writeFile&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;./uploads/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;safeName&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;, data&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c"&gt;# 4. Copy-paste fix (10 seconds)&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;Apply the fix]

&lt;span class="c"&gt;# 5. Re-scan (2 seconds)&lt;/span&gt;
vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt;
✅ All issues resolved! Score: 100/100

&lt;span class="c"&gt;# 6. Commit secure code&lt;/span&gt;
git add &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add secure upload"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Total time:&lt;/strong&gt; 30 seconds + you're still in the zone&lt;/p&gt;

&lt;h3&gt;
  
  
  Feature Comparison
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;VibeSec&lt;/th&gt;
&lt;th&gt;SonarQube&lt;/th&gt;
&lt;th&gt;Snyk&lt;/th&gt;
&lt;th&gt;GitHub Security&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Scan Speed&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2 seconds&lt;/td&gt;
&lt;td&gt;5-15 minutes&lt;/td&gt;
&lt;td&gt;3-10 minutes&lt;/td&gt;
&lt;td&gt;CI/CD only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Where it runs&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Local terminal&lt;/td&gt;
&lt;td&gt;Server/Cloud&lt;/td&gt;
&lt;td&gt;Cloud&lt;/td&gt;
&lt;td&gt;GitHub Cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Setup required&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm install -g&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Docker + config&lt;/td&gt;
&lt;td&gt;Account + integration&lt;/td&gt;
&lt;td&gt;Enable in repo settings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Privacy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Code never leaves machine&lt;/td&gt;
&lt;td&gt;Uploaded to server&lt;/td&gt;
&lt;td&gt;Uploaded to cloud&lt;/td&gt;
&lt;td&gt;Uploaded to GitHub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Output format&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Plain English + fixes&lt;/td&gt;
&lt;td&gt;Technical (CWE/CVE)&lt;/td&gt;
&lt;td&gt;Technical + guidance&lt;/td&gt;
&lt;td&gt;Technical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Fix suggestions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Copy-paste ready code&lt;/td&gt;
&lt;td&gt;Links to docs&lt;/td&gt;
&lt;td&gt;General guidance&lt;/td&gt;
&lt;td&gt;Links to docs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Workflow integration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Pre-commit, watch mode&lt;/td&gt;
&lt;td&gt;CI/CD only&lt;/td&gt;
&lt;td&gt;CI/CD + IDE plugin&lt;/td&gt;
&lt;td&gt;CI/CD only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AI code patterns&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Specialized&lt;/td&gt;
&lt;td&gt;❌ Generic&lt;/td&gt;
&lt;td&gt;❌ Generic&lt;/td&gt;
&lt;td&gt;❌ Generic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Dependency scanning&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ (code only)&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅✅ (best)&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;License compliance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Custom rules&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ YAML-based&lt;/td&gt;
&lt;td&gt;✅ Complex&lt;/td&gt;
&lt;td&gt;⚠️ Limited&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Team management&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ (local tool)&lt;/td&gt;
&lt;td&gt;✅✅ Enterprise&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Historical tracking&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ (per-scan)&lt;/td&gt;
&lt;td&gt;✅✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Price&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Free (open source)&lt;/td&gt;
&lt;td&gt;$$$$ (enterprise)&lt;/td&gt;
&lt;td&gt;$$ (per developer)&lt;/td&gt;
&lt;td&gt;$$$ (per seat)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  When to Use What
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Use VibeSec when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Coding with AI assistance (Copilot, Claude, ChatGPT)&lt;/li&gt;
&lt;li&gt;✅ You want instant feedback (during development)&lt;/li&gt;
&lt;li&gt;✅ You need plain language explanations&lt;/li&gt;
&lt;li&gt;✅ You're working on a personal/startup project&lt;/li&gt;
&lt;li&gt;✅ Privacy matters (code must stay local)&lt;/li&gt;
&lt;li&gt;✅ You want to catch issues before committing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use SonarQube when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ You need enterprise-grade reporting&lt;/li&gt;
&lt;li&gt;✅ You want team dashboards and metrics&lt;/li&gt;
&lt;li&gt;✅ You need historical trend analysis&lt;/li&gt;
&lt;li&gt;✅ Compliance requires audit trails&lt;/li&gt;
&lt;li&gt;✅ You have a large monorepo (1M+ lines)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use Snyk when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Dependency vulnerabilities are your main concern&lt;/li&gt;
&lt;li&gt;✅ You need container/IaC scanning&lt;/li&gt;
&lt;li&gt;✅ You want automated dependency PRs&lt;/li&gt;
&lt;li&gt;✅ License compliance is critical&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use GitHub Advanced Security when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ You're all-in on GitHub&lt;/li&gt;
&lt;li&gt;✅ You want CodeQL for deep analysis&lt;/li&gt;
&lt;li&gt;✅ Secret scanning is priority&lt;/li&gt;
&lt;li&gt;✅ You need compliance reports&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;strong&gt;Best practice:&lt;/strong&gt; Use VibeSec + one other tool&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────┐
│   Development (You write code)      │
│   → VibeSec (2 seconds)             │  ← Shift left!
│   → Fix issues before commit        │
└─────────────────────────────────────┘
              ↓
┌─────────────────────────────────────┐
│   CI/CD (After commit)              │
│   → SonarQube/Snyk/GitHub Security  │  ← Catch what's left
│   → Block merge if critical         │
└─────────────────────────────────────┘
              ↓
┌─────────────────────────────────────┐
│   Production (Deployed)             │
│   → Snyk/GitHub (monitoring)        │  ← Runtime protection
│   → Alert on new CVEs               │
└─────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;80% of issues caught in development (VibeSec - 2 seconds)&lt;/li&gt;
&lt;li&gt;15% caught in CI/CD (SonarQube - 5 minutes)&lt;/li&gt;
&lt;li&gt;5% caught in production (Snyk - monitoring)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Catch issues earlier = cheaper to fix + faster development&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Speed Actually Matters
&lt;/h3&gt;

&lt;p&gt;Security tools only work &lt;strong&gt;if you actually use them.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real developer behavior&lt;/strong&gt; (be honest):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Will run:&lt;/strong&gt; 2-second tool every commit&lt;/li&gt;
&lt;li&gt;⚠️ &lt;strong&gt;Might run:&lt;/strong&gt; 5-minute tool before pushing&lt;/li&gt;
&lt;li&gt;❌ &lt;strong&gt;Won't run:&lt;/strong&gt; 15-minute tool manually&lt;/li&gt;
&lt;li&gt;❌ &lt;strong&gt;Will ignore:&lt;/strong&gt; Findings that show up 30 minutes later&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Real talk:&lt;/strong&gt; If the feedback loop is too slow, you skip it. Or you ignore it when the results finally show up (and you're already working on something else).&lt;/p&gt;

&lt;p&gt;VibeSec is designed to be &lt;strong&gt;faster than running your tests&lt;/strong&gt; - so fast you don't even think about it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real User Quote
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"SonarQube is for code review. Snyk is for dependencies. VibeSec is for right now while I'm coding. Completely different use cases."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;— Developer who uses all three&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The One Project That Actually Passed
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Autodoc&lt;/strong&gt; - TypeScript documentation generator&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it scored 100/100:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No hardcoded secrets&lt;/li&gt;
&lt;li&gt;Proper input validation&lt;/li&gt;
&lt;li&gt;Safe file operations&lt;/li&gt;
&lt;li&gt;Environment variables used correctly&lt;/li&gt;
&lt;li&gt;No dangerous patterns (eval, exec, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What I learned from this:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security isn't rocket science&lt;/li&gt;
&lt;li&gt;It's just &lt;strong&gt;consistent habits&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Automated checks catch what you miss at 2am&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Get Started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Install VibeSec
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; vibesec
&lt;span class="c"&gt;# or&lt;/span&gt;
bun &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; vibesec
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Scan Your Project
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;your-project
vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Fix Critical Issues First
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Focus on what matters&lt;/span&gt;
vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--severity&lt;/span&gt; critical

&lt;span class="c"&gt;# Get detailed fixes&lt;/span&gt;
vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--explain&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4: Add to Your Workflow
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Pre-commit hook&lt;/span&gt;
vibesec install-hooks

&lt;span class="c"&gt;# Watch mode while developing&lt;/span&gt;
vibesec watch &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# CI/CD integration&lt;/span&gt;
vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--fail-on&lt;/span&gt; high &lt;span class="nt"&gt;--output&lt;/span&gt; json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What VibeSec Checks For
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;93 Security Rules&lt;/strong&gt; across 16 categories:&lt;/p&gt;

&lt;h3&gt;
  
  
  Critical Issues
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ Command Injection (exec, spawn, system)&lt;/li&gt;
&lt;li&gt;✅ SQL Injection (string concatenation)&lt;/li&gt;
&lt;li&gt;✅ Path Traversal (user input in file paths)&lt;/li&gt;
&lt;li&gt;✅ Hardcoded Secrets (API keys, passwords)&lt;/li&gt;
&lt;li&gt;✅ Insecure Deserialization (pickle, unserialize)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  High Severity
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ XSS Vulnerabilities (innerHTML, eval)&lt;/li&gt;
&lt;li&gt;✅ CSRF Protection (missing tokens)&lt;/li&gt;
&lt;li&gt;✅ SSRF (server-side requests)&lt;/li&gt;
&lt;li&gt;✅ Weak Cryptography (MD5, SHA1, weak keys)&lt;/li&gt;
&lt;li&gt;✅ Authentication Issues (weak passwords, no rate limiting)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Best Practices
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ Security Headers (CSP, HSTS, X-Frame-Options)&lt;/li&gt;
&lt;li&gt;✅ CORS Configuration&lt;/li&gt;
&lt;li&gt;✅ Prototype Pollution (JavaScript)&lt;/li&gt;
&lt;li&gt;✅ Input Validation&lt;/li&gt;
&lt;li&gt;✅ Error Handling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Languages Supported:&lt;/strong&gt; JavaScript, TypeScript, Python, PHP, Java, Go&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bigger Picture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Security Should Feel Like Linting
&lt;/h3&gt;

&lt;p&gt;Remember when we didn't have ESLint? Code quality was subjective. Style was inconsistent. Bugs slipped through.&lt;/p&gt;

&lt;p&gt;Then ESLint made quality &lt;strong&gt;automatic and fast&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⚡ Instant feedback&lt;/li&gt;
&lt;li&gt;🎯 Clear rules&lt;/li&gt;
&lt;li&gt;🔧 Auto-fix suggestions&lt;/li&gt;
&lt;li&gt;📈 Measurable improvement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;That's what security scanning should be.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Cost of Waiting
&lt;/h3&gt;

&lt;p&gt;According to IBM Security, the average cost of a data breach in 2024:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$4.45 million&lt;/strong&gt; per breach&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$165&lt;/strong&gt; per compromised record&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;277 days&lt;/strong&gt; average time to identify and contain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Compare that to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;2 seconds&lt;/strong&gt; to run a security scan&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;30 seconds&lt;/strong&gt; to fix a command injection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$0&lt;/strong&gt; cost to prevent the breach&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Reality
&lt;/h3&gt;

&lt;p&gt;Every project we scanned was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Functional and working&lt;/li&gt;
&lt;li&gt;✅ Passing all tests&lt;/li&gt;
&lt;li&gt;✅ Used by thousands of users&lt;/li&gt;
&lt;li&gt;❌ Shipping security vulnerabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Functionality isn't enough.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways for Developers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Fast Tools Win
&lt;/h3&gt;

&lt;p&gt;Security that interrupts flow doesn't get used. Make it &lt;strong&gt;faster than your test suite&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Plain Language Wins
&lt;/h3&gt;

&lt;p&gt;"CWE-78" means nothing. "Attackers can execute any command" is clear. &lt;strong&gt;Explain like I'm coding at 2am.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Fixes Win Over Findings
&lt;/h3&gt;

&lt;p&gt;Don't just point out issues. &lt;strong&gt;Show the working code fix.&lt;/strong&gt; Copy-paste ready.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Local First Wins
&lt;/h3&gt;

&lt;p&gt;Code never leaves your machine. No security review needed to use the tool. &lt;strong&gt;Privacy matters.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. AI Code Needs More Scrutiny
&lt;/h3&gt;

&lt;p&gt;It's not that AI code is less secure - it's that &lt;strong&gt;we generate it faster&lt;/strong&gt;. More code = more surface area. Scan accordingly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenge
&lt;/h2&gt;

&lt;p&gt;Okay, here's my challenge:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scan your current project. Right now. I'll wait.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not "I'll do it tomorrow." Not "next sprint." &lt;strong&gt;Now.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I bet you'll find:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;At least one hardcoded API key you forgot about&lt;/li&gt;
&lt;li&gt;Missing security headers&lt;/li&gt;
&lt;li&gt;A SQL injection vulnerability somewhere&lt;/li&gt;
&lt;li&gt;Command injection you copy-pasted from Stack Overflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;And I bet you can fix them all in under 10 minutes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Try me.&lt;/p&gt;

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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; vibesec

&lt;span class="c"&gt;# Scan&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;your-project
vibesec scan &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Get your score&lt;/span&gt;
&lt;span class="c"&gt;# Fix the issues&lt;/span&gt;
&lt;span class="c"&gt;# Scan again&lt;/span&gt;
&lt;span class="c"&gt;# Ship secure code&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/ferg-cod3s/vibesec" rel="noopener noreferrer"&gt;github.com/ferg-cod3s/vibesec&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I'm working on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IDE plugins&lt;/strong&gt; (VSCode, Cursor, Neovim)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time scanning&lt;/strong&gt; (as you type)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-powered fix suggestions&lt;/strong&gt; (not just templates)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom rule creation&lt;/strong&gt; (for your team's patterns)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance reports&lt;/strong&gt; (SOC2, HIPAA, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Want early access?&lt;/strong&gt; Drop a comment or star the repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  "Why do some projects score 0/100 instead of negative?"
&lt;/h3&gt;

&lt;p&gt;Scores are floored at 0/100 to keep the scale simple. When you see 0/100, it means the project has accumulated so many issues that it's effectively "maxed out" the deduction scale. Focus on fixing critical issues first.&lt;/p&gt;

&lt;h3&gt;
  
  
  "Are these false positives?"
&lt;/h3&gt;

&lt;p&gt;Some might be context-dependent (e.g., CSP headers on CLI tools), but the critical issues (command injection, hardcoded secrets, SQL injection) are real vulnerabilities. The tool flags patterns that &lt;strong&gt;could&lt;/strong&gt; be exploited - manual review is recommended for your specific context.&lt;/p&gt;

&lt;h3&gt;
  
  
  "Can I customize the scoring?"
&lt;/h3&gt;

&lt;p&gt;Yes! You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adjust severity weights in config&lt;/li&gt;
&lt;li&gt;Disable rules that don't apply to your project type&lt;/li&gt;
&lt;li&gt;Create custom rules for your team's standards&lt;/li&gt;
&lt;li&gt;Set different thresholds for different environments&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  "How does this compare to other tools?"
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; VibeSec is designed for &lt;strong&gt;development workflow&lt;/strong&gt;, not CI/CD or production monitoring.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;Best Tool&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;While coding&lt;/strong&gt; (instant feedback)&lt;/td&gt;
&lt;td&gt;VibeSec ⚡&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;CI/CD&lt;/strong&gt; (comprehensive analysis)&lt;/td&gt;
&lt;td&gt;SonarQube, Snyk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Dependencies&lt;/strong&gt; (CVE monitoring)&lt;/td&gt;
&lt;td&gt;Snyk, GitHub Security&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Production&lt;/strong&gt; (runtime monitoring)&lt;/td&gt;
&lt;td&gt;Snyk, AppSec tools&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Detailed comparison:&lt;/strong&gt; See the How VibeSec is Different section above for workflow examples, feature matrices, and when to use each tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; VibeSec complements enterprise tools by catching issues &lt;strong&gt;during development&lt;/strong&gt; (shift-left security). Use VibeSec for fast feedback, then use SonarQube/Snyk/GitHub Security for comprehensive CI/CD analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  "What about Go/Rust/other languages?"
&lt;/h3&gt;

&lt;p&gt;Currently supports: JavaScript, TypeScript, Python, PHP, Java, Go&lt;/p&gt;

&lt;p&gt;Coming soon: Rust, Ruby, C#, Swift&lt;/p&gt;

&lt;p&gt;Language support is actively expanding based on community feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Security doesn't have to kill your productivity. Finding issues &lt;strong&gt;before production&lt;/strong&gt; is way faster than dealing with breaches &lt;strong&gt;after&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I scanned 9 popular projects. Found 435 security issues. Most took 10-30 seconds to fix. None required a PhD.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real question isn't "Can we afford to add security to our workflow?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's "Can we afford to keep shipping vulnerabilities?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because eventually, one of them is gonna bite you.&lt;/p&gt;




&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;p&gt;What's your workflow for catching security issues? Scan before commits? Rely on CI/CD? Just ship it and hope?&lt;/p&gt;

&lt;p&gt;Let me know in the comments. I'm genuinely curious.&lt;/p&gt;

&lt;p&gt;And if this was useful:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⭐ Star &lt;a href="https://github.com/ferg-cod3s/vibesec" rel="noopener noreferrer"&gt;VibeSec on GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🔗 Share with your team&lt;/li&gt;
&lt;li&gt;💬 Follow for more posts about security + AI code&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;About VibeSec&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;VibeSec is an open-source security scanner designed for developers who code with AI assistance. It runs in your terminal, speaks plain language, and fits your workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;93 security rules (OWASP Top 10 coverage)&lt;/li&gt;
&lt;li&gt;JavaScript, TypeScript, Python, PHP, Java, Go support&lt;/li&gt;
&lt;li&gt;Plain language explanations&lt;/li&gt;
&lt;li&gt;Working code fixes&lt;/li&gt;
&lt;li&gt;Fast (scans 1000+ files in seconds)&lt;/li&gt;
&lt;li&gt;Local-first (your code never leaves your machine)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Connect:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/ferg-cod3s" rel="noopener noreferrer"&gt;@ferg-cod3s&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Twitter: &lt;a href="https://twitter.com/f3rg_codes" rel="noopener noreferrer"&gt;@f3rg_codes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Website: &lt;a href="https://vibesec.dev" rel="noopener noreferrer"&gt;vibesec.dev&lt;/a&gt; &lt;em&gt;(coming soon)&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;All projects scanned are open-source and publicly available. Issues have been responsibly disclosed to project maintainers.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  security #ai #javascript #typescript #devtools #opensource #workflow #devsecops
&lt;/h1&gt;

</description>
      <category>security</category>
      <category>ai</category>
      <category>javascript</category>
      <category>devtools</category>
    </item>
    <item>
      <title>How to break into Development</title>
      <dc:creator>John Ferguson</dc:creator>
      <pubDate>Wed, 12 Aug 2020 02:47:03 +0000</pubDate>
      <link>https://dev.to/ferg-cod3s/how-to-break-into-development-2g0g</link>
      <guid>https://dev.to/ferg-cod3s/how-to-break-into-development-2g0g</guid>
      <description>&lt;p&gt;I feel like this is probably a question that is asked frequently, but I know it's something that is very dependent on the individual. Why can't I ever land a Software Development job?&lt;/p&gt;

&lt;p&gt;I finished my Bachelors in Software Development almost a year ago, in October of 2019. I have applied to so many software engineering, web development, etc. jobs that I can't even keep track any more. I have only received a few contacts back from hiring managers, and from those I have had even fewer interviews.&lt;/p&gt;

&lt;p&gt;When I do finally get into an interview, it seems like everything goes great, but then I receive that dreaded email that they went with someone who "better fits what they are looking for", without even getting a chance to have a technical interview. &lt;/p&gt;

&lt;p&gt;I am curious what I can do to improve my chances here, or if there is anything obvious I might be missing? &lt;/p&gt;

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