惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网
T
Tailwind CSS Blog
MongoDB | Blog
MongoDB | Blog
博客园 - 【当耐特】
博客园 - 聂微东
V
Visual Studio Blog
博客园_首页
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
GbyAI
GbyAI
F
Fortinet All Blogs
C
Check Point Blog
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Your AI-generated code works. It's probably not productio...
shan kulkarn · 2026-05-12 · via DEV Community

shan kulkarni

Shipping features with Claude Code or Cursor is fast now. Getting that code to hold up in production is a separate problem entirely. AI reduces implementation time. It does not produce production engineering.

I went through 8 AI-generated production apps. They all had roughly the same issues:

  • Supabase RLS misconfigured
  • secrets sitting in the codebase
  • no rate limiting, no caching
  • bad data structures
  • components re-rendering constantly
  • AI features open to prompt injection and RAG attacks
  • basically no tests around anything important

Most of them worked. Hardly any were production ready.

A year ago, writing code was the bottleneck. Now it's reviewing and hardening what got generated. That's a different skill, and most teams aren't there yet.

The reason this keeps happening: AI is excellent at extending local patterns. It's much worse at understanding long-term system boundaries, scaling behavior, and operational risk. It generates code that looks right in isolation and breaks under real conditions.

Production review flow

Six things I look at before calling AI-generated code production ready.


Security

This is where things go quietly wrong. The code compiles, tests pass, and then someone finds a misconfigured auth check six months later.

  • Auth flows: does every protected route actually verify the session? Are role checks on the server, not just the client?
  • Exposed secrets: API keys in frontend code, .env values hardcoded as fallbacks, secrets logged during error handling
  • Injection risks: SQL, command, and path injection in any user-controlled inputs
  • LLM prompt injection: if your app passes user input into an AI prompt, can a user rewrite what the AI does?
  • RAG document injection: can a user upload a document that manipulates your AI's behavior?

Quality

Happy path works fine. The edges are where it falls apart.

  • Dead code and unused imports — AI generates confidently, including things it never wires up
  • Weak typing: any used to paper over uncertainty, missing null checks, unsafe type assertions
  • Anti-patterns: misused hooks, unnecessary useEffects, logic in the wrong layer
  • Architecture drift: after 50 prompts, does the codebase still follow the same conventions it started with?

Performance

AI-generated code tends to duplicate logic instead of abstracting correctly, miss caching layers entirely, and generate DB access patterns that work fine in development and fall apart under load.

  • Slow queries: missing indexes, N+1 patterns, fetching more columns than the page needs
  • Cold starts: heavy dependencies, unoptimized bundles, serverless functions loading too much on init
  • Render cascades: components re-rendering on every state change because nothing is memoized
  • Heavy bundles: entire libraries pulled in at the top level when one function was needed

Compliance

Some of this is stack-specific. PII handling isn't.

  • Payment flows: are Stripe webhooks handled correctly? Any card data stored that shouldn't be?
  • App Store: are in-app purchases routed right? Anything that'll get the app rejected on review?
  • Data handling: GDPR basics — deletion, consent, data residency for EU users
  • PII and external APIs: are you sending user data to an AI API you haven't agreed to share it with?

Testing

There are usually tests. They usually test the wrong things.

  • Critical paths: auth, payments, data writes — the flows that actually hurt users when they fail
  • Are tests checking behavior, or just that the function runs without throwing?
  • Are edge cases there, or just the happy path the AI was given in the prompt?

Observability

Most AI-generated codebases have none. Everything's fine locally. Then it breaks in production and there's nothing to look at.

  • Error tracking: are exceptions being captured, or swallowed silently?
  • Logging: structured and useful, or just console.log statements scattered around?
  • Alerting: do you find out when something breaks, or do users tell you?
  • Tracing: for AI calls and external APIs, can you follow a request end to end?

Most teams are treating code generation and code review as the same problem. They're not. The faster teams ship with AI, the faster review debt accumulates — and most teams have no process for it yet.

That's why I built Vibe Audit. It runs this audit automatically across your codebase and surfaces production risks before they become incidents. GitHub

Ran it on a real app. This is what came back.

Vibe Audit sample report