About 1 hour / free
LAUNCH GUIDE

Your site online,
step by step.

From the downloaded zip to a site on your own domain, without a terminal or software to install. Everything happens in your browser.

Time
About an hour, domain aside
Cost
Free. A domain is €10–15 a year
Accounts
GitHub, Cloudflare, ChatGPT
To install
Nothing. A browser is enough

SEVEN STEPS

Each step ends with a check: what you should see before going further. The screenshots match the screens you will meet.

Step 01 15 min

Set up your accounts and content

Three free accounts, and everything the site has to say gathered in one folder.

Three tools, each with one job. All of them have a free plan that covers a business site; only the domain name costs money, and it is optional.

Cloudflare, ChatGPT (OpenAI) and GitHub: the three tools in this guide.
Screenshot 1-1 Cloudflare, ChatGPT (OpenAI) and GitHub: the three tools in this guide.
ToolWhat it doesPrice
GitHubHolds your site’s files and the history of every change.Free, private repositories included
Cloudflare PagesBuilds the site and publishes it, automatically, on every change.Free
ChatGPTEdits the files for you when you ask in plain words.Free: the free plan is enough
Domain nameOptional: your address, such as your-domain.com.€10–15 a year

Create the accounts

  1. Sign up at github.com . Pick a plain username: it shows in your repositories’ addresses.
  2. Sign up at dash.cloudflare.com .
  3. If you do not have one yet, sign up at chatgpt.com .

Gather your content

