At the end of 2025, a discussion went viral in the Japanese dev community about how “the AI Agent era is actually exhausting.” I felt a profound sense of agreement. While the title of this article might seem to suggest the opposite, by the end, you’ll understand why I find this new era so incredibly taxing.
This is the story of how I leveraged AI agents to release “dumppp,” a native iOS Notion client, without reading a single line of logic.
Note: For the sake of this article, I refer to the process of coding via AI without deep reading as “Vibe Coding.”
The “Pain” of Being an Orchestrator
“AI will build the app for you.” A few years ago, we would have dreamed of such a sci-fi world and rejoiced. But now that that world has arrived, how does it feel?
To be honest: It is exhausting.
When AI agents act as the “developers” cranking out code at lightning speed, the human is forced into the role of the “Orchestrator” with 100% of the responsibility. “The AI wrote it, so I don’t know” doesn’t fly. Even if you don’t read the code, the responsibility for behavior, contradictions in specifications, and the quality of user experience all fall back on the human. Maintaining the “purity of decision-making” requires more mental stamina than I ever imagined.
The “Self-Imposed Constraints”: Pushing the Experiment
I didn’t want to give up on the sci-fi dream. I believed that by completing a high-difficulty project like releasing an iOS app, I could grasp the true nature of this exhaustion and see what lies beyond. So, for the development of “dumppp,” I set a grand constraint:
“Do not read the code.”
While I might glance at build errors, I fundamentally abandoned any attempt to understand the implementation details. Why? Because I wanted to experiment with how far AI could be treated as an “autonomous implementer” rather than just a completion tool. While “Vibe Coding,” I poured all my resources into:
-
Requirements Definition (What problem are we solving?)
-
Marketing (How do we spread the word?)
-
Monetization Strategy (How do we make it sustainable?)
-
UX Validation (Does it actually feel good to use?)
I also decided to build it as a native iOS app using Swift. While I could have chosen cross-platform frameworks, I insisted on using native APIs to their fullest to maximize UX. In this experiment, the increased difficulty of native development was part of the fun.
The Pros of Total Vibe Coding
The benefits I discovered are overwhelming:
-
A One-Person “Team”: I focused on being the Product Owner/Orchestrator, while the AI acted as the Dev team. This clear division of labor allowed for massive parallelization.
-
Building with Unknown Tech: OAuth, Notion API, StoreKit 2 (Subscriptions), AppIntents, and SwiftUI. I implemented all of these through dialogue with AI without ever opening a reference manual.
-
Hyper-Fast Globalization: Support for 6 languages (JP, EN, CN, FR, DE). Letting the AI handle everything from translation to implementation took only minutes. Implementing three new languages while I was taking a bath felt like magic.
The Cons: The Core of the Exhaustion
This is where the true “pain” lies:
-
The Hell Beyond “Good Enough”: AI can get you to 60% with incredible speed. But reaching the 80%+ “production-ready” quality—fixing micro-UI glitches that only happen under specific conditions or resolving offline sync inconsistencies—is where the debt of not reading the code comes due.
-
The 4,000-Line “Fat File” Problem: Without strict rules, letting the AI handle everything leads to poor file separation. I ended up with massive files of up to 4,000 lines. The AI itself began to lose track of the big picture, and every fix triggered a storm of regressions.
-
The Trap of Quality Assurance: You think “It works!”, but edge-case bugs keep popping up. Retrying with the AI over and over, only to have it repeat the same mistake because my intent didn’t land, brings a unique kind of mental fatigue—different from the fatigue of writing code.
The Solution: SDD (Specification Driven Development)
To survive this chaos, I arrived at SDD using SpecKit. https://github.com/github/spec-kit
-
AI Generates Specs: Before writing code, I had the AI write detailed Markdown specifications.
-
Human Reviews/Approves: I scrutinized the specs, discussed them with another AI, and finally gave the “OK.”
-
Implementation via Claude Code: The approved spec became the “Single Source of Truth” for the AI to implement.
This almost entirely solved the problem of the AI “hallucinating” its own logic. As long as the human holds the “Spec,” the fluctuations of Vibe Coding are drastically reduced.
I also built a mobile-optimized DX:
-
GitHub Issues & Actions: Creating an issue from my iPhone triggers Claude Code on GitHub Actions to automatically create PRs for both specs and code. I can develop without ever touching a terminal.
-
Development Anywhere: This environment allowed me to refine specs and implementation during bus rides, in the bath, or in bed.
-
The Backpack Deploy Machine: For physical device deployment, I kept a MacBook in my backpack connected via tethering and used Tailscale for remote access. I solved the build process with brute force using Termius.
Leveraging AI Beyond Code
I used AI for everything, including marketing. The most interesting hack was using NotebookLM to turn my specs into a Podcast. By listening to an AI-generated discussion of my own strategies while doing dishes or laundry, I could spot logic holes or flawed monetization plans from a “third-party” perspective. Sometimes I’d even ask it to just “praise this project to the moon” to recover my motivation (lol).
Conclusion
Vibe Coding an iOS app taught me about the incredible potential of AI development. But it doesn’t mean “life gets easy.”
The pain of reading and writing code has simply shifted to the pain of scrutinizing specifications and making constant decisions.
However, productivity has been elevated to a level beyond mere “efficiency.” I could spend more time on things outside of development. While I know the joy of being an engineer who writes code, I believe AI-driven development is the joy of a new era. It’s natural to feel “allergic” to breaking one’s own role, and there are countless times I wanted to just write the code myself.
Through this experience, I’ve realized that the path forward is to treat AI not just as a tool, but as a “partner,” and for the human to maintain the discipline of a “Conductor.”
Start by writing your AI agent rules and specifications with care. Beyond that, a landscape you could never have reached alone is waiting for you.
Check out the result of this experiment here:
