Real buildClaude's output, unedited
Open the live demo (Claude's unedited files, a made-up example)
I want AI to build me a website for my business
Five plain-English prompts in a Claude chat made a one-page site for a dog walker, every Book button linked to its booking page. Upload it to GitHub and Cloudflare puts it live: free.
- Prompts
- 5
- Claude's time
- 3 min 32 s
- Got wrong
- 5 things
- Tests passed
- 5 of 6
- Model
- claude-sonnet-5-5
- Run on
- 1 October 2026
For: Someone who runs a small business on their own, has never built a website, has never opened a terminal, and wants a page people can look up: what you offer, prices, who you are, how to get in touch and how to book.
What the five prompts made Top of the page






01 · Before you start
Before you start.
You need three free accounts and nothing else. A Claude account with “Code execution and file creation” switched on (Settings, then Capabilities; it’s on the Free plan), so Claude can hand you a file to download. A GitHub account with an empty repository, which is where your site’s files will live. And a Cloudflare account connected to that repository, which puts whatever is in it on the internet. The set-up page walks through all three, once, in about 15 minutes.
Nothing to install, and no terminal. Everything below happens in a chat and a web browser.
Our example is Riverside Dog Walks, run by Sam, who is made up. Sam walks dogs along the river and in Canbury Gardens in Kingston upon Thames: £15 for 30 minutes, £22 for 60, Monday to Friday. Sam already has a booking page, so the website doesn’t need its own booking system. Every Book button just links there, whatever booking service you use. Change the details to yours.
02 · Set up once
Set up once, then just talk to Claude.
Free accounts you make one time and reuse for every build. Each links to the step-by-step on the set-up page, with what each screen looks like.
- 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.
- 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.
- 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.
- 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".
- 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.
03 · The prompts
Paste these five, in order.
Plain English, typed into an ordinary Claude chat. On the left, exactly what we sent, word for word; change the details to yours. On the right, what came back. One conversation with claude-sonnet-5-5, run on 1 October 2026. Read the full transcript.
Prompt 1 of 5
Describe your business, and say you already have a booking page.
You say: I run a one-person dog-walking business called Riverside Dog Walks and I'd like a proper website, so people who hear about me can look me up, see what I offer and get in touch. I've never made a website. About my business: - 30-minute walk: £15. 60-minute walk: £22. - I walk Monday to Friday, 8am to 6pm, around the riverside and the park near my home. - I'm insured and I walk one dog (or one household's dogs) at a time, never big groups. - Phone: 07700 900123. Email: hello@riversidedogwalks.co.uk. - I already have a separate booking page where customers pick a time: https://book.riversidedogwalks.co.uk. The website doesn't need its own booking system, it just needs to send people there. I'm not technical, and I want it 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.
1,060 output tokens back · read the full reply
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 · the one we attached
You say: Thanks, one page sounds right. My answers: 1. No photos yet. Leave space for them, but it must still look finished without them. 2. Please draft a few friendly lines about me and I'll correct them. My name is Sam. Don't invent facts about me. 3. I walk in Kingston upon Thames, along the river and in Canbury Gardens. Name the area but not my address. 4. Just say I'm insured. Nothing more yet. 5. No reviews yet, so leave that out. 6. I've attached a screenshot of a website I like the look of. I like the warm orange buttons, the big bold heading and how friendly and uncluttered it feels. Don't copy its words or pictures, just the feel. No logo. 7. I own riversidedogwalks.co.uk, but the free address is fine for now. 8. Yes to a short FAQ. Bad weather: I walk in rain, but not in storms or extreme heat. Keys: I can keep a spare key. No social media or WhatsApp. 9. Cancel with 24 hours' notice and there's no charge. Customers pay by bank transfer after each walk. Please make the website now. Keep it as simple as possible: just the files I'll need to upload, nothing I have to install. Every "Book" button should go to my booking page, and people on a phone should be able to tap to call me or email me.
8,469 output tokens back · read the full reply
Prompt 3 of 5
Ask it to check its work like a customer on a phone.
You say: I opened it by double-clicking and it looks great. Before I put it online, please check it carefully, as if you were a dog owner on a small phone and as if you were trying to break it: every button and link, tapping to call and email, anything that spills off the side of the screen, writing that's too small or too faint, someone who has their phone's text set very big, and anything that would trouble someone who uses a screen reader or only a keyboard. Also tell me anything a dog owner would want to know before trusting me that's still missing. Tell me in plain English what you found, then fix it in the files.
15,860 output tokens back · read the full reply
Prompt 4 of 5
Change something, the way you will once it's live.
You say: Two changes, the way I'll ask once it's live: 1. From next month the 60-minute walk will be £24, not £22. Please change it everywhere. 2. Add this to the FAQ: a second dog from the same household is £5 extra per walk. Then tell me which files you changed, so I know what to upload again, and anything else I need to change outside the website.
1,438 output tokens back · read the full reply
Prompt 5 of 5
Ask how to put it live from GitHub by clicking, and how to use your domain safely.
You say: I've made free GitHub and Cloudflare accounts. On GitHub I made a new repository called riverside-dog-walks (I switched on "Add README"), and in Cloudflare I went to Workers & Pages, Create application, Pages, Connect to Git, and picked that repository, so it 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, how to get the website into my repository using the GitHub website, what I should see at each step, how I find the address where it's live, and how I put a change live later (like the new price). I also own riversidedogwalks.co.uk, and my email uses it. How would I use it for the website later without breaking my email or my booking page?
2,851 output tokens back · read the full reply
After prompt 1 of 5
Reply to prompt 1 · 10.1 s · 1,060 output tokens
Describe your business, and say you already have a booking page.
A plan and questions, and nothing made yet. Ours proposed one page (a Book button at the top, prices, how it works, about you, get in touch) and asked nine questions. It promised not to invent facts about you, to add insurance details only if you confirm them, and to leave reviews out rather than make any up.



