I Used AI to Build My Startup. Here’s What I Learned.

I used both Cursor and Google Antigravity to build a business. Six months of late-night error messages taught me a lesson I didn't expect.

Written by Richard Ewing
Published on Aug. 18, 2026
A woman looks frustrated at a computer
Image: Shutterstock / Built In
Brand Studio Logo
REVIEWED BY
Summary: Transitioning from Cursor to Google Antigravity, I found that unconstrained AI coding tools broke complex codebases and inflated token costs. Applying strict root rules, step-by-step execution and proper software architecture proved essential for building reliable apps.

I asked Cursor to fix a simple login form. 10 seconds later, my login button turned green, but my database didn’t.

The AI assistant had quietly rewritten my backend queries, invented a column name that didn’t exist in my schema and broken three API routes.

That was the afternoon I realized my honeymoon with AI coding tools was over. In late 2025, I was telling anyone who would listen that software development was about to become effortless. I was trying to build multiple AI products at once, prompting models inside Cursor, and watching working UI pop up on my screen in seconds. Buttons showed up, styling worked and basic API endpoints autocompleted cleanly. It felt like cheating, and I even caught myself wondering if I’d ever write boilerplate syntax by hand again.

Then my apps grew.

Once I added real database schemas, user permissions and state logic across multiple folders, the AI started tripping over itself. It would fix a small bug in a front-end form while quietly breaking a shared helper script three directories away. More than once, I watched it fix an error by replacing working code with API calls that hadn’t existed for months.

As the assistant repeatedly lost track of earlier edits within my workflow, every late-night session turned into an endless cycle of recursive fixes. It would introduce a bug, try to fix it and create two new ones in the process, leaving me stuck in loops asking it to fix the exact same errors all through the night.

Worst of all was the hidden financial cost. As the assistant lost context and spun in circles, my token usage skyrocketed. I burned through my included tokens and had to purchase extra token overages just to feed the model’s recursive error loops. I was spending real money on products that looked great visually in a sandbox, but were completely non-functional behind the scenes.

Instead of shipping features, I was spending two hours a night reading git diffs, auditing hallucinations and reverting three or four broken commits. I felt less like a founder building a product and more like an exhausted QA tester funding an overzealous intern.

That frustrating wall forced me through a complete workflow evolution. It also taught me something leaderboard benchmarks never show: Every AI coding tool was built to write syntax fast, but what I actually needed was a reliable way to ship a working product.

How to Build Production-Ready Apps With AI Coding Tools

  • Enforce strict root rules: Use tools like Google Antigravity to set nonnegotiable project rules, such as mandatory TypeScript types and Zod validation.
  • Scope tasks tightly: Avoid letting AI make unconstrained multi-file edits; keep changes focused on small, single-file steps.
  • Run continuous checks: Execute automated terminal type checks after every single edit to catch errors immediately.
  • Separate architecture from generation: Treat the AI model as a single component for text generation while relying on a system runtime engine to enforce state and rules.

More From Richard EwingFable 5 vs. GPT-5.6 Sol: Which Model Is Better?

 

Cursor Thrives in a Sandbox but Stumbles Outside One 

Cursor was fantastic when my app fit comfortably inside a handful of files. The inline edits and sidebar model switching make greenfield prototyping feel lightning fast, so if you’re building a landing page, scaffolding a simple UI component or drafting a standalone script, it feels like magic.

The problem starts when your application leaves a single directory sandbox. In my experience, Cursor performed best when the task stayed close to the current file and recent conversation context. As the codebase grew into nested routes and database handlers, I spent more time reviewing changes outside the original request than writing new features.

I watched a simple one-line CSS styling request turn into a fourteen-file git diff. The tool was rewriting working backend logic, modifying database connection strings and altering imports across the project just to fix a visual alignment issue on the screen. Generating lines of syntax was easy, but keeping my database intact across 50 files was where the inline assistant completely stalled out.

Cursor may have patched some of these context and token efficiency issues since late 2025, but the financial burn and operational friction were severe enough that trust was permanently broken. Once a tool eats your budget on broken recursive loops, you don’t look back.

 

Google Antigravity and the Power of Strict Rules

