---
title: "I want AI to build me an online shop"
url: https://iwantaito.com/asks/build-me-an-online-shop/
summary: "Five plain-English prompts made a small candle shop with a Stripe payment link per product. Upload it to GitHub and Cloudflare hosts it free; Stripe takes 1.5% + 20p per UK card sale."
published: 2026-10-01
updated: 2026-10-01
author: "Jack Stovell"
publisher: "Adapt Progress Evolve Limited"
language: en-GB
---

# I want AI to build me an online shop

Five plain-English prompts made a small candle shop with a Stripe payment link per product. Upload it to GitHub and Cloudflare hosts it free; Stripe takes 1.5% + 20p per UK card sale.

> Fern & Wick: Made up for this demo. The candles, prices, delivery rule and email address (hello@fernandwick.example) are what we typed; Claude chose the three bundles and wrote the descriptions. The screenshot we attached is of one of our own sites.

Run: 2026-10-01, claude-sonnet-5-5, Claude Code 2.1.287 (claude -p, file tools only: no terminal, no web), session 825cd6b1-1dfa-4127-a3e6-8c44c91680a0. Claude's time: 8 min 34 s. Edited by hand: no. Full transcript: https://iwantaito.com/transcripts/build-me-an-online-shop.md

## Set up once

Step by step, with what each screen looks like: https://iwantaito.com/start/

1. **Get a free Claude account**. It's where you describe what you want and Claude makes it. The Free plan covers every guide on this site; Pro adds the shortcut where Claude saves changes to GitHub itself. Free (Pro is optional).
2. **Let Claude hand you files**. A website is a handful of files. With this switched on, Claude can make them and give them to you to download, ready to upload to GitHub. Free.
3. **Get a free GitHub account and an empty repository**. A repository is a folder on GitHub that keeps every version of your files. It's the one place your site lives: you (or Claude) change the files there, and Cloudflare publishes whatever is in it. Free.
4. **Get a free Cloudflare account and connect it to your repository**. Cloudflare is where your site is live on the internet. Once it is connected to your repository, every change to the files on GitHub goes live by itself, in a minute or two. A site made of plain files costs nothing to host: Cloudflare says requests to static files are "free and unlimited". Free.
5. **Connect Claude to GitHub**. So Claude can read the files that are live now before it changes them, even in a brand new chat. On Pro, the same connection is what lets Claude Code on the web save its changes to your repository. Free.

## The prompts

### Prompt 1 of 5: Describe what you sell, and ask how payment links would work.

```text
I make candles at home and sell them at markets under the name Fern & Wick. I'd like a simple online shop so people can buy from me online too. I've never built a website and I'm not technical.

What I sell:
- Riverside candle (fig and cedar), 200g: £18
- Allotment candle (tomato leaf and basil), 200g: £18
- Fireside candle (smoke and vanilla), 300g: £24
- Wax melts, pack of 6, any scent: £8
- Gift set (one 200g candle, one pack of wax melts, matches): £30

Delivery is £3.95 to anywhere in the UK, free on orders over £40. UK only.

I don't want a complicated shop system or anything I have to run myself. A friend said I can make a payment link for each product in Stripe (they call them Payment Links) and put those links on my website, so Stripe takes the card and the delivery address. I'd like to do it that way, and I want the website itself to be free to run.

Before you make anything, ask me anything you need to know, and tell me in plain English what you're going to make: the pages, what a customer does from arriving to paying, and how my delivery charge and "free over £40" would work with payment links.
```

What you should see: A plan and questions, and nothing made yet. Ours planned four pages and said plainly that a payment link can charge a fixed delivery fee and limit delivery to the UK, but can't make delivery free once a basket passes £40 or hold a mixed basket. It offered three ways round that, recommended free-delivery bundles over £40, and asked ten questions.

### Prompt 2 of 5: Answer its questions, and show it a website you like.

Attach: a screenshot of a website you like the look of

