I built my first landing page in a visual AI builder in about four minutes. Working. Deployed. Done. I genuinely thought I'd found the future.

Three days later I tried to build something with a backend. A product with authentication, a database, environment variables, a background job that needed to run on a schedule. The visual builder froze on me twice, lost my changes once, and generated code that worked in the preview pane but broke the moment I deployed it. The backend it produced had the auth middleware talking to the wrong database table. I spent more time debugging the generated output than it would have taken to describe the whole thing from scratch.

I wasn't angry at the tool. It did exactly what it was designed to do. I was just past the edge of what it was designed for.

That was the week I opened a terminal and didn't go back.

Cursor Was the Bridge

Cursor was my first AI tool. I typed "Build me Pac-Man" into it and a working game appeared. I owe everything to that moment. But Cursor is still a visual editor at its core - a really good one, but it shows you one file at a time and expects you to navigate a project the way a developer would.

After Pac-Man I tried the browser-based builders. Bolt, Lovable, v0. For single-page projects they are genuinely remarkable. I have nothing bad to say about them for the problem they solve.

But the problem they solve has boundaries. I found the boundary the same week I tried to connect a frontend to a real backend for the first time. The visual builder couldn't see the relationship between my API routes, my database schema, and my auth middleware because it was looking at one file while the bug lived in the space between three files. In the terminal, the model sees the whole codebase at once. The bug was obvious.

What Pushed Me Over

The thing that actually made me commit to the terminal wasn't a single frustration. It was the third time I started a project from scratch.

I'd built something in a visual builder, shipped it, then wanted to add a background process. The builder couldn't help me. So I rebuilt it in the terminal. Worked perfectly. Then the next project - same pattern. Build the front in a GUI, hit a wall, rebuild in the CLI. The third time that happened I stopped starting in the visual builder entirely.

The first hour in a GUI is better than the first hour in a terminal. That's not debatable. The visual feedback is immediate, the learning curve is gentle, and you feel productive from the first prompt. My Pac-Man moment in Cursor was exactly that kind of magic.

But by the hundredth hour, the gap reverses. The GUI builder gives you the same experience at hour one hundred that it gave you at hour one. It doesn't grow. The terminal system compounds. Scripts automate deployment. Workflows chain tasks. A model router manages costs. Memory persists context across sessions. The environment evolves into something the visual builder was never designed to become.

What It Actually Looks Like Now

My entire operation runs from text commands. Claude Code is the backbone - it reads the codebase, understands the relationships between files, and operates directly on the file system. No copy-pasting between browser tabs.

A model router sits on top, distributing work across Claude, Gemini, Ollama, and Codex based on what each task needs. I don't switch models manually anymore. I haven't in months.

A background process called the brain loop runs constantly - checks for work, dispatches it, handles failures. Research pipelines run overnight. Content systems draft and queue posts. Workflows trigger without me touching anything.

Is it ugly? Absolutely. Monospaced text on a black screen for hours. No satisfying snap of a component dropping into place. No preview pane updating in real time.

But I woke up this morning to find the system had triaged community mentions, drafted engagement replies, and queued content for four platforms. While I slept. That's not something a visual builder can do. Not because the technology isn't there. Because the architecture of a sandboxed browser tab doesn't allow for a system that grows beyond itself.

The Honest Caveat

If you're building one app - a landing page, a portfolio, a prototype for a pitch - use the visual builders. Seriously. You'll ship faster than I will and the result will look better. Those tools are built for exactly that workflow.

This is for people who have started to feel the ceiling. People building their third or fourth product and noticing they start from scratch each time. People who want the fifteenth build to be faster than the first, not the same speed with different colours.

The terminal isn't better in some abstract sense. It's just the only place where the ceiling doesn't exist.

If you want the full story of how I got here, it started with building Pac-Man in Cursor and hitting the ceiling within a week. And if you're wondering what happens when you vibe code without a pipeline around it - I shipped a white screen to my phone. That one taught me a lot.