---
title: "I want AI to build me a website"
url: https://iwantaito.com/asks/build-me-a-website/
summary: "Five plain-English prompts in a Claude chat made a three-page website from a description and a screenshot we liked. Upload the files to GitHub and Cloudflare puts them live: free, no terminal."
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 a website

Five plain-English prompts in a Claude chat made a three-page website from a description and a screenshot we liked. Upload the files to GitHub and Cloudflare puts them live: free, no terminal.

> Tom's Towpath Walks: Made up for this demo. Tom, his walks and his email address (tom@example.com) are invented; Claude wrote the sample walks itself, and 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 0ab94fc4-ecc1-42d3-a59d-3b7deac260f3. Claude's time: 2 min 39 s. Edited by hand: no. Full transcript: https://iwantaito.com/transcripts/build-me-a-website.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 your website is about.

```text
I'd like a small website and I've never made one. I'm Tom. In my spare time I walk canal towpaths and write short notes about each walk, and I'd like a website called "Tom's Towpath Walks" to put them on.

On it I'd like:
- a home page that says what the site is and shows my latest walks
- a page with all my walks. There are four so far. For each one: its name, where it starts and finishes, how many miles, roughly how long it takes, who it's good for (like "pushchairs" or "pub at the end") and a short note
- a few lines about me
- a way to email me (tom@example.com). I don't want a form.

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.
```

What you should see: A plan and some questions, and nothing made yet. Ours proposed three pages (home, all walks, and an About page with the email link), named free hosts, asked six questions (the walks, the About text, photos, the look, the address, adding walks later) and warned that an email address on a page attracts spam.

### 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 sounds right. My answers:

1. Please make up four walks for now so I can see how it looks. I'll swap in my real ones later.
2. Make up a few friendly lines about me too. I'll change them.
3. No photos yet.
4. I've attached a screenshot of a website I like the look of. I like the cream background, the big old-fashioned heading and how calm and tidy it feels. Don't copy its words, just the feel.
5. The free address is fine for now.
6. I'd like to be able to ask you to add walks later.

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.
```

What you should see: Files to download. Ours saved four: index.html, walks.html, about.html and style.css, with a cream background and a big serif heading. It said it hadn't opened them in a browser and that the walks and places were invented.

### Prompt 3 of 5: Ask it to check its work like a visitor on a phone.

```text
I opened it by double-clicking index.html and it looks lovely. Before I put it online, please check every page carefully, as if you were someone on a small phone and as if you were trying to find mistakes: links that go nowhere, a menu that's awkward on a phone, writing that's too small or too faint, anything that spills off the side of the screen, and anything that would trouble someone who uses a screen reader or only a keyboard.

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 enlarged tiny labels, darkened faint text, made menu links and home-page cards easier to tap, added a skip link, a keyboard focus outline and a main heading on every page, and said it had checked by reading the code, not on a real phone.

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

```text
I've just done a new walk, so please add it as my latest one:

Newbury to Hungerford. Starts at Newbury Wharf and finishes at Hungerford Town Bridge. About 9 miles, roughly 3 and a half hours. Good for: a long day out, train back. My note: "Swans, a dozen locks and a very welcome bench at Kintbury."

Then tell me which files you changed, so I know which ones to upload again.
```

What you should see: The walk added at the top of the home page and the walks page, and a list of the files it changed. Ours changed index.html and walks.html, used the note word for word, and filled in today's date because we hadn't given one (it said so).

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

```text
I've made free GitHub and Cloudflare accounts. On GitHub I made a new repository called toms-towpath-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 walk I just added).
```

What you should see: Click-by-click steps on GitHub and Cloudflare. Ours: Add file, Upload files, drag in the four files (not the folder, or the site ends up one level too deep), Commit changes; finish Cloudflare's setup screen with framework preset None and a blank build command; find the .pages.dev address on the project page; for a change, upload only the changed files and Cloudflare publishes by itself. It said its button names were from memory.

## 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 files to download. A GitHub account with an empty repository, which is where your files will live. And a Cloudflare account connected to that repository, which puts whatever is in it on the internet. [The set-up page](/start/) 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 Tom's Towpath Walks. Tom is made up. He walks canal towpaths, writes short notes about each walk, and wants a small website that costs nothing to run. He isn't technical, so the prompts aren't either. Change the details to yours.

## What happened when we ran it

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 158.9 seconds writing them.

The first prompt just described Tom and the pages he wanted, and asked Claude to ask questions before making anything. It did: six of them, about the walks, the About text, photos, the look, the address and adding walks later. It also warned that a plain email address on a page can attract spam. Fair point.

