# Transcript: build-me-a-cv-website

One conversation, session d0754943-b90e-4c13-9a6a-1aebdf13a068 (prompts 1 to 4 were sent in session 919c3b2f-10c7-4d0b-9c87-4abc2379b7db; from prompt 5 on, the conversation was continued from that exact point with a new prompt, so Claude saw everything before it), model claude-sonnet-5-5, 2.1.287 (Claude Code), run with claude -p on 2026-10-01. Claude could only create, read and edit files in an empty folder (told that files it saves are offered to the user as downloads), the nearest headless equivalent of claude.ai with file creation switched on. No terminal, no web search, no connectors. Each step was sent with --resume so Claude saw everything before it. Replies are verbatim; lines in *[brackets]* mark where Claude saved a file, and the files themselves are published unedited.

---

## Prompt 1: you

I'm a freelance illustrator called Nell Ashcombe. I'd like a simple website that's my CV and portfolio on one page, so I can send clients and recruiters a link instead of a Word document. I've never made a website.

On it I'd like:
- my name, what I do ("Freelance illustrator, children's books and packaging") and a few lines about me
- six pieces of my work, each with a title, one line about it and the year. I'll add my pictures later
- my work history (three jobs) and my education (one degree)
- a clear way to get in touch: my email is hello@nellashcombe.co.uk. I don't want a form.

It needs to look professional on a phone and a laptop, and print neatly if someone wants a paper copy.

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.

### Claude

Hi Nell, I'll start with what I plan to make, then ask a few questions. I won't build anything until you've answered.

## What I'm going to make

**A single web page**, one file named `index.html`, that works like a digital CV and portfolio. It will have these sections, top to bottom:

1. **Header**: your name, "Freelance illustrator, children's books and packaging", and a short intro about you, with a clear "Email me" button.
2. **Selected work**: six tiles, each with a picture, title, one-line description and year. Until your pictures are ready, each tile will show a neat grey placeholder. Later you can drop your images into a folder and I'll show you how to point each tile at one.
3. **Experience**: your three jobs.
4. **Education**: your degree.
5. **Get in touch**: your email address as a link, so clicking it opens the visitor's email app. There's no form.

**How it will look and work:**
- It adapts to phones, tablets and laptops.
- When someone prints it or saves it as a PDF, it switches to a clean black-on-white layout with no buttons and sensible page breaks.
- It's a plain file with no accounts or software to install, so there's nothing to maintain.

**Free hosting:** Once it's built, you can put it online for nothing using a service like Netlify Drop, GitHub Pages or Cloudflare Pages. I'll give you step-by-step instructions. Netlify Drop is the easiest, because you drag the folder onto a web page. A custom address such as `nellashcombe.co.uk` costs a small yearly fee through your domain provider. Do you already own that domain?

## Questions for you

