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

推荐订阅源

GbyAI
GbyAI
NISL@THU
NISL@THU
S
Secure Thoughts
P
Palo Alto Networks Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
AWS News Blog
AWS News Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
L
LINUX DO - 最新话题
L
LINUX DO - 热门话题
O
OpenAI News
C
Cyber Attacks, Cyber Crime and Cyber Security
Google DeepMind News
Google DeepMind News
Schneier on Security
Schneier on Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
www.infosecurity-magazine.com
www.infosecurity-magazine.com
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
Forbes - Security
Forbes - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Securelist
S
Security Affairs
博客园 - 三生石上(FineUI控件)
V2EX - 技术
V2EX - 技术
Apple Machine Learning Research
Apple Machine Learning Research
D
Darknet – Hacking Tools, Hacker News & Cyber Security
人人都是产品经理
人人都是产品经理
IT之家
IT之家
T
Threat Research - Cisco Blogs
博客园 - 司徒正美
J
Java Code Geeks
C
Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
N
News and Events Feed by Topic
P
Privacy International News Feed
V
Visual Studio Blog
博客园_首页
量子位
C
Cybersecurity and Infrastructure Security Agency CISA
Y
Y Combinator Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
The Exploit Database - CXSecurity.com
Security Archives - TechRepublic
Security Archives - TechRepublic
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
N
News and Events Feed by Topic
D
DataBreaches.Net
The Cloudflare Blog

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 Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
Vibe Coding Kills Startups at User 50. Here's the Autopsy. 🔬
Hamza Jalal · 2026-05-07 · via DEV Community

There's a moment every founder hits.

It's somewhere around user 47 to 53. The app that looked flawless in the demo starts doing something it was never supposed to do. A race condition nobody planned for. An auth flow that breaks under concurrent sessions. A database query that was fine with 10 rows and catastrophic with 10,000.

They go back to Bolt. Or Lovable. Or Cursor.

They ask the AI to fix it.

The AI generates a fix. The fix introduces two new bugs. They ask the AI to fix those. More code appears. The codebase is now a palimpsest of patches — each one locally optimal for the prompt that generated it, globally incoherent with everything around it.

At some point the founder opens a ticket with a freelancer: "Here's my repo. Can you just fix it?"

The freelancer opens the repo. And closes the tab.


What vibe coding actually produces 🧬

Let me be specific, because "vibe coding fails" is said a lot without anyone explaining what the failure mode looks like in code.

Here's what a vibe-coded codebase typically contains after 8 weeks of active development:

  • No migration strategy. The database schema was changed 14 times by prompting "add a column" or "rename this field." No migration files. No history. If you need to roll back, you cannot.

  • No error boundary strategy. Every API call either works or throws an unhandled exception that surfaces as a blank screen. No logging. No error tracking. The founder doesn't know the app is broken until a user tells them.

  • No deployment pipeline. The app is running on a shared server because the AI suggested it and the founder clicked yes. Every change goes straight to production. One bad prompt away from a 3 AM outage.

  • Ghost dependencies. package.json contains 47 dependencies. The app uses 11. The other 36 were installed for features that were later removed. Two have known CVEs.

  • God components. One React component that is 840 lines long. It manages auth state, renders the dashboard, makes three API calls, handles form validation, and contains a function called handleEverything. Never refactored because every attempt broke three other things.

💡 None of this is the founder's fault. They used the tools correctly. The tools just weren't built for what comes after the demo.


The gap nobody talks about 🕳️

AI coding tools are exceptional at one specific thing: producing code that looks correct and runs once.

They are genuinely bad at producing code that:

  • Runs correctly under load
  • Fails gracefully when something goes wrong
  • Can be understood by a human who wasn't in the original chat
  • Can be extended without understanding the full system

The gap between "demo-ready" and "production-ready" is not a gap in features. It's a gap in architecture. And architecture is the one thing you cannot prompt your way into.