Reply to prompt 5 · 25.2 s · 2,851 output tokens
Ask how to put it live from GitHub by clicking, and how to use your domain safely.
Click-by-click steps on GitHub and Cloudflare, and a careful domain plan. Ours first pointed out the file already shows the new £24 price and offered a £22 version to go live with. Then: Add file, Upload files, drag in index.html (the file, not the folder), Commit changes; finish Cloudflare's setup with framework None; find the .pages.dev address and test every button on a phone. For the domain: don't move it to Cloudflare yet, use www with one new record, and leave the email and booking records alone.
04 · The result
The real thing, on the stage.
Screenshots of exactly what Claude produced, running on our machine on 1 October 2026. Nothing retouched.
We typed five plain-English prompts into one conversation with claude-sonnet-5-5 on 1 October 2026. One caveat: 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. We didn’t use 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 212.2 seconds writing them.
The first prompt made nothing, which is what we asked for. We described the business, gave the booking page’s address, and asked Claude to ask questions first. It proposed one page and asked nine questions. It said it wouldn’t invent facts about Sam, and would leave reviews out rather than make any up.
In the second prompt we answered, and attached a screenshot of one of our own sites, saying we liked the warm orange buttons and the big bold heading but not to copy its words or pictures. Claude saved one file, index.html: cream background, orange buttons, an orange paw drawing where a photo will go. It said it hadn’t opened it in a browser.
Then we tested it in a browser at laptop and phone size, opened from disk like a double-click. 38 of 44 checks passed. On a phone the page was 396px wide on a 390px screen, so it scrolled sideways, there was no skip link for keyboard users, and the Call button’s text was a touch too faint.
Prompt 3 is the one that matters. We asked Claude to check the page as a dog owner on a small phone and as someone trying to break it. It fixed the width, the contrast and the skip link, and then owned up to something worse: it had written “fully insured” (we’d only said “insured”), “no sign-up fees and no contracts” and “never rushed”. It took them all out. It did that only because we asked it to check, so read every line yourself. It also listed 11 things a dog owner might want to know, such as a photo, your experience and what a second dog costs, and added none of them.
After that, all 44 checks passed: nothing spills off a phone even with text at 200%, five Book buttons all go to the booking page, and tap-to-call and tap-to-email work.
Prompt 4 is what running the site looks like. We put the 60-minute walk up to £24 and added an FAQ answer about a second dog. Claude changed both places the price appeared, warned us not to upload until the new price starts, and reminded us to change the booking page too, which it can’t see. Still 44 of 44.
Prompt 5 asked how to get the site onto GitHub and live by clicking, and how to use Sam’s own domain without breaking email or the booking page. We told Claude we’d already made the repository and connected Cloudflare to it. Before any clicks, it pointed out that the file now shows the new £24 price and offered a £22 version to go live with first. Its steps matched GitHub’s and Cloudflare’s documentation closely, and its domain advice was careful: don’t move the whole domain to Cloudflare yet, add one record for www, and test email and the booking page afterwards.






