Planning

How to Plan an App Before You Start AI Coding

How to turn an app idea into a build plan your AI coding agent can follow, before Claude Code, Codex or Cursor writes a single file.

Last updated 6 min read

Plan your app in four passes before an AI coding agent generates anything: name the one problem it solves, map the journey a user takes through it, cut the feature list down to what that journey needs, then put the work in build order. That takes an afternoon and it is the difference between an agent that executes your idea and an agent that invents its own.

The reason is simple. An AI coding tool is a fast executor and a poor product manager. It will happily answer the question you asked in the last message, with no memory of the tradeoff you made two hours ago, and it will fill any gap you leave with a guess that sounds reasonable.

Why AI coding projects go off track

The failure is rarely one bad file. It is a hundred small local decisions, each sensible on its own, that never got measured against a plan. You ask for a dashboard, the agent adds notifications because dashboards usually have them. You ask for a fix, and it rewrites something that was already working.

By week three the app does more than you asked for and less than you need, and nobody can say which parts are load bearing. That is not the agent being bad at code. It is the agent being asked to do the thinking.

Start with the one problem your app solves

Write one sentence naming the person using the app, the problem they have today, and the outcome they need. This is not marketing copy. It is the constraint every later decision gets tested against.

Then use it ruthlessly. If a feature does not move that person toward that outcome, it is not in the first version. The golden rule while you plan is to remove features, never add them.

  • Who is the first user, specifically enough that you could name one?
  • What do they do today instead, and what is wrong with it?
  • What is true after they use your app that was not true before?
  • What would you cut if you had one week?

Map the user journey before you write the feature list

A feature list is a pile of nouns. A journey is what actually has to work: the path from opening the app to getting the result, screen by screen, in order.

Walking that path out loud is what exposes the things a feature list hides. The empty state before any data exists. The screen somebody lands on from an email. What happens when the one thing the app does fails. Those are cheap to notice on a map and expensive to notice in code.

Laying it out visually helps more than it sounds like it should, because you can see the branches you have not filled in yet. In CodeSpring this is the mind map: your app at the centre, core features hanging off it, and the detail of each feature hanging off that.

A CodeSpring mind map: the project node at the centre, a Core Features folder, then one feature whose bridge fans out to notes and sub-features.

Turn the map into a build order

Build what makes the journey possible before you build what makes it pleasant. In practice that usually means the data model, then sign in, then the one workflow the app exists for, and only then settings, integrations and reporting.

A build order also gives you something to hand over. Instead of asking an agent to build the app, you can ask it to build one feature whose surrounding context is already written down, which is a task it can actually finish and you can actually review.

Leave the database design until the shape of the app has stopped moving. Designing it early, then reshaping it every time a feature changes, is one of the fastest ways to make a small app confusing.

Keep the plan where you and the agent can both read it

A plan that lives in one long chat thread stops being a plan the moment you close the tab. You will start a new session, the agent will have no memory of the tradeoffs, and you will re-explain the project from scratch and slightly differently each time.

Keep the durable decisions in the project itself, in a form an agent can read: the feature map, the notes under each feature, the requirements, the ordered task list. That is what CodeSpring is for, and it is also why the next step after mapping is generating a PRD for each feature rather than typing the feature into a prompt.

If you want the detail on what a PRD actually contains, read what a PRD is for vibe coding next. If your problem is that the agent forgets everything between sessions, read how to keep project context when coding with Claude Code.

Keep reading

More guides on planning an AI build