Skip to main content

Iterating on apps

Build better apps through incremental improvements.

The iterative approach

Instead of building everything at once:

"Build a complete project management tool with
projects, tasks, teams, time tracking, reporting,
integrations, and mobile apps"

Build step by step:

Step 1: "Build a simple task list with add/complete/delete"
Step 2: "Add projects to organize tasks"
Step 3: "Add team members and task assignment"
Step 4: "Add due dates and reminders"
Step 5: "Add a dashboard with reports"

Why iterate?

Better results

AI handles focused tasks better than complex ones.

Easier debugging

When something breaks, you know what changed.

Faster feedback

See working features sooner.

More control

Guide the direction at each step.

Iteration patterns

Add features incrementally

Initial: "Create a notes app with basic text notes"

Then:
"Add folders to organize notes"
"Add search across all notes"
"Add tags for categorization"
"Add rich text formatting"

Improve existing features

Initial: "Create a user profile page"

Then:
"Add avatar upload"
"Add form validation"
"Add success/error messages"
"Add loading states"

Expand platforms

Initial: "Build a web app for tracking habits"

Then:
"Create a mobile app with the same features"
"Add push notifications for reminders"

Connect services

Initial: "Build a task app with local storage"

Then:
"Add a backend to store tasks in a database"
"Add user authentication"
"Add team sharing"

Effective iteration prompts

Reference existing code

"In the TaskList component, add a sort dropdown
with options for date, priority, and alphabetical"

Be specific about changes

"Change the sidebar:
- Make it collapsible
- Add icons next to each menu item
- Highlight the active page"

Fix specific issues

"The delete button deletes the wrong task.
It should delete the task in that specific row."

Add polish

"Add loading spinners when fetching data"
"Add smooth transitions when items appear/disappear"
"Add empty state messages when lists are empty"

When to use the editor

Some changes are faster to make manually:

Quick style tweaks

Change a color, padding, or font size directly in CSS.

Copy changes

Duplicate a component and modify it.

Text updates

Fix typos, update labels, change placeholder text.

Small logic changes

Add a simple conditional or modify a calculation.

Handling issues

Something broke

  1. Check the error message
  2. Describe what's wrong:
    "The app crashes when I click submit.
    Error: Cannot read property 'map' of undefined"

Not what you wanted

Be specific about the difference:

"The calendar shows a week view.
I wanted a month view with all dates visible."

Missing functionality

"The form submits but doesn't clear afterward.
Add: clear all fields after successful submit."

Best practices

Keep prompts focused

One feature or fix per prompt works best.

Review before continuing

Make sure each step works before adding more.

Save working states

In Coder mode, commit before making big changes.

Don't be afraid to restart

Sometimes it's faster to regenerate with a better prompt.

Learn from generated code

Understanding the code helps you write better prompts.