demo.iwantaito.com/build-me-a-website-for-my-business/: Claude's unedited files, a made-up example.
index.html
05 · What we tested
We tried to break it. 5 of 6 held.
Run on our own machine against the unedited files. Nothing deployed while testing.
| What we tried | What happened | Result |
|---|---|---|
| Prompt 3 file opened by double-click, at laptop (1440x900) and phone (390x844) size in headless Chrome | 44 of 44 checks passed: no errors, nothing loaded from other websites, no sideways scrolling even with text at 200%, one main heading, a description for Google, the first Tab lands on a visible 'Skip to main content', a visible outline on every Tab stop, the FAQ opens when tapped | Pass |
| Book, call and email buttons | 5 Book links, all to the booking page; 3 tap-to-call links (+447700900123) and 2 tap-to-email links, all correct | Pass |
| Text size and contrast | Smallest text 15px; lowest text contrast 5.10:1 (the WCAG AA minimum is 4.5:1) | Pass |
| Prompt 4 file (new price and FAQ answer) | Same 44 of 44; £24 shows and the FAQ has 7 questions | Pass |
| Claude's photo instructions, on a copy with our test hero.jpg and sam.jpg saved next to index.html | Both photos appear with no code changes, nothing spills sideways. 6 of 6 | Pass |
| Prompt 2 first build, same checks | 38 of 44: the page was 396px wide on a 390px phone, so it scrolled sideways; no skip link; the Call button's text at 4.39:1 contrast. Prompt 3 fixed all three | Fail |
06 · Ship it
Put it live from GitHub, no terminal.
Your files go into your GitHub repository and Cloudflare publishes them by itself. The steps start from Claude's own answer and are checked by us against GitHub's and Cloudflare's documentation, which the sources below link to.
These clicks follow GitHub’s and Cloudflare’s documentation. Claude’s unedited files are live at demo.iwantaito.com/build-me-a-website-for-my-business/ (we host them ourselves, with a thin bar on top saying it’s a made-up example); the screenshots are from our own machine.
- Download index.html into a folder on your computer. If you have photos, save them beside it as hero.jpg and sam.jpg.
- On GitHub, open your riverside-dog-walks repository and select Add file, then Upload files. Drag in index.html and any photos: the files themselves, not the folder, so index.html sits at the top level. Leave “Commit directly to the main branch” selected and select Commit changes.
- If you left Cloudflare’s “Set up builds and deployments” screen open, check the production branch is main, the framework preset is None and the build command is blank, then select Save and Deploy. If you’d already finished it, there’s nothing to do: your commit starts a new deployment by itself.
- In Cloudflare, open Workers & Pages, then your project. Its address ends .pages.dev, such as riverside-dog-walks.pages.dev. Open it on your phone and tap every button: Book, call and email.
- To put a change live, such as the new price, ask Claude in the same chat and download the new index.html. On GitHub, select Add file, then Upload files, drag it in and select Commit changes. It replaces the old file of the same name. Cloudflare publishes it by itself in a minute or two; for a price change, upload it on the day the price starts. If something goes wrong, the project’s Deployments list keeps earlier versions: open the three-dot menu beside one and choose “Rollback to this deployment”.
- To use your own domain, the safe route is www. First screenshot every DNS record where you bought the domain. Then open the project, Custom domains, “Set up a domain”, and enter www.riversidedogwalks.co.uk. Only then add one CNAME record, named www, pointing to riverside-dog-walks.pages.dev, wherever your domain is managed. If a www record already exists, change it rather than adding a second. Leave every other record alone, including the ones for your email (MX and TXT) and your booking page. Cloudflare says that adding the CNAME before setting up the domain in Pages gives a 522 error. Afterwards, send yourself an email and open the booking page to check both still work.
The plain domain without www is harder: Cloudflare Pages needs the whole domain moved to Cloudflare (its nameservers changed) first. Claude suggested asking your domain company to forward it to www instead. Whether you can depends on the company; we haven’t checked.
On Claude Pro, you can skip the downloading and uploading. Ask Claude Code on the web for the change and it saves it to a branch of your repository; you merge it on GitHub and Cloudflare publishes it. The set-up page shows how.
No GitHub? Cloudflare’s “Drag and drop your files” works too, but you drag the whole folder in again for every change, and that project can’t be switched to GitHub later.
Free plan: Claude makes the files, you upload them
FreeTo change something: ask Claude, download the files it changed, and upload just those the same way. Files with the same name are replaced; the rest stay as they are.
£0: Claude Free, GitHub Free and Cloudflare's free plan.
Pro: you chat, Claude saves the change, Cloudflare publishes it
Claude Pro, $20 a monthClaude edits the files and saves them to GitHub on a separate branch, a draft copy. Cloudflare gives that branch its own preview address, so you can look before anything changes. Happy with it? Select Create PR, then on GitHub select Merge pull request, then Confirm merge. Cloudflare puts it live by itself.
07 · What it costs
What it costs.
£0 a month on Cloudflare's free plan and Claude's Free plan; a domain is the only cost, and Sam already owns one.
Hosting is £0 a month. Cloudflare says requests to static files are free and unlimited, and GitHub’s Free plan is enough to hold the site. Sam’s site is one file, plus any photos.
Claude’s Free plan covered everything here. Sam already owns the domain, which is the only cost; the free pages.dev address works without one.
08 · What it got wrong
5 things Claude got wrong, or left to you.
If Claude gets something wrong, we say so here. We never fix its files by hand; a fix is a follow-up prompt you can see above.
It made things up, then took them out
The first build said 'fully insured' (we said 'insured'), 'no sign-up fees and no contracts' and 'never rushed'. Claude removed them in prompt 3, but only because we asked it to check. Read every line before it goes live: these would be claims in your name.
The build output directory
Claude said to leave Cloudflare's build output directory empty 'or /'. Cloudflare's documentation says to leave the build command blank for a site with no build step, and doesn't say what goes in the output directory. Empty is what we'd try first.
One button name
Claude called the domain button 'Set up a custom domain'; Cloudflare's documentation calls it 'Set up a domain'. It warned that wording might differ, and the steps below use Cloudflare's name.
The trust details are still yours to add
No photo, full name, experience, extra-dog price or meet-and-greet, because we gave Claude none. It listed 11 such gaps and invented none of them.
The phone menu hides the section links
On a phone the top bar shows only the Book button; Prices, About, FAQ and Contact are hidden and you scroll instead. Fine for one page, but ask Claude for a menu if you add more pages.
Ours, disclosed
Built it? Where we can help next.
Ours: made by the same studio that runs this site. None of them changes anything above.
Ours
Adapt Progress Evolve
We build small business sites like this properly, if you'd rather not do it yourself.
Ours
What is GEO
Once the site is live, how to get it found and described correctly by AI assistants as well as Google.
Questions
Questions people ask.
Can Claude build a website for my business?
Yes, a small one. Five prompts in one conversation gave us a one-page site with prices, an FAQ and tap-to-call, and after Claude checked its own work it passed all 44 of our browser checks. It can't make up your photos, experience or reviews, and it shouldn't: read every claim before it goes live.
Do I need to use a terminal or install anything?
No. You type in a Claude chat, download the file it makes, and upload it to your repository on the GitHub website (Add file, then Upload files). Cloudflare, connected to that repository once, does the rest.
Can Claude put it online for me?
Not from a chat on the Free plan, as of October 2026: Claude's GitHub connection there only reads your files. But once GitHub is connected to Cloudflare, uploading the file to GitHub is putting the site live. On Claude Pro, Claude Code on the web can save a change to a branch of your repository; you merge it on GitHub and Cloudflare publishes it.
Does the website need its own booking system?
Not if you already have a booking page. Tell Claude the address and ask for every Book button to go there. Ours did, five buttons, all pointing at the same page.
Will using my own domain break my email?
Not on the route Claude suggested, which we checked against Cloudflare's documentation but didn't run: add www to your Pages project first, then one CNAME record where your domain is managed, and leave the email (MX and TXT) records alone. Screenshot every record before you start.
How much does it cost to run?
£0 a month on Cloudflare's free plan as of October 2026: requests for static files are free and unlimited. GitHub's Free plan holds the files and Claude's Free plan covered the chat. A domain is the only cost.
Sources for this page
10- Claude help: create and edit files with Claude (all plans; Settings > Capabilities)
- Claude help: uploading files to Claude (screenshots, 20 files per chat)
- Claude docs: GitHub integration (every plan, reads files only)
- GitHub Docs: adding a file to a repository (Add file > Upload files; 100 files at once, 25 MiB each)
- Cloudflare Pages: Git integration (Connect to Git; leave the build command blank; deploys on every push)
- Claude Code on the web: get started (Pro, Max and Team plans)
- Cloudflare Pages: Direct Upload, drag and drop (the no-GitHub alternative; can't switch to Git later)
- Cloudflare Pages custom domains (subdomain by CNAME; apex domains must be a Cloudflare zone; 522 if the CNAME comes first)
- Cloudflare Pages rollbacks
- Cloudflare Workers pricing ('Requests to static assets are free and unlimited')
For developers
For developers.
Skip this if you've never used a terminal. You don't need it.
The command-line route
If you’re happy in a terminal, skip the upload page. With the repository connected to Cloudflare Pages, every push to main deploys, and pushes to other branches get their own preview address (handy for checking a price change before it goes live):
git clone https://github.com/<you>/riverside-dog-walks.gitcp index.html riverside-dog-walks/cd riverside-dog-walksgit add .git commit -m "Add the site"git push origin mainThe first, command-line version of this page (claude-sonnet-5-5, 1 October 2026) built four pages and put them on Cloudflare Workers with static assets. Its config, with the files in a public folder:
jsonc
{
"name": "riverside-dog-walks",
"compatibility_date": "2026-10-01",
"assets": { "directory": "./public" }
}npm install --save-dev wranglernpx wrangler devnpx wrangler loginnpx wrangler deploywrangler dev served it at http://localhost:8787. Wrangler 4.131.2 refused that compatibility date (its newest was 2026-09-18); 4.145.0 ran it. For the domain, that run added "workers_dev": false and "routes": [{ "pattern": "riversidedogwalks.co.uk", "custom_domain": true }, { "pattern": "www.riversidedogwalks.co.uk", "custom_domain": true }], which needs the domain to be an active Cloudflare zone first.
