AI Guides › Step-by-step guides

Screenshot to Live App: Plan First, Then Code, Domain and Payment Link

By Nigel Guy · 7 min read

The usual mistake is to paste a screenshot of an app you like into an AI coding tool, type "build this", and watch it produce something that looks right for ten minutes. Then you find it guessed what half the buttons do, stored nothing anywhere sensible, and there is no record of which version worked. The "app in 60 seconds" claim you may have seen is theatre: the typing takes a minute, the plan, the deploy and the checks do not.

The rule: get a written plan you have approved before any code exists, and make the AI save a working version to GitHub after every step.

The five steps below take you from a screenshot to a live app on your own domain with a Stripe Payment Link. Each tool is named, and so is where it lets you down.

Before you start

You need What it is for Cost at time of writing
A screenshot or mock-up of the app The brief Free
Claude Code (on a Claude Pro or Max plan) Plans and writes the code Pro is listed at US$20 a month billed monthly on Claude's pricing page; the UK checkout shows the £ price with VAT. Check it before you subscribe
A GitHub account Keeps every working version Free plan is enough
A Vercel account Hosts the live app Hobby is free but for personal, non-commercial use only. Pro is listed at US$20 per developer seat a month
A domain name Your own address Varies by extension and registrar; check the renewal price as well as the first-year price
A Stripe account Takes the payment No monthly fee; UK standard cards are 1.5% + 20p per transaction at time of writing (EEA and international cards cost more)

If the app will take money, you are in commercial territory, and Vercel's Hobby terms rule that out. Budget for Pro, or use a host whose free tier allows commercial use.

Step 1 — Give Claude Code the screenshot and switch on plan mode

  1. Make an empty folder for the project, open a terminal in it and run git init, then claude.
  2. Press Shift+Tab until the status bar shows ⏸ plan mode on. (You can also start with claude --permission-mode plan.) In plan mode Claude reads and proposes but does not edit files until you approve.
  3. Add the screenshot: drag it into the terminal window, paste it with Ctrl+V (Alt+V on Windows and WSL), or type its file path.

Step 2 — Run the plan prompt

This is the prompt that does most of the planning. Paste it after the screenshot. Fill in the square brackets: who the app is for, what one thing it must do, how you will charge, and anything to keep out.

You are a senior product engineer helping a non-specialist turn a screenshot
into a small, working web app. Do not write any code yet.

Context:
- Attached: a screenshot of the app I want.
- Who it is for: [WHO_USES_IT]
- The one job it must do on day one: [CORE_JOB]
- How I plan to charge: [PAYMENT_MODEL, e.g. "one-off £9 via a Stripe Payment Link" or "free for now"]
- Out of scope / must not include: [EXCLUSIONS]

Produce a build plan in this order:
1. Purpose: one short paragraph on what the app does, based only on what the
   screenshot shows plus my notes above.
2. Screens: a numbered list of pages in the order a user meets them, with one
   line each on what happens there.
3. Data: what must be stored, as a short list of tables or objects with their
   key fields. Plain English, not a full schema.
4. Version 1 versus later: two lists. Version 1 is the smallest set that does
   the core job end to end. Everything else goes in "later".
5. Payments: where the payment link sits, and what the app does (or cannot do)
   once someone has paid.
6. Unknowns: every element in the screenshot whose purpose you cannot tell.
   List them as questions for me. Do not fill them in with assumptions.
7. Build sequence: numbered steps, each small enough to test on its own.

Rules:
- If any square-bracket item above is empty or unclear, ask me before planning.
- Prefer one simple, common stack and name it with a one-line reason.
- Keep secrets (API keys) out of the code and out of the repository.

Before you reply, check: does every screen trace back to the screenshot or my
notes, is version 1 genuinely the minimum, and have you listed rather than
guessed every unknown?

When I approve the plan, build it one step at a time. After each step, run it,
tell me how to check it, and commit a working version to Git with a clear
message before starting the next step.

Answer every question in the Unknowns list. Cut anything from version 1 you would not miss on launch day. Only then approve the plan.

Step 3 — Build one step at a time and push to GitHub

  1. Approve the plan. Claude Code leaves plan mode and starts on step one of the build sequence.
  2. After each step, run the app locally as Claude tells you and click through it yourself. Do not accept "it should work".
  3. Create an empty repository on GitHub, then ask Claude to "add this GitHub repository as the remote and push the main branch". Once that works, each commit can be pushed the same way.
  4. If a step breaks something, ask Claude to go back to the last commit that worked. That is what the commits are for.

Step 4 — Deploy on Vercel and add your domain

  1. In Vercel, create a new project and import your GitHub repository. Vercel deploys every push from then on. Pushes to your production branch (usually main) go live; other branches get preview URLs.
  2. Open the project, then Settings in the sidebar, then Domains, and click Add Domain.
  3. Type your domain. If it is an apex domain (example.co.uk), Vercel will suggest adding the www version too. Accept it.
  4. At your registrar, add the records Vercel shows you: an A record for the apex domain, a CNAME for a subdomain such as www. Use the exact values on your project's Domains page, not ones copied from a tutorial.
  5. Wait for the domain to show as properly configured. DNS changes can take a while to spread.

If your domain already handles email, change only the A and CNAME records. Moving the whole domain to Vercel's nameservers without copying your MX records first is how people lose their email.

Step 5 — Create a Stripe Payment Link

  1. Work in a Stripe sandbox (test mode) first.
  2. In the Stripe Dashboard, open Payment Links and click +New (or use the + button and choose Payment link).
  3. Pick an existing product or click +Add a new product, enter the name and price in GBP, click Add product, then Create link.
  4. Ask Claude Code to put the link behind the buy button from your plan, then commit and push. Vercel redeploys on its own.
  5. Repeat in live mode once the test works, and replace the test link with the live one.

Check it worked

What to skip

Guardrails

Sources

All 751 AI guides · JulieMango plans from £17/mo