Put everything in one folder on your computer before you start: customising goes much faster.

  • Logo: SVG if you can, otherwise PNG on a transparent background.
  • Copy: one document per page is enough (home, about, services…).
  • Photos: JPG, 2,000 px wide at most, with plain names (team.jpg rather than IMG_4032.JPG).
  • Contact details: address, phone, email, opening hours, social links.
  • Colours: your brand’s codes (for example #1F4E79), if you have them.
Step 02 10 min

Put the theme on GitHub

A private repository, and the theme’s files dropped into it.

Create the repository

  1. On GitHub, open the Repositories tab of your profile and click the green New button (or + at the top right, then New repository).
  2. Name it, for example my-site, and tick Private. Tick nothing else: no README, no .gitignore, no licence.
  3. Click Create repository.
The Repositories tab of your profile, and the green New button.
Screenshot 2-1 The Repositories tab of your profile, and the green New button.

Prepare the files

  1. Unzip the .zip file you downloaded: on Windows, open it and click Extract all; on a Mac, double-click it.
  2. Open the folder it produces (theme-name-v1.0.0). You will upload what is inside it, not the folder itself.
The .zip open in Windows File Explorer: a single folder, the theme’s, and the Extract all button.
Screenshot 2-2 The .zip open in Windows File Explorer: a single folder, the theme’s, and the Extract all button.

Upload the files

  1. On the empty repository’s page, click the uploading an existing file link.
  2. In the theme folder, select everything (Ctrl + A, or Cmd + A on a Mac) and drag the selection into the GitHub window.
  3. Wait for the upload to finish, then click Commit changes.
The empty repository: the uploading an existing file link, under Quick setup.
Screenshot 2-3 The empty repository: the uploading an existing file link, under Quick setup.
Everything inside the theme folder, selected and dragged onto GitHub’s drop area.
Screenshot 2-4 Everything inside the theme folder, selected and dragged onto GitHub’s drop area.
At the bottom of the page, the green Commit changes button that saves the upload.
Screenshot 2-5 At the bottom of the page, the green Commit changes button that saves the upload.
Step 03 10 min

Publish with Cloudflare Pages

Cloudflare reads your repository, builds the site and gives it a temporary address.

Publish before you customise: from this step on, every change saved on GitHub goes live by itself, and you see each one on the real site.

Connect Cloudflare to GitHub

  1. In Cloudflare, open Workers & Pages in the left menu, then click Create application.
  2. Choose Pages, then Import an existing Git repository. Cloudflare sometimes puts Workers first: look for the word Pages.
  3. Click Connect GitHub and authorise Cloudflare. When GitHub offers it, choose Only select repositories and pick your repository: Cloudflare only needs that one.
  4. Select the repository, then Begin setup.
Screenshot 3-1 Choosing Pages in Workers & Pages.
Screenshot 3-2 Authorising GitHub, for your repository only.

The exact settings

FieldValue
Project namemy-site (your temporary address will be my-site.pages.dev)
Production branchmain
Framework presetAstro
Build commandnpm run build
Build output directorydist
Screenshot 3-3 The build settings, filled in by the Astro preset.
  1. Click Save and Deploy. The first build takes a minute or two.
  2. When the success message shows, open https://my-site.pages.dev: your site is live, with the theme’s demo content.
Screenshot 3-4 The build log, finished successfully.
Step 04 30 min and up

Customise the site with ChatGPT

You describe what you want; ChatGPT edits the files in the repository.

Connect GitHub to ChatGPT (once)

  1. In ChatGPT, open Settings → Apps (the menu may be called Connectors, depending on the version).
  2. Choose GitHub, then Connect.
  3. GitHub asks you to install the ChatGPT app: choose Only select repositories and pick your repository. Give it access to that one only.
Screenshot 4-1 The GitHub app in ChatGPT’s settings.
Screenshot 4-2 Access limited to a single repository.

The first message

Start a new chat, turn GitHub on (the + button under the message box), then paste this message, replacing what is in brackets. It sets the rules for everything that follows.

Message to paste into ChatGPT
You are working on my website, in the GitHub repository [your-name/my-site]. It is an Astro site built from a theme, published automatically by Cloudflare Pages on every change to the main branch.

Before you change anything:
1. Read the README, package.json and the src folder, then tell me in a few lines where each page's text, the images, the colours and the contact details live.
2. Do not change the structure, the layout or the dependencies unless I ask.

For every change I ask for:
- save it directly in the repository, on the main branch, with a clear message;
- tell me which files you changed;
- check your work: every image and every link must point to a file that exists in the repository.

My details:
- Business name: [...]
- What we do, in one sentence: [...]
- Address, phone, email: [...]
- Social links: [...]
- Main colour: [#......]
Screenshot 4-3 The first message, with GitHub turned on in the chat.

Then one request at a time

Short, precise requests work best. For example:

  • “On the home page, replace the main heading with: …”
  • “Replace the text of the About page with this: …”
  • “Update the phone number and address everywhere on the site: …”
  • “Change the site’s main colour to #1F4E79.”
  • “Delete the demo article ‘…’ and remove it from every list.”

Add your images

You upload your photos to GitHub; ChatGPT then puts them in the right places.

  1. On GitHub, open the theme’s image folder (often public/images or src/assets: ChatGPT told you in its first answer).
  2. Click Add file → Upload files, drop your photos, then Commit changes.
  3. In ChatGPT: “I added team.jpg to public/images. Use it instead of the photo on the About page.”
Screenshot 4-4 Uploading photos into the theme’s image folder.
Step 05 2 min per change

Check and approve the changes

Every change goes through GitHub, then Cloudflare puts it live in a minute or two.

On GitHub: what changed

  1. On the repository’s page, click Commits (the clock icon above the file list): every change is listed with its message.
  2. Click a change to see the detail: the old text in red, the new in green.
  3. If ChatGPT opened a pull request instead of saving directly: open the Pull requests tab, open it, look at Files changed, then click Merge pull request and Confirm merge.
Screenshot 5-1 The repository’s history of changes.
Screenshot 5-2 One change in detail: the old text in red, the new in green.

On Cloudflare: going live

  1. In Workers & Pages, open your project: a new deployment appears for every change.
  2. Success: open the site and check the change. If it does not show, reload the page (Ctrl + F5, or Cmd + Shift + R on a Mac).
  3. Failed: open the deployment, copy the last lines of the log and paste them into ChatGPT: “The build fails with this message, fix the problem.”
Screenshot 5-3 The list of deployments in Cloudflare.
Step 06 15 min, then up to 24 h

Connect your domain name

Your site moves from my-site.pages.dev to your own address, over HTTPS.

You do not have a domain yet

  1. The simplest is to buy it from Cloudflare (Domain Registration → Register Domains), at cost. It is then already tied to your account.
  2. In your Pages project, open Custom domains → Set up a custom domain, type the domain and confirm. Cloudflare creates the DNS record itself.
Screenshot 6-1 Adding a custom domain to the Pages project.

You already have a domain (GoDaddy, Namecheap, OVH…)

  • Recommended: hand the DNS to Cloudflare. In Cloudflare, click Add a domain, then at your registrar replace the nameservers with the two Cloudflare gives you. The domain stays with your registrar; only the DNS moves. Then, as above: Custom domains → Set up a custom domain.
  • For a subdomain only (for example www.your-domain.com): keep your current DNS and add a CNAME record at your registrar, named www, pointing at my-site.pages.dev. Declare that subdomain under Custom domains too.
Screenshot 6-2 Cloudflare’s nameservers, to copy at your registrar.

One last touch

Tell ChatGPT: “Update the site address in astro.config.mjs to https://your-domain.com”. The sitemap and links shared on social networks then use the right address.

Step 07 every change

Keep your site growing

The same loop for every change, as often as you like.

  1. 01 Ask ChatGPT
  2. 02 Check on GitHub
  3. 03 Approve commit or merge
  4. 04 Live Cloudflare, 1–2 min

Editing text, adding a page or swapping a photo is always the same loop. A few typical requests:

  • “Add a blog post titled ‘…’, with this text: … and the image site-visit.jpg.”
  • “Create a Pricing page modelled on the Services page, and add it to the menu.”
  • “Add this client testimonial to the home page: …”
STUCK?

A step does not
go as described?

Installing, building and deploying the theme as shipped is covered by support. Write to us with the step number and what you see on screen.