```text
Thanks, that's really clear. My answers:

1. Option A. Please suggest two bundles over £40 with free delivery and tell me what you picked.
2. I've just opened a Stripe account but haven't made any links yet.
3. Wax melts come in the same three scents as the candles. For the gift set, the customer picks the candle, and the melts match it.
4. No photos yet.
5. The free address is fine for now.
6. Email: hello@fernandwick.example (I'll change it). No Instagram yet.
7. I post within 2 to 3 working days by Royal Mail. Unused candles can come back within 14 days.
8. Delivery only, no market pickup.
9. I've attached a screenshot of a website I like the look of. I like the cream background, the dark green, the elegant old-style headings and the rounded buttons. Don't copy its words, just the feel.
10. Please write short descriptions for me to edit. All my candles are soy wax. Leave burn times out for now.

Please make the website now. Keep it as simple as possible: just the files I'll need to upload, nothing I have to install. It must look good on a phone. As I haven't made the payment links yet, make it obvious where each one goes and tell me what to swap in once I've made them.
```

What you should see: A folder to download and a setup guide. Ours was a fern-and-wick folder (four pages, a stylesheet, two small script files, a note for photos) plus START-HERE.txt, which stays outside the folder. It picked The Trio (£60) and Gift set + a candle (£48), priced at the items added up, put every payment link in one file, shop-settings.js, and capped quantities so no single item could pass £40 while still paying delivery.

### Prompt 3 of 5: Ask it to check the shop like a customer trying to break it.

```text
I opened it by double-clicking index.html and it looks lovely. Before I put it online, please check it carefully, as if you were a customer on a small phone and as if you were trying to break it: every "Buy now" button and link, someone who wants two different candles, someone expecting free delivery on a £42 order, someone outside the UK, someone who presses "Buy now" before I've added my real links, someone who uses a screen reader or only a keyboard, writing that's too small or too faint, anything that spills off the side of the screen, and anything a customer would want to know before trusting a small shop like mine (returns, contact, who I am).

Tell me in plain English what you found, then fix it in the files.
```

What you should see: A plain-English list of what it fixed, and updated files. Ours stopped the header spilling off small phones, made unset Buy buttons say 'Email us to order' on the live site, added a yellow 'Setup check' box only you see on your own computer, a 'Test mode' warning, name and address lines for the About page, returns and privacy wording, and screen-reader labels. It said it had read the code, not tried it in a browser.

### Prompt 4 of 5: Change something, the way you will once it's live.

```text
Thank you, that's a lot I wouldn't have thought of. I've decided:

1. Please add your third bundle: a Fireside candle plus a 200g candle (customer picks Riverside or Allotment) for £42, with free delivery.
2. Then take out the "email us and we'll set it up as one order" bit. I'd rather keep it simple with the three bundles.
3. Returns: wax melts and gift sets can come back too if they're unopened. The customer pays return postage unless it arrived damaged.

Then tell me which files you changed, so I know what's different.
```

What you should see: The third bundle on the page, the email-us offer gone, the new returns wording, and a list of the files it changed. Ours changed four files in the folder plus the photo note and the guide, and said you now need eight payment links, not seven.

### Prompt 5 of 5: Ask how to make the links and put it live from GitHub, by clicking, not typing commands.

```text
I've made free GitHub and Cloudflare accounts, and I've opened my Stripe account. On GitHub I made a new repository called fernandwick (I switched on "Add README"), and in Cloudflare I went to Workers & Pages, Create application, Pages, Connect to Git, and picked that repository, so the shop should go live by itself whenever the files on GitHub change. I don't want to use the terminal or install anything. Please tell me, step by step, by clicking around the Stripe, GitHub and Cloudflare websites:

1. how to make my payment links in Stripe, with the right delivery settings, and where I paste them,
2. how to get the shop's files into my GitHub repository and find the address where it's live,
3. how I put a change live later.

Tell me what I should see at each step.
```

