Claude workflow

See how to vibe code with claude on a small app

The easiest way to lose track of a vibe code project is to ask for an entire app at once. Start with one screen or behavior, tell Claude what must remain unchanged, and ask for a way to test the result. Vibe Code helps you turn that idea into a focused starting prompt.

Review generated code before use
Vibe Code landing visual

the scenario's pain

A vague request can produce a convincing preview without the behavior you need. These three starting points show where a narrower Claude request helps—and when another workflow may fit better.

First-time builder

You can describe a task list but do not yet know how to ask Claude for state, empty screens, or persistence. Begin with one working interaction and request a plain-language explanation of each file before adding features.

If you prefer suggestions beside code you are already editing, the Copilot guide describes that editor-led approach.

how to vibe code with copilot

Designer testing a flow

Your mockup looks right, but a static screen cannot reveal what happens when a field is blank or an action fails. Ask Claude to implement the interaction and list the states you should inspect.

For a different conversational model to compare during ideation, the Gemini guide covers that route.

vibe code gemini

Developer extending a project

You already have files and want a filter added without rewriting the app. Supply only the relevant components, describe existing behavior, and ask Claude to identify affected files before proposing edits.

If making changes inside your editor is the priority, the Copilot guide explains how to keep that workflow grounded in the current files.

how to vibe code with copilot

3 concrete workflows

Use the left column to spot an underspecified request. The right column gives Claude a bounded task and an observable result. Each workflow has a build request and a follow-up check.

Unscoped request Scoped Claude workflow
New screen · build “Make me a productivity app.” The audience, screen, and essential actions are undefined. “Create one task-list screen with add, complete, and delete actions. Keep the interface usable on a narrow phone.”
New screen · check Accept a screenshot as evidence that the controls work. Ask for manual tests covering an empty list, a completed task, and deletion after a refresh.
Existing app · change “Improve my app.” Claude has no boundary for what it may replace. Provide the relevant files and ask for a status filter while preserving current task storage and layout.
Existing app · check Apply a large rewrite without inspecting the difference. Request a file-by-file change summary, then run the existing behavior and the new filter.
Bug fix · investigate “It doesn't work.” There is no reproducible failure to diagnose. Give the error text, reproduction steps, expected behavior, and the smallest relevant code excerpt.
Bug fix · check Assume a plausible explanation means the bug is fixed. Ask Claude for the suspected cause, a minimal patch, and a regression test you can run.

example output

Here is what a useful response to a task-list request could contain. These are illustrative text examples, not a claim that any prompt has been run or that its code has been verified.

First draft

A response with a clear boundary

Illustrative output: “I will build one task-list screen with add, complete, and delete actions. Tasks will persist in local storage. I will not add accounts, sharing, or a server. I will explain the state and storage logic after the implementation.” That boundary makes the first vibe code result easier to inspect than a sprawling app proposal.

  • Check that every requested action appears in the implementation, not just the description.
  • Open the screen at a narrow width and test it with an empty list.

Revision

A follow-up tied to observed behavior

Illustrative follow-up: “After a refresh, completed tasks appear unchecked. Keep the current layout and fix only persistence. Tell me which stored value was missing and how to reproduce the fix.” This gives Claude a specific failure and limits the change. When you vibe code in iterations, describe what you observed rather than asking for a general improvement.

  • Compare changed files with the previous version.
  • Refresh with both completed and incomplete tasks.

Handoff

A result another person can test

Illustrative handoff: “The task list supports adding, completing, and deleting tasks. Run the project using its documented local command, then test an empty entry, a completed item after refresh, and deletion. Persistence uses browser storage; data will not follow a user to another browser.” A good vibe code handoff states a limitation as clearly as a feature.

  • Keep setup instructions alongside the files they describe.
  • Treat the test list as work to perform, not proof that tests passed.

compliance notes

Claude can propose code, but a readable explanation does not establish that it is secure or correct. Do not paste secrets, private customer records, or code you lack permission to share into a prompt. Check dependencies and licenses, inspect how input is handled, and test the actual behavior before publishing. For sensitive data or a public-facing app, arrange a qualified security review. Use Vibe Code to start with a bounded request, then keep a human responsible for the result.

Review the code before anyone relies on it

  • Remove sensitive information from prompts
  • Test behavior and inspect changed files
  • Review security before publishing
Try a scoped prompt

scenario FAQ

Ask for one screen or one behavior with a visible success condition, such as a task list that retains items after a refresh. State what is out of scope, then ask Claude to explain the implementation and suggest manual tests. A small first request makes a vibe code result easier to evaluate.

You can begin by describing the interface and its behavior in everyday language. You still need to run the result, observe failures, and ask about code you do not understand. For anything people will depend on, get help reviewing the implementation rather than assuming a working preview is enough.

Tell Claude exactly what you did, what happened, and what you expected instead. Include the error message or relevant file if you have it, and ask for a minimal change that preserves working behavior. Rerun both the failed test and a test of the behavior that already worked.

It may produce a substantial first draft, but a single prompt cannot establish that every interaction, dependency, and edge case works. Break the app into testable pieces and review each addition. That gives you clearer feedback when a vibe code iteration goes wrong.

Run it yourself, inspect changed files and dependencies, and test input handling, storage, and failure states. Remove secrets and sample private data from both the project and its prompt history. If the project handles sensitive information, seek an appropriate security review before release.

Start creating
Start creating