Ibrahim Diallo wanted a simple media manager for his blog. He'd been putting it off for 11 years, using scp and sftp to upload images like a caveman. So he handed the job to GLM-5 from z.ai. Twelve minutes later, he had roughly 5,000 lines of PHP. Ten hours after that, he finally had something he could maintain: 1,254 lines spread across a clean project structure.
The AI's output was classic spaghetti. HTML, CSS, SQL queries, and business logic crammed into the same files. Diallo noticed the model was actively fighting its own bias toward Next.js, with its thinking process explicitly noting "This is NOT a Next.js project" after trying to scaffold one anyway. He had to strip out Node.js code the model generated despite clear instructions. Basic stuff was broken too. SQLite ran in read-only mode because the parent folder lacked write permissions, a detail the AI missed. PHP session handling was broken because session_start() was absent from the login flow. Include paths were wrong across the board.
Hacker News commenters largely agreed with Diallo's assessment, warning against deploying vibecoded applications and suggesting AI works best for small iterative improvements rather than full project generation.
Without AI, Diallo admits he'd still be putting the project off. But the experience reinforced his long-held rule: you need a mental model of how your application works. If you can't understand the code, you can't fix it when it breaks. He ended up restructuring everything into a proper MVC-like setup with separate controllers, models, templates, and libraries. More files, but far less cognitive load to ensure the project remains maintainable in the long run.