I'm going back to writing code by hand
After seven months of "vibe-coding" with AI, the author discovers their project's codebase is an unmaintainable mess, leading to a crucial pivot. They're now advocating for human-driven architectural design before AI code generation, transforming AI into an implementation assistant rather than an autonomous architect. This story resonates on HN by addressing the complex, evolving relationship between developers and AI, highlighting the enduring value of human oversight in software creation.
The Lowdown
The author recounts their journey with "vibe-coding," using AI to generate code for a project over seven months without deeply reviewing the output. This approach ultimately led to an unmanageable codebase plagued by poor architectural decisions, implicit dependencies, and refactoring difficulties that even AI couldn't resolve without breaking functionality.
- After 7 months of relying on AI for code generation, the author discovered significant architectural flaws and unmanageability in the project.
- Initial attempts to use AI to refactor the messy codebase failed, often breaking existing functionality and exhausting daily usage limits of the AI model.
- The author attributes these issues to a lack of upfront human design, where AI was expected to make coherent structural decisions across numerous sessions.
- As a solution, the author is restarting the project in Rust (chosen for its strictness and the author's familiarity, allowing for intuitive error detection) and, crucially, committing to doing all design work by hand before any code is written.
- This new strategy involves creating concrete interfaces, message types, and ownership rules to guide the AI, effectively shifting AI's role from autonomous code generator to an implementer of a human-designed architecture.
The core lesson learned is that while AI can be a powerful tool for code generation, it currently lacks the strategic foresight and architectural discernment of a human, necessitating a return to foundational design principles to build robust and maintainable software.
The Gossip
Clarifying Code Craftsmanship
Many commenters debated the literal meaning of the title, noting the author isn't abandoning AI entirely but rather shifting to a human-led architectural design phase before AI implementation. They discussed the efficiency and true nature of AI-assisted coding versus traditional manual approaches, questioning whether the new method truly saves time if thorough human design and verification are still required.
Architectural Acumen with AI
There was broad agreement that for complex projects, human expertise in architectural design remains paramount. Commenters emphasized that AI, while capable of generating code, requires a clear, well-defined blueprint from a human to avoid "vibe-coding" pitfalls and produce maintainable systems. The consensus is that AI serves best as an implementation tool guided by a human architect.
The Evolution of AI's Engineering Eye
Several users posited that AI models have significantly improved in the past 7 months, suggesting that current tools might be better at identifying architectural flaws or assisting in refactoring. This raised questions about whether the author's initial negative experience was partly due to earlier AI limitations and if modern AI could have handled the situation differently.
AI's Authorship Anomaly
A self-referential and ironic thread emerged, with some commenters speculating whether the blog post itself was generated by an AI. This discussion, often humorous, highlighted the pervasive influence and subtle stylistic traits of large language models, leading to a meta-commentary on AI's presence in contemporary writing.