nav
22.12.2025

AI can't code your app

Dimitar Stoev

Co-founder | Software Engineer

I'm a passionate open source enthusiast and business lover, on a mission to create tools that
help businesses of all sizes thrive.

By the time the demo works, the real work is already overdue.

The demo illusion

Silicon Valley loves a good demo, and AI-generated apps make for excellent theater. A prompt goes in, a login screen appears, and a database connection looks alive enough for a screenshot. For a reader skimming headlines, it feels like software creation has collapsed into a chat box. That impression is powerful, and it is also misleading.

What matters is not whether an app runs once, but whether it survives contact with users, payments, edge cases, and time. Real products carry state, history, and obligations that pile up quickly. AI tools tend to gloss over that reality, producing something that looks finished while quietly deferring the hardest decisions. This gap between appearance and durability is where most AI-coded projects start to fail.

The danger is not that AI writes bad code every time. The danger is that it writes plausible code that hides future costs. When founders realize this, they are often already committed to a path that is expensive to reverse. At that point, the demo has done its job, but the product has not.

Code is the easy part, context is the product

Software is rarely just a pile of functions that happen to work together. It is a frozen set of business decisions expressed in logic, constraints, and tradeoffs. Humans argue over those decisions in meetings, docs, and pull requests long before they harden into code. AI has no access to that lived context.

Business logic is messy by nature. Pricing rules change because sales promised something unusual, compliance rules change because regulators notice you, and performance targets change because users behave differently than expected. An AI model can follow instructions, but it does not understand why those rules exist or which ones are safe to bend. That lack of understanding shows up later as brittle systems.

This matters because optimization is inseparable from intent. Knowing what to cache, what to precompute, or what to delay depends on how the business actually makes money. Without that understanding, AI tends to generate generic patterns that feel reasonable but waste resources. The result is software that works, but never works well.

Why serious developers avoid AI-first codebases

Professional developers inherit code more often than they write it from scratch. When they open a repository, they look for signals of intent: naming, structure, comments, and tradeoffs that suggest someone thought about the future. AI-generated code often lacks those signals, even when it passes tests. That absence creates immediate distrust.

Maintaining such a codebase means reverse-engineering decisions that were never consciously made. Developers have to guess why something exists, whether it is safe to remove, and how many hidden assumptions are baked in. This is slower than writing new code and far riskier. In many cases, teams choose to rewrite rather than repair.

That choice has financial consequences. Rewriting means paying twice for the same functionality, once to generate it quickly and again to make it maintainable. The short-term savings disappear, replaced by long-term cost and frustration. AI shifted it to a more painful phase.

The tooling hype versus operational reality

The market is full of products promising full app generation from prompts, diagrams, or conversations. They look impressive in marketing videos and investor decks. In practice, they tend to collapse under real operational pressure. Production systems demand monitoring, migrations, incident response, and disciplined change management.

Here is a non-exhaustive list of tools often cited in this space:

These tools can be useful as assistants, but they are sold as replacements. That distinction matters. An assistant speeds up known work, while a replacement claims to remove the need for understanding. The latter promise breaks down the moment something unexpected happens.

Operations is where software proves its worth. Deployments fail, data needs correction, and customers demand answers quickly. AI-generated systems tend to lack the observability and structure needed for those moments. When something breaks, there is no mental model to fall back on, only output to inspect.

The slop problem and the cost of cleaning it up

Large language models are optimized to produce convincing output, not minimal or precise output. That bias shows up as excess code, unnecessary abstractions, and copied patterns that solve problems you do not have. This is often called slop, and it accumulates fast. Each extra layer makes future changes harder.

Cleaning this up requires judgment. Someone has to decide what is essential and what is noise. That work cannot be automated away because it depends on understanding the product’s direction. AI can suggest deletions, but it cannot take responsibility for them.

This is why the cleanup phase often takes longer than the initial build. Teams realize they are fighting against their own foundation. The code technically works, but every modification feels dangerous. At that stage, the promise of speed has already expired.

Why this matters for founders and teams

For early-stage founders, time feels more valuable than structure. Shipping fast can mean survival, and AI tools seem aligned with that pressure. The problem is that early decisions shape everything that follows. A weak foundation limits hiring, slows iteration, and scares off experienced engineers.

Teams built around AI-generated code often struggle to grow. New hires spend weeks understanding artifacts instead of solving user problems. Velocity drops, morale suffers, and technical debt becomes a standing agenda item. These are organizational costs, not just technical ones.

The larger point is that software is a long game. Shortcuts taken at the beginning echo for years. AI can help with drafts, experiments, and exploration, but treating it as the primary author is a strategic mistake. The cost shows up later, when it is hardest to change course.

Conclusion

The claim that AI can replace software developers makes for great headlines, but weak products. Real applications live at the intersection of technology, business, and human behavior. That intersection demands understanding, accountability, and taste. Those qualities do not emerge from probability alone.

AI will continue to improve, and it will remain a powerful tool inside development workflows. It will write snippets, suggest fixes, and accelerate routine tasks. What it will not do is own the consequences of architectural decisions. That responsibility stays with humans.

For founders, developers, and investors searching for clarity, the takeaway is simple. Use AI as leverage, not as a crutch. Apps built without deep understanding end up costing more, taking longer, and failing harder. In serious software, there are no shortcuts, only tradeoffs that someone must consciously choose.

Latest Content