---
title: "A Deep Look at the Limits of Vibe Coding"
description: "An in-depth look at seven limits of Vibe Coding, with concrete examples and practical insights to help developers better understand the current state and challenges of AI-assisted coding."
canonical_url: "https://blog.markkulab.net/en/post/vibe-coding-limitations"
author: "Mark Ku"
author_url: "https://blog.markkulab.net/en/author/mark-ku"
site: "Mark Ku's Tech Notes"
date_published: "2025-08-06 06:01:00 +0800"
category: "AI"
tags: ["ai", "vibe coding", "cursor", "copilot", "software engineering", "productivity"]
language: "en"
license: "CC BY 4.0"
license_url: "https://creativecommons.org/licenses/by/4.0/"
attribution: "when reusing or quoting, credit the author and link back to the original"
---

# A Deep Look at the Limits of Vibe Coding

## The rise and challenges of Vibe Coding

As AI coding tools become widespread, many developers are trying "Vibe coding" — giving the AI a brief description or direction and letting it auto-generate code. While this can produce new code quickly, real-world project development reveals plenty of limits.

**The core idea of Vibe coding** is describing requirements in natural language and having AI auto-generate the matching code. This approach is genuinely useful for prototypes and quickly validating ideas, but it tends to hit various challenges in complex enterprise-grade projects.

## 1️⃣ Layering features on existing complexity is hard

AI can quickly produce new modules, but problems surface when integrating new features into an already-complex system.

### Concrete example: shopping-cart discount feature

**The issue:**
- AI didn't account for membership-tier discount rules
- Ignored special discounts by product category
- Didn't handle the discount cap


## 2️⃣ For obscure or complex new problems, AI often can't answer

AI's capabilities depend on its training data. When a problem is obscure or involves entirely new concepts, AI often can't provide a complete solution.


## 3️⃣ Limited "brain capacity" (Context) — hard to handle huge projects

Even powerful AI has context limits — only so much code can be "remembered" at once. Beyond that, full understanding falls apart.

### Concrete example: large e-commerce site

**Real problem:**
- AI only sees code snippets in the current conversation
- Can't understand complex inter-module dependencies
- Lacks awareness of overall architecture

## 4️⃣ Insufficient "association" when implementing complex features — easy to "fix A, break B"

AI still falls short on understanding internal system dependencies — it lacks the intuition human engineers build through experience.

### Concrete example: changing a price-calculation function

**Consequences:**
- Price calculation is correct, but sales-report data is incomplete
- Statistics reports show errors
- Sales data can't be tracked

## 5️⃣ Memory deficits — hard to reuse approaches it has been taught

AI can learn instructions within a single conversation, but lacks long-term memory — so it can't reuse past solutions.

### Concrete example: array sorting

**When asked a similar request today, AI might forget entirely and produce a less efficient version.**

## 6️⃣ Quality wobbles when switching models

In many dev environments, people write part of the code with a higher-tier model (e.g., GPT-4.5), then switch to a cheaper model to save cost — and code quality drops sharply.

### Concrete example: user registration

**Issues that may arise during low-tier-model maintenance: simplified versions, missing important checks**

## 7️⃣ Inconsistent style and design

Unless you explicitly tell the AI which architectural principles and naming rules to follow, every output may have different style.

### Concrete example: login feature

**Second time: class-based design — completely different style version**

## Many of the above can be mitigated with Cursor and Copilot guidelines

### 1. Cursor usage guide

Cursor, an AI-based code editor, can dramatically boost dev efficiency — but you need the right strategy.

#### Set up a project context file

**Location:** project root  
**Filename:** `.cursorrules`

**Steps:**
1. Create `.cursorrules` at the project root
2. Copy a template above and adapt to your project's needs
3. Save — Cursor automatically reads and applies these settings

#### Effective Cursor prompting tips

### 2. GitHub Copilot usage guide

GitHub Copilot, a code-completion tool, provides real-time suggestions — but needs the right configuration.

#### Set up a Copilot config file

**Location:** `.copilot` folder at the project root  
**Filename:** `settings.json`

**Steps:**
1. Create `.copilot` at the project root
2. Inside `.copilot`, create `settings.json`
3. Copy a template above and adapt to your project's needs
4. Save — Copilot automatically reads and applies these settings

#### Project file structure summary

**Important reminders:**
- `.cursorrules` and the `.copilot` folder should be checked into version control
- These files affect AI tool behavior for everyone on the team
- Recommend standardizing the format and content across the team

#### Copilot best practices

### 3. Integrated usage strategy

#### Build a development workflow

**Example usage:**
1. Use Cursor for design:
   - Describe feature requirements
   - Provide code context
   - Specify architectural patterns

2. Use Copilot for implementation:
   - Write code in files
   - Use comments to guide
   - Accept or reject suggestions

3. Use Cursor for optimization:
   - Refactor code
   - Add tests
   - Ensure quality

#### Common issue solutions

## Conclusion

While Vibe coding can quickly generate code and accelerate prototyping, AI still can't fully replace engineers when facing large projects, complex logic, and long-term maintenance. Human engineers can grasp the entire system architecture, have long-term memory, solve unknown problems, and ensure consistent code style — none of which AI fully matches today.

By using AI tools like Cursor and Copilot correctly, developers can dramatically boost efficiency. The key is establishing a sound strategy and workflow that turns AI into a capable assistant — not a substitute you completely depend on.

---

## About this article and its author