What you should see: Click-by-click steps for all three websites, and no new files. Ours: GitHub first (Stripe's thank-you redirect needs the live address), uploading everything inside the folder, not the folder; then eight Stripe links from a table of prices, delivery, maximum quantities and dropdowns, made live and tested with one real purchase you refund; then paste the links into shop-settings.js with GitHub's pencil and Commit changes. Later changes the same way.

## Before you start

You need four accounts, all free to open: Claude, GitHub, Cloudflare and Stripe. Claude makes the shop, GitHub keeps its files, Cloudflare puts whatever is on GitHub on the internet, and Stripe takes the payments. [The set-up page](/start/) walks through the first three once, including connecting GitHub to Cloudflare and switching on "Code execution and file creation" in Claude so it can hand you files. Claude warned that Stripe needs your business and bank details before you can take real payments, so open that account early.

Nothing to install, and no terminal.

Our example is Fern & Wick, a made-up candle maker who sells at markets. Five products from £8 to £30, delivery £3.95 anywhere in the UK, free over £40, UK only. Each product gets its own Stripe payment link, and Stripe's page takes the card and the address. There's no basket and no shop software to look after. Swap in your own things and prices.

## What happened when we ran it

We typed five plain-English prompts into one conversation with claude-sonnet-5-5 on 1 October 2026. We ran them through Anthropic's command-line tool with only its file tools switched on, so Claude could save files into an empty folder, much like file creation on claude.ai. It wasn't the claude.ai website itself, so your screen will look different. The replies are published as they came back and we edited nothing by hand. Claude spent 513.9 seconds writing them, between eight and nine minutes.

The first prompt described the shop and asked Claude to ask questions before making anything. It asked ten, and before that it told us the useful thing: a payment link can add a fixed delivery charge and limit delivery to the UK, but it can't make delivery free once a basket passes £40, and it can't hold a mixed basket. It recommended the simplest way round that: bundles over £40 with free delivery built in. We took it.

In the second prompt we answered, and attached a screenshot of one of our own sites, saying we liked the cream, the dark green, the old-style headings and the rounded buttons, but not to copy the words. Claude saved a folder called fern-and-wick and a setup guide, START-HERE.txt, to keep beside it. It picked two bundles, The Trio at £60 and Gift set + a candle at £48, priced at the items added up. The saving is the free delivery. Every payment link goes in one file, shop-settings.js. It said it hadn't opened the shop in a browser.

So we did. After prompt 2, 268 of 296 checks passed. Some home-page text was 12.8px, the orange "not added yet" wording was too faint to read comfortably, and three pages had no skip link for keyboard users.

Prompt 3 asked Claude to check the shop as a customer trying to break it. It fixed the header spilling off small phones and the faint text, and added a skip link to every page. It also thought about the moment you upload before your links are ready: on the live site those buttons say "Email us to order" and open an email with the product already in the subject, while on your own computer a yellow "Setup check" box lists what's still missing. If you paste in a Stripe test link by mistake, a "Test mode" strip appears on every page. After prompt 3, 334 of 334 checks passed.

Prompt 4 is what running a shop looks like. We added a third bundle (Fireside + a candle, £42), dropped an "email us for a mixed order" offer Claude had suggested, and changed the returns rule. Claude listed every file it changed and pointed out we now need eight links, not seven. The final files passed all 328 checks, opened from disk and served as a website, on a laptop and a phone, and again with the files laid out the way the GitHub repository holds them. With made-up Stripe-style addresses swapped in, every button turned into "Buy now" and opened its own address. None of them reached Stripe.

Prompt 5 asked how to do the rest by clicking around Stripe, GitHub and Cloudflare. Claude got the order right: GitHub first, because Stripe needs the shop's live address for the thank-you page. It warned us not to drag the folder itself into GitHub, only what's inside it, and gave a table of what each of the eight links needs. It suggested making the links live straight away and testing with a real purchase you refund. We checked its steps against GitHub's, Stripe's and Cloudflare's documentation and the steps below use their button names. We didn't create anything in any of them, so that part is untested by us.

## Put it live

These steps assume you've done [the set-up page](/start/): a GitHub repository (ours would be fernandwick, with "Add README" on) connected to a Cloudflare Pages project with Connect to Git. Claude's unedited files are live at [demo.iwantaito.com/build-me-an-online-shop/](https://demo.iwantaito.com/build-me-an-online-shop/) (we host them ourselves, with a thin bar on top saying it's a made-up example; the Buy buttons have no payment links, so they offer to email instead).

1. Download the fern-and-wick folder and open it. START-HERE.txt sits outside it and is for you; don't upload it.
2. On GitHub, open your repository, select Add file, then Upload files. Select everything inside the fern-and-wick folder, including the images folder, and drag it in. Don't drag the fern-and-wick folder itself, or the shop ends up one folder down and the address shows "not found". Select Commit changes. index.html should now be in the list next to README.md.
3. In Cloudflare, go to Workers & Pages and open your project. Under Deployments, wait for the newest one to succeed, usually a minute or two. Your address is shown on the project, something like fernandwick.pages.dev. Open it: the buttons say "Email us to order" for now. That's expected.
4. In Stripe, make your delivery rates on the Shipping rates page: select Create shipping rate, and make "UK delivery" at £3.95 and "Free UK delivery" at £0. A rate is one fixed amount for the whole order.
5. Make a payment link: open Payment Links, select +New, then +Add a new product, fill in the name, description and price, and select Add product. In the Product section, tick "Let customers adjust quantity" and set the maximum from Claude's table. In Options, choose "Collect customer addresses", then "Billing and shipping addresses", pick United Kingdom as the only country and add the right shipping rate. Use "Add custom fields" for a dropdown, such as the wax melt scent. Under "After the payment", set the confirmation page to redirect to your website's thanks page, for example https://fernandwick.pages.dev/thanks.html. Select Create link and copy the address, which starts https://buy.stripe.com/.
6. Repeat for all eight products and bundles. Claude's reply has a table of the price, delivery rate, maximum and dropdowns for each. If you'd like to practise first, a sandbox (Stripe's test environment) is free and takes the test card 4242 4242 4242 4242, but its links don't carry over, so the real ones are made again in live mode.
7. On GitHub, open shop-settings.js, select the pencil, paste each link between its quote marks, and change the email, name and address lines. Select Commit changes..., then Commit changes. Cloudflare redeploys by itself; when it has, every button on your live shop should say "Buy now".
8. In Stripe, switch on receipts: Settings, Business, Customer emails, then Successful payments.
9. Open the shop on your phone, press each button and check the price, the delivery charge, the dropdowns and that it lands on your thank-you page. Buy the cheapest thing yourself, then refund it in Stripe.
10. To change something later, edit a file with the pencil, or ask Claude, download the files it changed and upload them with Add file, Upload files. Files with the same name replace the old ones and the rest stay. For photos, open the images folder on GitHub first. Each Commit changes goes live by itself.

Your own domain is optional: in Cloudflare, open the project, then Custom domains, then "Set up a domain". If you add one later, change the thank-you redirect in each Stripe link to match.

On Claude Pro, you can skip the downloading and uploading for changes to the shop: ask Claude Code on the web, and it saves the change to a branch of your repository for you to merge on GitHub, after which Cloudflare puts it live. [The set-up page](/start/#pro) shows how, from a real run.

No GitHub? Cloudflare's "Drag and drop your files" works too, but every change, including pasting in your links, means dragging the whole folder in again.

## What it costs

Hosting is £0 a month: Cloudflare says requests to static files are free and unlimited, this shop is eight small files, and GitHub's free plan is enough for the repository.

Stripe has no setup or monthly fee. It takes 1.5% + 20p on each standard UK card payment, 2.8% + 20p on premium UK cards, 2.5% + 20p on cards from the European Economic Area, and 3.15% + 20p on other international cards, plus 2% if the currency has to be converted. A Riverside candle with delivery comes to £21.95, and the fee on that, on a standard UK card, is about 53p. Refunds cost nothing to send, but Stripe keeps the original fee: about 38p on the £11.95 wax melts order Claude suggested for your test purchase. A disputed payment costs £20.

Claude's Free plan covered the build. A domain is the only other possible cost, and it's optional.

## For developers

The git route: clone the repository, copy the contents of `fern-and-wick` to its top level, paste your links into `shop-settings.js`, then commit and push to main. Cloudflare Pages builds every push to the production branch (no build command for plain files), and other branches get preview addresses.

```
git clone https://github.com/<you>/fernandwick.git
cd fernandwick
cp -r ~/Downloads/fern-and-wick/. .
git add .
git commit -m "Fern & Wick shop"
git push origin main
```

The first, command-line version of this page (claude-sonnet-5-5, 1 October 2026) asked Claude for exact commands and hosted the same kind of shop as a Worker with static assets. Its config, checked then with Wrangler 4.131.2 and 4.145.0, works for this folder if you point the assets directory at it:

```jsonc
{
  "name": "fernandwick",
  "compatibility_date": "2025-10-01",
  "assets": { "directory": "./fern-and-wick" }
}
```

```
npx wrangler dev
npx wrangler login
npx wrangler deploy
```

In that run `wrangler dev` served the shop at http://localhost:8787 and dropped .html from addresses (/shop.html became /shop). Add `"routes": [{ "pattern": "fernandwick.co.uk", "custom_domain": true }]` once the domain is an active Cloudflare zone, then deploy again. Note that this shop's site.js treats localhost as "your own computer", so the dev server shows the yellow setup box and the "not added yet" buttons.

## What we tested

- PASS: Final files (prompt 4), every page at laptop (1440x900) and phone (390x844) size in headless Chrome, both opened by double-click and served as a website. 328 of 328 checks: no errors, nothing loaded from other websites, no sideways scrolling, one main heading per page, smallest text 14px or more, contrast at least 4.5:1, every link works, first Tab shows a skip link
- PASS: Products and prices. 8 Buy buttons: Riverside £18, Allotment £18, Fireside £24, Wax melts £8, Gift set £30, and the bundles at £60, £42 and £48
- PASS: Before any links are added, opened from disk. Every button says 'Payment link not added yet' and goes nowhere; the yellow box says '8 of 8 payment links still to add' and flags the example email, name and address
- PASS: Before any links are added, served as a website (what a customer would see). Every button becomes 'Email us to order' with the product in the email subject; the setup box and the empty name and address lines are hidden
- PASS: Made-up Stripe-style addresses swapped into shop-settings.js (not real links; nothing reached Stripe). Every button says 'Buy now' and opens its own address; test-style addresses show the Test mode strip, the others don't
- PASS: The final files laid out as the GitHub repository holds them (the folder's contents at the top, the images folder, plus README.md), same checks. 328 of 328 again
- FAIL: Prompt 2 first build, same checks. 268 of 296: home-page text as small as 12.8px, the orange 'not added yet' text at 3.82:1 contrast, no skip link on three pages, and the setup box and live behaviour didn't exist yet. Prompt 3 fixed all of it

## What it got wrong

- **Free delivery over £40 isn't what the shop does.** We asked for free delivery on orders over £40. A payment link is one product's checkout and Stripe's delivery rates are a fixed amount per order, so only the three bundles get free delivery. Someone buying a Riverside and a Fireside separately pays £3.95 twice. Claude said so from the first reply and the site says so too.
- **Quantity limits are a workaround.** To stop a single-product order passing £40 while still charging delivery, Claude's table caps each link (Fireside at 1, the 200g candles at 2, melts at 4). A customer who wants two Firesides has to order twice or pick a bundle.
- **Stripe's thank-you setting.** Claude said to choose 'Don't show confirmation page', then redirect to your website. Stripe's documentation puts it under 'After the payment', Confirmation page, redirect customers to your website. The steps below use Stripe's names.
- **Testing with real money.** Claude said to make the links live straight away and test with one real purchase you then refund, because sandbox links don't carry over to live. That's a fair trade, but say what it costs: Stripe keeps its fee on a refund, about 38p on the £11.95 wax melts order. A sandbox with the test card 4242 4242 4242 4242 is free if you'd rather practise one link first.
- **A fix we couldn't back up.** If Cloudflare asks for build settings, Claude said to leave the output directory empty 'or / if it won't accept empty'. Cloudflare's documentation says to leave the build command blank for plain files and doesn't mention '/'. We didn't need or test it.
- **It never opened the shop.** Claude worked only from the code and said so each time. Its first build had text too small and too faint, and three pages without a skip link. Our prompt 3 caught them.
- **Left for you.** Your real email, name and address (the About lines stay hidden online until you fill them in), photos, and the returns wording. Claude said it can't give legal advice and pointed to gov.uk. We didn't test anything inside Stripe, GitHub or Cloudflare.

Live demo (Claude's unedited files, a made-up example): https://demo.iwantaito.com/build-me-an-online-shop/

## From the same studio

Ours: made by the same studio that runs this site.

- [Adapt Progress Evolve](https://adaptprogressevolve.com/): We build small shops like this properly, Stripe set-up included, if you'd rather not do it yourself.
- [Launch Video Maker](https://launchvideomaker.com/): A short launch video for the shop, to post when it goes live.

## Related

- [I want AI to build me a website for my business](https://iwantaito.com/asks/build-me-a-website-for-my-business/)
- [I want AI to build me a website](https://iwantaito.com/asks/build-me-a-website/)
- [Do I need Wix or Squarespace, or can Claude and GitHub do it?](https://iwantaito.com/asks/website-on-wix-squarespace-wordpress-or-cloudflare/)

## Sources

- [Stripe UK pricing (1.5% + 20p standard UK cards; 2.8% + 20p premium UK cards; no monthly fees; refunds keep the original fee)](https://stripe.com/gb/pricing)
- [Stripe: create a payment link (Payment Links, +New, add a product, Create link)](https://docs.stripe.com/payment-links/create)
- [Stripe: customise payment links (addresses, shipping countries, custom fields, adjustable quantity)](https://docs.stripe.com/payment-links/customize)
- [Stripe: after a payment link payment (After the payment, Confirmation page, redirect to your website)](https://docs.stripe.com/payment-links/post-payment)
- [Stripe: charge for shipping (fixed amount for the entire order)](https://docs.stripe.com/payments/during-payment/charge-shipping?payment-ui=stripe-hosted)
- [Stripe: receipts (Settings > Business > Customer emails > Successful payments)](https://docs.stripe.com/receipts)
- [Stripe testing (sandboxes; card 4242 4242 4242 4242)](https://docs.stripe.com/testing)
- [GitHub Docs: adding a file to a repository (Add file > Upload files; 100 files at once, 25 MiB each)](https://docs.github.com/en/repositories/working-with-files/managing-files/adding-a-file-to-a-repository)
- [GitHub Docs: editing files (the pencil, then Commit changes)](https://docs.github.com/en/repositories/working-with-files/managing-files/editing-files)
- [Cloudflare Pages: Git integration (Connect to Git; build command blank; deploys on every commit)](https://developers.cloudflare.com/pages/get-started/git-integration/)
- [Cloudflare Pages custom domains](https://developers.cloudflare.com/pages/configuration/custom-domains/)
- [Cloudflare Workers pricing ('Requests to static assets are free and unlimited')](https://developers.cloudflare.com/workers/platform/pricing/)
- [Claude Code on the web: get started (Pro, Max and Team; saves changes to a branch)](https://code.claude.com/docs/en/web-quickstart)
- [Claude help: create and edit files with Claude (all plans; Settings > Capabilities)](https://support.claude.com/en/articles/12111783)
- [Cloudflare Pages: Direct Upload, drag and drop (the no-GitHub alternative)](https://developers.cloudflare.com/pages/get-started/direct-upload/)

## Questions people ask

### Can Claude build me an online shop?

A small one, yes. Five prompts gave us four pages with a Buy button per product, each going to a Stripe payment link. Stripe's page takes the card and the delivery address, so there's no basket or shop system to run.

### Do I need to use a terminal or install anything?

No. You type in a Claude chat, download the folder it makes, upload what's inside it to your repository on the GitHub website, click your payment links together in Stripe's dashboard, and paste them into one file using GitHub's own editor.

### Can Claude put it online for me?

Not from a chat on the Free plan: Claude hands you the files and you upload them. Once your GitHub repository is connected to Cloudflare, that upload is what puts the shop live. On Claude Pro, Claude Code on the web can save a change to a branch of your repository, which you then merge on GitHub.

### Can payment links do free delivery over a set amount?

Not automatically. Each link is its own checkout, and Stripe's delivery rates are a fixed amount for the whole order. Claude's answer was bundles over £40 with free delivery built in.

### Can Claude make the Stripe links for me?

Not in our run: Claude had no access to Stripe, so it gave click-by-click steps and a table of what each link needs. Making eight links by hand takes a while but needs no technical skill.

### What does it cost?

Hosting on GitHub and Cloudflare is £0 a month. Stripe has no monthly fee and takes 1.5% + 20p per standard UK card payment, about 53p on an £18 candle with £3.95 delivery. A domain is optional.