In the second prompt we answered, asked it to make up four walks, and attached a screenshot of one of our own sites, saying we liked the cream background, the big old-fashioned heading and the calm feel, but not to copy the words. Claude saved four files: index.html, walks.html, about.html and style.css. It said it hadn't opened them in a browser and that the walks and places were invented.

Then we tested them in a browser at laptop and phone size, every page, opened from disk like a double-click. After prompt 2, 78 of 94 checks passed. Two pages had no main heading, there was no skip link for keyboard users, and some text was as small as 11.5px.

So prompt 3 asked Claude to check every page as someone on a small phone, and as someone hunting for mistakes, then fix the files. It made tiny text bigger, darkened faint text, made the menu and the home-page cards easier to tap, added a "Skip to main content" link and a visible keyboard outline, and gave every page a proper main heading. It was honest that it had checked by reading the code, not on a real phone or with a screen reader.

After that, 96 of 100 checks passed: no errors, nothing loaded from other websites, no sideways scrolling, every link working. The four that failed are the same thing on two pages at two sizes: the small capital labels are 13px, and we look for 14px.

Prompt 4 is what keeping a site up to date looks like. We gave it a fifth walk, and Claude put it at the top of both pages, changed the count to five, and used Tom's note word for word. We hadn't given a date, so it used the day of the run and said so.

Prompt 5 asked how to get the files onto GitHub and live, by clicking. We told Claude we'd already made the repository and connected Cloudflare to it. It answered in four parts: upload the four files on GitHub, finish Cloudflare's setup screen, find the .pages.dev address, and later upload only the files that changed. It warned against dragging the folder instead of the files, which would put the site one level too deep, and said its button names were from memory. We've checked its clicks against GitHub's and Cloudflare's documentation below.

## Put it live

These clicks follow GitHub's and Cloudflare's documentation, so the button names are theirs. Claude's unedited files are live at [demo.iwantaito.com/build-me-a-website/](https://demo.iwantaito.com/build-me-a-website/) (we host them ourselves, with a thin bar on top saying it's a made-up example); the screenshots are from our own machine.