Originally published on [Mark Ku's Tech Notes](https://blog.markkulab.net/en/post/vibe-coding-limitations)

License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) — when reusing or quoting, credit the author and link back to the original

### About the author

**[Mark Ku](https://blog.markkulab.net/en/author/mark-ku)** — Software Solution Provider

- 10+ years senior software engineer, now an AI Builder
- Focused on large-platform architecture — North-American e-commerce, AI SaaS subscription billing
- Combining AI Agents and automation to build evolvable product foundations

### Free tools built by the author

All of these are free to use:

- [Free PDF Sign Tool](https://blog.markkulab.net/en/tools/pdf-sign): Online PDF sign tool — draw, type, or upload a signature, then drag, resize, and download. Everything runs in your browser; nothing is uploaded.
- [VS Code Refactory](https://blog.markkulab.net/en/tools/refactory): Refactory is a VS Code refactoring extension: 34 actions plus a 37-rule code-smell inspection layer with a Code Health dashboard, across 18 languages, backed by 534 tests. It learns your repo's conventions: where interfaces live, where DI is registered, whether 'use client' belongs. It ranks files by git churn × complexity so you know what to fix first, and hands any smell to the Claude Code already on your machine. Free to use, and your source never leaves your computer.
- [DB-Kit Database Manager](https://blog.markkulab.net/en/tools/db-kit): DB-Kit is a lightweight, cross-platform database manager built with Tauri + Rust + React. Manage MySQL, MariaDB, PostgreSQL, SQL Server, Oracle, SQLite, MongoDB, Redis, Kafka, Elasticsearch and RabbitMQ from one consistent interface: passwords encrypted in the OS keychain, SSH tunnels, full CRUD, a visual query builder, stacked multi-statement result sets, cross-connection data transfer and compare/sync, Excel / CSV import & export, visualized execution plans, ER diagrams, scheduled backups, SQL stress testing with p50–p99 latency percentiles, a 15-rule SQL review engine, Kafka message browsing with monitoring & alerts, a bilingual UI (Traditional Chinese / English), a built-in AI assistant (natural-language SQL, AI review and tuning advice) and the dbk CLI. Free and open source (MIT), with installers for Windows, macOS and Linux.
- [VS Code Super Mermaid](https://blog.markkulab.net/en/tools/super-mermaid): Super Mermaid is a VS Code extension for beautiful Mermaid diagrams out of the box: auto-colored live preview, mouse pan & zoom, high-res PNG / SVG export, 21 templates and multiple themes. Free and open source (MIT).
- [React Super Mermaid](https://blog.markkulab.net/en/tools/react-super-mermaid): react-super-mermaid is an open-source React component library: render beautiful Mermaid diagrams with a single <MermaidViewer>, with built-in colorful / sketch themes, pan & zoom, in-diagram search, and high-res SVG / PNG export. Lightweight, SSR-safe, fully typed. Free and open source (MIT).
- [Jira / Confluence Super Mermaid](https://blog.markkulab.net/en/tools/jira-super-mermaid): An Atlassian Forge app: write Mermaid syntax directly inside a Jira issue or a Confluence page and get flowcharts, sequence diagrams, state machines and Gantt charts. 11 diagram types, SVG / PNG export, light and dark themes, full CJK support. Runs on Atlassian: your diagrams live in your own site and the app calls no third-party service. Free, coming soon to the Atlassian Marketplace.
- [Mermaid Live Preview](https://blog.markkulab.net/en/tools/mermaid-preview): Write Mermaid in your browser, see it render instantly, and share the whole diagram as a single link. No sign-up, nothing uploaded to a server, and mermaid.live share links work as-is.
- [React Intl Phone Number](https://blog.markkulab.net/en/tools/react-intl-phone-number): react-intl-phone-number is an open-source React component: framework-agnostic and antd-free, with E.164 in/out, a searchable flag / country-code dropdown, configurable validation levels (strict / mobile-strict / loose), themeable CSS, and i18n — phone logic powered by google-libphonenumber. Lightweight and fully typed. Free and open source (MIT).
- [Uptime Kuma Cluster](https://blog.markkulab.net/en/tools/uptime-kuma-cluster): Turn single-node Uptime Kuma into a highly available cluster: OpenResty + Lua smart load balancing, shared MariaDB state, health checks and automatic failover, plus cluster-management REST APIs. One Docker Compose command to start. Free and open source (MIT).
- [Special Education](https://blog.markkulab.net/en/education): Learning materials crafted for special education students

### Daily podcasts

- [Mark's Tech Insights — Daily AI News](https://blog.markkulab.net/en/category/tech-news): Daily curated AI and tech trends. Catch the latest developments via audio summaries — covering AI applications, software architecture, DevOps, and engineering practice. — RSS: https://blog.markkulab.net/feed.xml
- [AI股市蝦聊](https://blog.markkulab.net/en/category/ai-stock-chat): Every trading day, an AI-analyzed take on the Taiwan stock market, delivered as a two-host conversation covering the session and the next-day outlook. — RSS: https://blog.markkulab.net/ai-stock-chat/feed.xml
- [開源好物週報](https://blog.markkulab.net/en/category/open-source-weekly): A weekly two-host pick of free open-source tools surfaced from real Hacker News, GitHub, and Reddit buzz — what pain they solve and the fastest way to get started. — RSS: https://blog.markkulab.net/open-source-weekly/feed.xml

### Newsletter

[Subscribe to the newsletter](https://blog.markkulab.net/en/subscribe) — Be the first to know about new posts. No spam, unsubscribe anytime.
