The build chat
Every custom-built app has a build chat attached to it. Open the app in your Dashboard, click into the builder, and you’re back in the same conversation. The agent has the full history and the current state of the app. You can iterate as much as you want. There’s no separate edit mode.Requesting changes
Phrase changes the way you’d phrase them to a teammate. Concrete is better than abstract.One change at a time
This is the single biggest unlock for iteration quality. A change request like “fix the form, change the colors, add a filter, and reorganize the dashboard” produces a slower build, a higher chance of regressions, and a harder time spotting what went wrong. Same four changes one at a time produces faster builds, cleaner results, and easier debugging if something breaks.Approving gated tasks
Some tasks pause for your approval before executing. These are tasks that affect things outside the app itself — adding integrations, modifying workspace settings, anything that the agent flags as needing a human in the loop. When this happens, the chat will show a task card with an Approve or Skip choice. Read what the task does and decide.Adding secrets and API keys
If your app needs to call an external service — Stripe, OpenAI, an internal API — the app builder asks for credentials mid-build. The build pauses on a form that names the secret, explains what it’s for, and gives you a field to paste the value.Secrets you provide are stored encrypted and only available to your app at runtime. They aren’t exposed in the build chat, in version history, or to other apps.
Version history
Every change in the build chat creates a new version. You can browse versions from the app’s history view and roll back to a previous one if a change introduced a regression.Version browsing is in active development during the beta. The list of versions is reliable; the diff view and rollback flow are still improving. If you need to revert urgently and the UI isn’t behaving, ask in #help.
When iteration isn’t working
A few signals that the iteration loop is the wrong tool:- You’ve asked for the same change three times and it isn’t sticking
- The app feels structurally wrong, not just rough in spots
- You realize the original prompt didn’t capture what you actually want