1. Download the four files Claude made into one folder: index.html, walks.html, about.html and style.css.
2. On GitHub, open your toms-towpath-walks repository and select Add file, then Upload files. Drag in the four files themselves, not the folder they're in, or the site ends up one level too deep and won't show. Select Commit changes. The repository now lists five files; README.md doesn't appear on the site.
3. 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.
4. In Cloudflare, open Workers & Pages, then your project. Its address ends .pages.dev, such as toms-towpath-walks.pages.dev. Open it and click through all three pages.
5. To put a change live, such as a new walk, ask Claude in the same chat and download the files it changed (for the walk, index.html and walks.html). On GitHub, select Add file, then Upload files, drag just those in and select Commit changes. Files with the same name are replaced; the rest stay. Cloudflare publishes the change by itself, usually within a minute or two. If it doesn't appear, look at the newest entry in the project's Deployments list.
6. Your own domain is optional. Open the project, then Custom domains, then "Set up a domain". A plain domain like tomstowpathwalks.co.uk has to be added to Cloudflare first, and its nameservers changed wherever you bought it. A subdomain such as walks.example.co.uk can point at the site with a CNAME record instead.

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](/start/#pro) shows how, with a real run on Tom's site.

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.

## What it costs

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 files. Tom's site is four of them.

Claude's Free plan covered everything here. A domain is the only possible cost, and it's optional. We haven't checked domain prices, so we won't guess; the free pages.dev address works without one.

## For developers

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:

```
git clone https://github.com/<you>/toms-towpath-walks.git
cp index.html walks.html about.html style.css toms-towpath-walks/
cd toms-towpath-walks
git add .
git commit -m "Add the site"
git push origin main
```

Without GitHub, the same folder deploys with Wrangler, Cloudflare's command-line tool, to a separate Direct Upload project (a Git-connected project is meant to deploy from Git). These commands come from the first, command-line version of this page (claude-sonnet-5-5, 1 October 2026), checked then against Wrangler 4.145.0, which needs Node.js 22 or newer.

```
npx wrangler pages dev toms-towpath-walks
npx wrangler login
npx wrangler pages project create toms-towpath-walks --production-branch main
npx wrangler pages deploy toms-towpath-walks --project-name toms-towpath-walks --branch main
```

The first serves the site locally (it printed "Ready on http://localhost:8788" in our run). The last uploads it; run it again after every change.

## What we tested

- PASS: Prompt 3 files opened by double-click, every page at laptop (1440x900) and phone (390x844) size in headless Chrome. 96 of 100 checks passed: no errors, nothing loaded from other websites, no sideways scrolling, every link and in-page link works, the menu marks the current page, one main heading per page, skip link reachable with Tab
- PASS: Text contrast. Lowest text contrast 6.79:1 on both sizes (the WCAG AA minimum is 4.5:1)
- FAIL: Smallest text. The small capital labels on the home and walks pages are 13px, below the 14px we look for (the 4 failed checks above)
- PASS: Prompt 4 files (the fifth walk added). Same 96 of 100; the new walk is first on both pages and nothing spills sideways on a phone
- FAIL: Prompt 2 first build, same checks. 78 of 94: no main heading on two pages, no skip link, smallest text 11.5 to 12.5px. Prompt 3 fixed the first two

## What it got wrong

- **The build output directory.** Claude said to leave Cloudflare's build output directory empty, 'or type / if it insists on something'. 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. Leaving it empty is what we'd try first.
- **A taken project name.** Claude said Cloudflare adds extra letters to the address if the project name is taken. Cloudflare's Git integration page doesn't say so (its drag-and-drop page says it adds a few random characters). Either way, use the address the project page shows.
- **No 'page not found' page.** There is no 404.html, so Cloudflare Pages treats the site as a single-page app and shows the home page for any mistyped address. Ask Claude for a '404.html page not found page' if that bothers you.

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

## From the same studio

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

- [What is GEO](https://whatisgeo.app/): Once the site is live, a free guide to getting it read and cited by AI assistants.
- [Adapt Progress Evolve](https://adaptprogressevolve.com/): We build these properly, if you'd rather not do it yourself.

## 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 CV or portfolio website](https://iwantaito.com/asks/build-me-a-cv-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

- [Claude help: create and edit files with Claude (all plans; Settings > Capabilities)](https://support.claude.com/en/articles/12111783)
- [Claude help: uploading files to Claude (screenshots, 20 files per chat)](https://support.claude.com/en/articles/8241126)
- [Claude docs: GitHub integration (every plan, reads files only)](https://claude.com/docs/connectors/github)
- [GitHub Docs: quickstart for repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/quickstart-for-repositories)
- [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)
- [Cloudflare Pages: Git integration (Connect to Git; leave the build command blank; deploys on every push)](https://developers.cloudflare.com/pages/get-started/git-integration/)
- [Cloudflare Pages: preview deployments (other branches get their own address)](https://developers.cloudflare.com/pages/configuration/preview-deployments/)
- [Claude Code on the web: get started (Pro, Max and Team plans)](https://code.claude.com/docs/en/web-quickstart)
- [Cloudflare Workers pricing ('Requests to static assets are free and unlimited')](https://developers.cloudflare.com/workers/platform/pricing/)
- [Cloudflare Pages custom domains (apex domains must be a Cloudflare zone)](https://developers.cloudflare.com/pages/configuration/custom-domains/)
- [Cloudflare Pages: serving pages (no 404.html means single-page app behaviour)](https://developers.cloudflare.com/pages/configuration/serving-pages/)
- [Cloudflare Pages: Direct Upload, drag and drop (the no-GitHub alternative; can't switch to Git later)](https://developers.cloudflare.com/pages/get-started/direct-upload/)

## Questions people ask

### Can Claude build me a website for free?

Yes, in our run. Five prompts in a conversation with Claude made a three-page site, and Claude's Free plan includes file creation. GitHub's Free plan holds the files and Cloudflare hosts plain files like these for free. A domain name is the only thing you might pay for, and it's optional.

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

No. You type in a Claude chat, download the files it makes, and upload them to your repository on the GitHub website (Add file, then Upload files). Cloudflare, connected to that repository once, does the rest.

### Can Claude put the website 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 files to GitHub is putting the site live, and it takes a minute. On Claude Pro, Claude Code on the web can save the change to a branch of your repository for you; you merge it on GitHub and Cloudflare publishes it.

### Can I show Claude a website I like?

Yes. Attach a screenshot to your message and say what you like about it. We attached one of our own sites and asked for the feel, not the words, and Claude matched the cream background and the big serif heading.

### How do I change the site later?

Ask Claude in the same chat and have it tell you which files it changed. Download those, then on GitHub select Add file, Upload files, drag them in and select Commit changes. Files with the same name are replaced and the rest stay. Cloudflare puts the change live by itself, usually within a minute or two.