When a senior engineer reads a codebase, they're not just reading the code. They're reading the decisions. Why is this service synchronous when it should be async? Why is this data stored here instead of there? Why does this component know about things it has no business knowing about?

A vibe-coded system has no decisions. It has outputs. You cannot fix that with more prompts.


The rescue pattern — what actually fixes it 🛠️

We've rebuilt or rescued vibe-coded MVPs at saro enough times that the pattern is almost always the same.

Weeks 1–2: Triage

What exists. What is worth keeping. What needs to go. Usually the UI is salvageable. Usually the data layer is not. We document what the system is supposed to do versus what it actually does — because those are almost never the same thing.

Weeks 3–5: Rebuild the foundation

Replace the database interactions with a real data access layer. Add error handling that actually handles errors. Put in a deployment pipeline with a staging environment. Strip ghost dependencies. Split the god components.

None of this is glamorous. None of it goes in a launch tweet. It's the invisible work that makes everything else possible.

Weeks 6–8: Build what was always the point

Now that the foundation holds, we add the features the founder actually needed at week 1. It takes 2 weeks instead of the 11 weeks they spent prompting. Because the foundation holds.


What actually breaks at user 50 📊

Three failure modes, in order of how often we see them:

  1. Concurrent session failures. The app was tested by one person at a time. The state management was never built for concurrent access. The first time two users hit the same endpoint simultaneously, data gets corrupted.

  2. Query performance cliffs. The database queries that worked at 100 rows don't work at 100,000. No indexes were added because nobody told the AI to add them. The app goes from fast to unusable overnight.

  3. Auth edge cases. The happy path works. Expired token path doesn't. "User on two devices" doesn't. "User changes their email" definitely doesn't. These aren't hard problems. Nobody prompted for them.

None of these are AI problems. They are planning problems. The AI would have handled them correctly if someone had thought to ask.


A different way to think about AI in development 🤖

Here's what I actually believe, and I want to be precise because the discourse is sloppy in both directions.

AI coding tools are extraordinary for:

  • Generating boilerplate fast
  • Prototyping an idea to see if it's worth pursuing
  • Writing tests for code you've already designed
  • Filling in implementations when the architecture is already decided

AI coding tools are bad for:

  • Making architectural decisions
  • Understanding the consequences of a change across a system
  • Knowing when NOT to add something
  • Caring about what the codebase looks like in 6 months

The mistake is not using AI to write code. The mistake is using AI to make decisions that require judgment about the future state of the system.

The best developers I know use AI constantly. They use it to write fast. They don't use it to think.


The honest version of this advice 💬

If you're a developer working with a non-technical founder, the most valuable thing you can do is not write faster code.

It's to have the conversation about what "done" actually means before you start.

A prototype that proves the idea is done when it runs once and looks right.

A product that real users depend on is done when it fails gracefully, recovers automatically, can be understood by the next developer who touches it, and doesn't require the person who built it to be on call forever.

Those are different things. They require different approaches. Knowing the difference — and being able to explain it to someone paying you to move fast — that's the job.


Where the discourse goes wrong 🎯

People say "vibe coding is bad" as a moral statement about shortcuts. That's not what I mean.

Vibe coding is a tool. An excellent tool for what it's designed for. The problem is the mismatch between what the tool produces and what the founder believes they have when the demo works.

A founder who uses Bolt to validate an idea in a weekend is making a smart decision.

A founder who runs their first 200 paying users on that weekend prototype is making an expensive one.

The developer's job — the human in the loop — is to know which situation you're in, and build accordingly.


We run saro — an AI development agency for US startup founders who tried Bolt, Lovable, or Cursor and hit a wall. We rescue vibe-coded MVPs, build custom AI agents, and ship production-ready products. If you've got a broken codebase or want something built right the first time: shoparonline.com


If you've pulled apart a vibe-coded codebase — what was the worst thing you found? And how did you decide what to keep vs tear out entirely? Drop it in the comments.