To stop AI tools from wandering around my codebase and burning tokens on hallucinated fixes, I moved my setup to Google Antigravity.

The biggest change wasn’t the underlying model. It was that I stopped giving the AI unlimited freedom, and suddenly every task had strict boundaries.

Antigravity uses static root rule files paired with step-by-step execution. I set nonnegotiable rules at the top level of my project: strict TypeScript types, required Zod validation schemas, required error wrappers and zero edits to database migration files without explicit approval.

In my workflow, those recursive bug loops and context drops became far less common. Edits became predictable, git diffs stayed under twenty lines and unexpected code breakages became far less common.

The catch is that working this way takes real discipline. You can’t just type “build my auth system” into a chat window and watch a miracle happen. You have to break every requirement down into small, single-file steps and run type checks in the terminal after every edit. The AI stops acting like a magical co-founder and starts acting like a fast, obedient junior developer who needs clear directions and constant supervision.

 

Models Generate Possibilities, but Products Need Systems

After months of refining my workflow, I stepped back. Looking back, I realized I had been evaluating AI tools purely like a developer trying to type syntax faster. As a product manager, I should have been asking a completely different question: not how fast it can generate code, but how fast this can help me ship reliable software.

Every AI tool on the market was built to generate code, but none of them were designed to own product state or be the system itself.

It’s easy to believe a larger context window or a better prompt will solve these problems. We’re constantly told that if we just feed the model more tokens, it will understand our entire business logic, but language models make guesses based on probabilities while production software needs absolute rules.

Eventually I realized the AI wasn’t making bad decisions because it was dumb. It was making bad decisions because I had asked it to do a job it was never designed to do: act as the software architect.

 

Building the Missing Piece

That realization changed the way I build software. It eventually became the architecture I use today. I stopped treating the model as the application and started treating it as one component inside a larger system. I built a runtime engine called Exogram.ai that sits between the model and my application, enforcing the rules the model shouldn’t have to decide on.

CareerWin.ai became the first production application I built on top of this system. On previous builds without this layer, setting up authentication, user state, database rules and API limits consumed weeks before I could even touch core product features.

Using Google Antigravity alongside Exogram as the underlying runtime engine, the experience was completely different. Setting up security rules, state checks, and safety gates no longer resulted in broken routes or runaway token costs. With the underlying system handling state checks and execution boundaries, I was able to focus on building a better user experience. The AI handled text generation, but the system handled the rules.

 

How to Use AI Tools Today

If I were starting another product tomorrow, I wouldn’t split my workflow across different tools. Today, Google Antigravity is the foundation of my development workflow. Once you experience governed execution and static root rules from day one, going back to unconstrained chat windows feels like driving without a seatbelt. Cursor was an interesting entry point for quick visual mockups, but for building real, production-ready products, governed execution is my non-negotiable standard.

Here is what actually works in practice:

For Solo Builders

Don’t wait until your codebase gets complex to enforce rules. Use Google Antigravity from day one with strict root rule files and clear TypeScript types. Never let an AI touch multiple files at once without running automated type checks after every single step.

For Team Leads

Keep AI tasks small and tightly scoped. The biggest mistake teams make is letting AI assistants dump massive pull requests into review queues where nobody has time to read them. Make automated testing and type checks mandatory before any AI-generated code gets merged.

For Tech Leaders

Stop measuring AI coding tools by how fast they type or how many extra tokens they consume. Dumping unvetted code into a project without safety gates just creates a massive backlog in your review and testing process. True speed is how fast good code reaches users, not how fast an LLM prints text.

More From Richard EwingClaude Code vs. Codex vs. Cursor vs. GitHub Copilot: Which AI Coding Tool Is Best?

 

A Tool Needs an Architect

After six months of building real software in the AI era, I stopped looking for the perfect AI coding tool.

I started viewing these tools the same way I view engineers on a product team: each has specific strengths, each has operational limits, and none of them replace good software design. I didn’t stop using AI coding tools, I stopped expecting them to do a software architect’s job.

Once I made that shift, something unexpected happened: the better my system design became, the more useful every AI tool became.

Explore Job Matches.