A structured three-step process for building apps with AI

Executive overview

AI-assisted development breaks down when builders let the AI take too much control and lose track of what's happening and why. The fix is a structured workflow that keeps the AI anchored to a macro vision while executing in tight micro steps.

Three phases — preparation, design, and control — address the core failure modes: context loss, unstructured prompting, and session drift.

Preparation: the implementation plan

  • Create a PRD (Product Requirements Document) as the macro reference the AI always returns to.
  • Structure: product overview (3–5 sentences), tech stack, functional and non-functional requirements, future enhancements, best practices.
  • For enterprise apps, replace vague phases with prescriptive micro steps — each with checkboxes the AI marks off as it progresses.
  • Break the build into phases where each phase produces a small end-to-end working application (backend connected to frontend, APIs functional).
  • Start each phase with tests written before the feature is built — failing tests give the AI specific feedback to self-correct, avoiding repeated errors.
  • Non-functional requirements (performance, security) get the same micro-step treatment and are tested against the same test suite.

Design: voice-first UI iteration

  • Use a Claude project (e.g. "app designer") to generate a design doc from a dictated vision of the app.
  • Feed the design doc into the same Claude project to produce a React mockup; iterate on it by dictating changes while viewing screenshots.
  • Roughly 80% of UI iteration time is voice — faster than typing, and AI handles the speech-to-text-to-code loop effectively.
  • Transfer the screenshot and code to Bolt.New to polish the frontend; Bolt is strong at UI and weak at full-stack, so use it narrowly.
  • Bolt.New can deploy a mockup to Netlify — useful for sharing with users before any real backend is built.
  • Total design phase: roughly 1–3 hours depending on complexity.

Control: keeping Cursor on track

  • Add the implementation plan to Cursor's Notepad feature rather than a plain markdown file — it focuses the model more reliably than cursor rules alone.
  • Cursor rules (.cursorrules) are useful but inconsistent; Notepad is the more reliable anchor.
  • After every 3–5 Composer Agent exchanges, re-attach the master plan via Notepad to reset context.
  • Context drift — the AI gradually forgetting earlier decisions or repeating errors — is the primary failure mode in long sessions.
  • Counter drift with handoffs: ask the AI to write a full handoff prompt (errors, nuances, code snippets, relevant files) as if briefing a new engineer with zero context. Paste that into a fresh session.
  • Chain handoffs across sessions to preserve continuity without relying on a single long conversation.

The macro-micro loop

  • The unifying principle across all three phases: always return to the macro after each micro iteration.
  • Build something small → test it → verify it works → check off the step → return to the macro plan → repeat.
  • This loop is what allows AI to build robust applications without losing the thread.

More like this — when you're ready for early access.

Join the waitlist for a personal account and content recommendations based on what you're working on.

No spam. Unsubscribe at any time.

You're on the list. We'll be in touch before launch.

Get early access to the full library.

Join the waitlist for a personal account and content recommendations based on what you're working on.

No spam. Unsubscribe at any time.

You're on the list. We'll be in touch before launch.

Be among the first to get personalised recommendations tailored to your stage in business.

No spam.

You're on the list. We'll be in touch before launch.

Be among the first to get personalised recommendations tailored to your stage in business.

No spam.

You're on the list. We'll be in touch before launch.