**About the content** (if you don't have something yet, I'll put in clearly marked placeholder text you can replace):
1. **Your "about me" text:** do you have a few lines written, or should I draft something from a few facts about you (where you're based, your style, favourite subjects, what clients say about you)? If I draft it, I'll write only what you tell me and won't invent anything.
2. **Six pieces of work:** what are the titles, one-line descriptions and years? Or should I use obvious placeholders for now?
3. **Three jobs:** for each, the job title, employer, dates, and one or two lines on what you did. They could be freelance clients or studios.
4. **Your degree:** the subject, the university, and the years.

**About the look:**
5. **Style:** which feels closest to you? Clean and minimal, warm and friendly (soft colours, rounded shapes), or bold and graphic. Is there a colour you like or want to avoid? Your illustrations will be the focus, so I'd lean towards a quiet background.
6. **Extras:** would you like links to Instagram, Behance or a similar profile? Would you like a "Download CV as PDF" button? Printing already works, so this is optional.

**Practical:**
7. **Do you own `nellashcombe.co.uk`,** or do you only have the email address for now?
8. **Do you have a photo of yourself** you'd like on the page, or would you prefer not to include one?

Answer as much or as little as you like. For anything you skip, I'll use sensible placeholders and list them for you afterwards, so you can see what's left to fill in.

---

## Prompt 2: you

Thanks, that sounds right. My answers:

1. Please draft the "about me" from this and I'll correct it: I'm based in Bristol, I work in watercolour and ink, and I love drawing animals and food. Don't invent anything else.
2. Make up six pieces of work for now and mark them clearly so I know what to replace.
3. Make up three jobs too, clearly marked.
4. Same for my degree.
5. I've attached a screenshot of a website I like the look of. I like the big bold heading, the white background with one strong colour, and how clean and confident it feels. Don't copy its words, just the feel.
6. No social links and no PDF button. Some people don't use an email app, though, so please make it easy to copy my email address too.
7. Yes, I own nellashcombe.co.uk, but a free address is fine to start with.
8. No photo of me.

Please make it now. Keep it as simple as possible: just the files I'll need to upload, nothing I have to install.

*[Attached: site-i-like.png]*

### Claude

*[Claude saved the file `index.html`]*

Your site is built. It's a single file, `index.html`, and there's nothing to install. I haven't opened it in a browser or tried printing it, so look it over on your phone and laptop before you send the link to anyone.

## What's on it
- **Look:** a white background with one strong blue, and a huge, tight "Nell Ashcombe." heading, in the spirit of your screenshot. I used none of its words. It uses the fonts already on each person's device, so it loads fast.
- **Top of the page:** your name, "Freelance illustrator, children's books and packaging", and a short intro. I wrote the intro only from what you told me: Bristol, watercolour and ink, animals and food. It also has an "Email me" button.
- **Selected work:** six tiles, each with a title, a one-line description and a year.
- **Experience and Education:** three jobs and one degree.
- **Get in touch:** your email address, an "Open in my email app" button and a "Copy email address" button. It has no form, no social links and no PDF button.
- **Printing:** the menu and buttons disappear, the page turns black on white, and the sections don't split awkwardly across pages. Your email address stays visible on paper.

## What you need to replace
The made-up content is marked with a yellow **[PLACEHOLDER]** tag on screen. The tag doesn't show when printed. The things to change are:
- The six piece titles, descriptions and years.
- The three job titles, employers, dates and descriptions.
- The degree, university and years.
- Your "about me" text. Please check it, since it's only a short draft.

To edit, right-click `index.html` and open it in Notepad or TextEdit. Search for the word "EDIT" to find the places to change. Delete the `[PLACEHOLDER]` tags as you go.

## Adding your pictures later
Make a folder called `images` next to `index.html`. Save your pictures in it as `work-1.jpg` through `work-6.jpg`. Until a picture exists, its tile shows a grey box.

## Putting it online for free
1. Go to **app.netlify.com/drop**. You'll need to make a free account.
2. Drag the folder containing `index.html` onto the page. You'll get a web address straight away.
3. When you're ready, you can connect `nellashcombe.co.uk` in Netlify's domain settings. Since you already own it, there's no extra cost.

The file is at `[our folder]/index.html`. If you tell me your real details, I can fill them in for you.

---

## Prompt 3: you

I opened it by double-clicking and it looks lovely. Before I send it to anyone, please check it carefully, as a recruiter would on a small phone, and as if you were trying to break it: a very long title for a piece of work, a missing picture, using only the keyboard, a screen reader, the copy button in a browser that blocks copying, printing it, and writing that's too small or too faint.

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

### Claude

I'll go through the file against each of your checks, then fix what I find. I can only read and edit the file here. I can't open it in a real browser, phone or screen reader. So this is a careful code review plus reasoning about how browsers behave, and you should still look at it on your own phone afterwards.

*[Claude saved the file `index.html`]*

I checked the page against each of your tests and fixed everything I found in `index.html`. I could only read and edit the file. I couldn't open it in a real browser, phone, screen reader or printer, so the fixes come from careful reading of the code. Please try it yourself, especially a print preview and your own phone.

## What I found and fixed

**Very long title for a piece of work**
- A long word or title could have pushed a tile wider than the screen and made the page scroll sideways on a phone. The same went for long job titles and employer names.
- Long text now wraps inside its own box, in the work tiles, CV rows and big headings.

**Missing picture**
- The grey box already showed correctly. But a screen reader would have read out "Picture 1" as if it were content, so I hid that label from screen readers.
- Your pictures were going to be cropped to fit the boxes. For an illustrator that's a real problem, because a tall or wide piece would lose its edges. Pictures now show whole, with a pale grey border if the shape doesn't match. If you'd prefer filled boxes, there's a one-word change marked `EDIT` in the file.
- The alt text (the description a screen reader reads out for a picture) was just the piece's title, so it would have been read twice. It now says `[Describe picture 1]` and so on. When you add each picture, write a short description there. The file has an example.
- Save your pictures as `.jpg` with those exact names, or they won't appear. Make them around 1200 pixels wide so the page stays fast on a phone.

**Keyboard only**
- Focus outlines already worked.
- I added a "Skip to main content" link. It only appears when someone presses Tab.
- The menu links were small to tap, so I made them bigger.
- The top bar now wraps onto two lines on very narrow screens or with large text, rather than squashing.

**Screen reader**
- Sections are now labelled, and the name heading is read as "Nell Ashcombe" with a proper space.
- The copy button's message is announced when it appears.
- The logo link now goes to the top of the page. Before, it skipped the header.

**Copy button in a browser that blocks copying**
- Before, it just told people to copy the address by hand. Now it tries a second copying method first.
- If that's blocked too, it highlights the address and explains how to copy it: Ctrl+C, Cmd+C, or press and hold on a phone.
- If scripts are switched off, the button stays hidden instead of sitting there doing nothing.

**Printing**
- The top bar repeated your name above the big heading on paper, so it no longer prints.
- The yellow `[PLACEHOLDER]` tags no longer print.
- The blue squares by the headings could have vanished, because browsers skip colours when printing. They now print black.
- The "Get in touch" section can no longer split across two pages.
- The intro line used a screen-based size that could print oddly. It now has its own print size.
- In the print dialog, switch off **Headers and footers**. Otherwise the browser adds a date and the file name, which I can't control from the page.

**Writing too small or too faint**
- The grey "Picture 1" text on the empty boxes was too pale to read comfortably. I darkened it.
- The smallest text was about 12 to 13 pixels: the labels, the years and the footer. I raised each of those a little.
- I also checked the main colours. The blue and the grey body text are both readable on white.
- The intro line "children's books and packaging" was meant to be blue but wasn't, because of a mistake in my code. It's blue now.

## Still to do
- Replace everything marked `[PLACEHOLDER]`.
- Write the alt text when you add your pictures.
- After you publish, send the link to yourself and open it on your own phone before sending it to clients.

---

## Prompt 4: you

I've finished my first real piece, so please swap it in for the first made-up one:

Title: "The Hedgehog Who Wouldn't Hibernate: a picture book for ages 3 to 6, cover and all thirty-two inside spreads". One line: "Watercolour and ink illustrations for a winter bedtime story." Year: 2026. The picture is called hedgehog-cover.jpg.

Tell me exactly where to put the picture, and what I need to upload again.

### Claude

*[Claude edited the file `index.html`]*

I've swapped your hedgehog book in as the first piece, with the title, one line and year exactly as you gave them. The `[PLACEHOLDER]` tag is gone from that tile. I haven't seen the picture or opened the page in a browser.

## Where to put the picture
1. Make a folder called **`images`** (all lowercase) in the same place as `index.html`, if you haven't already.
2. Put **`hedgehog-cover.jpg`** inside it. The name must match exactly, including lowercase letters and the dash.

Your folder should look like this:
```
your-website-folder/
├── index.html
└── images/
    └── hedgehog-cover.jpg
```

## What to upload again
You need to upload two things:
- **`index.html`**, because it has changed.
- **The `images` folder** with the picture in it.

If you use Netlify Drop, the simplest way is to drag the whole folder, `index.html` and `images` together, onto the page again. Netlify may give you a new web address that way. To keep your existing address, open your site in Netlify, go to **Deploys**, and drag the folder onto the box that says to drop a new deploy.

## Two things to check
- **The title is long.** I used it exactly as written. It wraps onto several lines in the tile and will look heavy next to the short sample titles. "The Hedgehog Who Wouldn't Hibernate" would sit better as the title, with "a picture book for ages 3 to 6, cover and all thirty-two inside spreads" moved into the one-line description. I can change it if you like.
- **The picture description for screen readers.** I wrote "Cover of The Hedgehog Who Wouldn't Hibernate, a picture book", since that's all I know. If you'd like it to describe what's in the picture, such as the hedgehog's pose or the colours, edit the `alt="..."` text in that tile. The picture is shown whole and not cropped, so a very tall or wide image will have pale grey margins.

If the picture doesn't appear after you upload, the usual cause is a mismatch in the file name or folder name. Another is that the file ended up as `.jpeg` or `.JPG`, which counts as a different name.

---

## Prompt 5: you

I've made free GitHub and Cloudflare accounts. On GitHub I made a new repository called nell-ashcombe (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 my page 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 hedgehog picture).

I also own nellashcombe.co.uk, and my email uses it. How would I use it for the page later without breaking my email?

### Claude

I can't see your screen, and GitHub and Cloudflare change their buttons now and then. The steps below are from what I know of both sites, so if a label differs slightly, go by the sense of it.

## Part 1: Get the page into GitHub

Before you start, put `index.html` and the `images` folder (with `hedgehog-cover.jpg` inside) in one folder on your computer.

1. Go to github.com and open your **nell-ashcombe** repository. You should see a file list containing just `README.md`.
2. Click **Add file**, then **Upload files**. You'll see a large box that says "Drag files here".
3. Drag in **`index.html`** and the **`images`** folder. Chrome, Edge and Firefox accept whole folders. Safari often doesn't, so use one of those browsers for this.
4. Wait for the file list to appear under the box. You should see `index.html` and `images/hedgehog-cover.jpg`. If the picture is listed without `images/` in front of it, it will be in the wrong place, so remove it and drag the folder again.
5. Scroll down and click the green **Commit changes** button. You'll be taken back to the repository page, which now lists `images`, `index.html` and `README.md`.

Check the result by clicking `index.html`. You should see the code of your page.

## Part 2: Finish the Cloudflare setup

You may already be on, or be able to return to, a "Set up builds and deployments" screen. If so:
- **Framework preset:** None.
- **Build command:** leave empty.
- **Build output directory:** leave empty, or put `/` if it insists on something.

Then click **Save and Deploy**. You'll see a progress screen. When it says success, the site is live. If your first deploy ran before you uploaded the page, it may show an empty site. Don't worry, because your upload in Part 1 triggers a new deploy.

## Part 3: Find your live address
1. In Cloudflare, go to **Workers & Pages** and click your project.
2. Near the top you'll see a link ending in **`.pages.dev`**, for example `nell-ashcombe.pages.dev`. Cloudflare may add extra letters if the name was taken.
3. Click it. You should see your page.

The live site is public, so anyone with the link can see it. It still has the yellow `[PLACEHOLDER]` tags on most pieces. I'd hold off sending the link to clients until those are replaced.

## Part 4: Putting a change live later
This works for the hedgehog picture, new text or anything else.
1. In your repository, click **Add file**, then **Upload files**.
2. Drag in the changed file. For a new picture, drag in the `images` folder again. Uploading a file with the same name and location replaces the old one.
3. Click **Commit changes**.
4. Cloudflare notices and redeploys on its own, usually within a minute or two. You can watch it under your project's **Deployments** tab.
5. Refresh your live page. If you still see the old version, do a hard refresh with Ctrl+Shift+R, or Cmd+Shift+R on a Mac.

To edit text directly on GitHub, click `index.html`, then the pencil icon, make your change, and click **Commit changes**.

## Part 5: Using nellashcombe.co.uk without breaking email
Your email depends on **MX records** (and usually some TXT records) in your domain's DNS settings. The website uses different records. As long as you don't delete or change the email ones, email keeps working.

**Safest first step: use `www.nellashcombe.co.uk`.**
1. In Cloudflare, open your project, then **Custom domains**, then **Set up a custom domain**. Enter `www.nellashcombe.co.uk`.
2. Cloudflare will tell you what to do. If your domain's DNS is managed elsewhere, such as your registrar, it will ask you to add a **CNAME** record for `www` pointing to your `.pages.dev` address.
3. Add that one record where your DNS is managed, then wait. It can take from minutes to a few hours.

This adds a record and doesn't touch anything else.

**Before changing any DNS,** take screenshots of all the existing records. If a `www` record already exists, for example pointing at a parking page, you'll replace that one record only. Never touch records of type MX, or TXT records mentioning SPF, DKIM or DMARC.

**Using the bare `nellashcombe.co.uk` (no www)** is trickier. Cloudflare Pages normally needs the whole domain's DNS moved to Cloudflare. That's a bigger change, because email depends on every record being copied across correctly. If you want it later:
- Before switching, compare Cloudflare's imported records against your screenshots. Check especially the MX and TXT records.
- Make sure the email records are set to **DNS only** (grey cloud), not proxied.
- Send yourself a test email, and ask someone to email you, straight after the switch.

A simpler alternative is to ask your registrar to forward the bare address to `www`.

If you tell me who hosts your email, such as Google Workspace, Fastmail or your registrar, and where the domain's DNS is managed, I can give you more specific advice for when you reach this stage.
