Assignment Guide Mac & Windows 6 Commits · 1 Live URL

Build &
Ship Your
Website

A practical guide to building and publishing any website — from zero to live URL. It could be personal, a passion project, a portfolio, a hobby, or anything else you want to put on the internet.

You will deliver

A GitHub repository
A live website URL (Netlify)

Tools used

Git GitHub GitHub Desktop Claude Code Netlify
Why This Matters

This Is Bigger Than a Website

Not long ago, building a website, writing software, or automating repetitive work required years of training. You needed to know how to write code, configure servers, understand programming logic, and navigate a dozen technical disciplines that took professionals years to master. If you weren't a developer, you either paid one, waited on one, or simply went without.

That world no longer exists.

AI has collapsed the gap between "I have an idea" and "it's done" from years to hours. Tools that once required a computer science degree can now understand plain English. You don't describe what you want in code anymore — you just describe what you want, and the machine figures out the rest. This is not a small incremental improvement. This is a fundamental shift in who gets to build things, automate things, and create things.

"The most powerful technology in history is now operated by describing what you want out loud. The barrier to entry has never been lower — and the ceiling has never been higher."

This project starts with a website — but that's just the doorway. The same skills and tools you use here apply directly to building software, creating apps, automating tasks you do every day at work, processing data, generating reports, writing scripts that save you hours a week, and solving problems in your business or personal life that used to require a specialist. Once you understand how to work with AI as a creative and technical partner, almost nothing is off limits.

Think about the things in your daily work that eat up your time — the repetitive emails, the spreadsheets you update manually, the documents you reformat every week, the data you copy from one place to another. All of that can be automated. Not someday, not with a team — now, by you, with the same tools you're about to use for the first time in this project.

Websites & presence

Build and publish anything online — a personal site, a portfolio, a business page, a passion project — without hiring a developer or learning to code.

Software & tools

Build custom software, apps, and internal tools for your business — things that would have cost tens of thousands to commission from a development agency.

Automation & time

Automate the repetitive work that fills your week — reports, emails, data entry, document processing — and reclaim hours you'll never get back otherwise.

The people who thrive in the next decade won't necessarily be the ones who know the most code. They'll be the ones who know how to think clearly, communicate precisely, and use AI to execute at a level that would have required a full team just a few years ago. That's exactly what you're going to practise here.

By the time you finish this project you will have used professional developer tools, published something real to the internet, and understood how to direct AI as a co-builder. That foundation carries forward into everything. This is not a small to-do list. This is where it starts.

Before You Start

The Tools You'll Use

You'll be working with five tools. Here's what each one actually is, why it matters, and why you're using it — in plain English.

Tool 00 Git

Used by virtually every software developer and tech company on the planet.

Git is the underlying system that tracks changes to your code. Think of it like "track changes" in a Word document — every time you save a version, Git remembers exactly what changed, when, and why. GitHub, GitHub Desktop, and Claude Code all rely on Git running in the background. You won't interact with it much directly, but it needs to be installed on your computer before anything else will work. You'll install it in Step 00 below.

Tool 01 GitHub

Home to over 100 million developers. Where the world's software is built and stored.

Think of GitHub as Google Drive for code — it stores your project online, backed up and version-controlled, accessible from anywhere. It's the same platform that companies like Google, Microsoft, and Apple use to manage their software. You'll learn how it's structured in Part 01.

Tool 02 GitHub Desktop

The bridge between your computer and the world's most important software platform — without the complexity.

GitHub Desktop is a visual app that makes saving to GitHub easy. Without it, you'd have to type complex commands in the terminal to save your work. GitHub Desktop gives you buttons and a simple interface to do the same thing. When you're done with a chunk of work, you open it, write a short note about what you did, and click "Commit." It means you can work like a professional developer without needing to memorise anything.

That said — Claude Code can actually handle all of this for you too. You can ask it to commit your changes and push them to GitHub directly from the terminal, and it will write a sensible commit message while it's at it. Many developers skip GitHub Desktop entirely for this reason. Either way works, and it's genuinely worth understanding how the commit and push process works — but don't feel like you have to use the visual app if Claude Code is already open and ready to go.

Tool 03 Claude Code

One of the most capable AI coding tools ever built. Used by developers at some of the world's leading companies.

Claude Code is an AI assistant that lives in your Terminal (Mac) or Windows Terminal (Windows) and writes code for you. You describe what you want in plain English — "add a contact section with my email and Instagram link" — and it writes and edits the actual files. It's like having a senior developer sitting next to you who never gets tired, never judges your questions, and can build almost anything you can describe. You're still in charge: you give it direction, review what it makes, and tell it what to change.

Note: Claude Code requires a paid Claude Pro or Max plan (claude.ai/upgrade). The same account you use on the Claude website works — no separate signup needed.

Tool 04 Netlify

Trusted by over 3 million developers and businesses to put their work on the internet. Free to start.

Netlify is the service that puts your website on the internet. Right now your site is just files sitting on your laptop — invisible to the world. Netlify connects to your GitHub, takes those files, and gives them a real public URL that anyone can visit from anywhere. Every time you push an update to GitHub, Netlify automatically updates the live site within seconds. No server knowledge needed, no technical setup — it just works.

The big picture Git runs quietly in the background tracking every change → you build the site using Claude Code → save your progress with GitHub Desktop → it syncs to GitHubNetlify picks it up and publishes it live. That's the whole loop.
Git Basics

Git Commands You Should Know

Git is controlled by typing short commands in the Terminal (Mac) or Windows Terminal (Windows). There aren't many you need to know for this project — here are the essential ones explained in plain English.

Let Claude Code handle all of this You don't need to memorise or type any of these commands yourself. Claude Code can run every single git command for you — just describe what you want in plain English. But it gets even better: Claude Code has seen thousands of codebases and knows exactly what a good commit message looks like. If you ask it to "commit my changes," it will look at everything that changed, understand what was done, and write a clear, professional commit message for you — often better than most developers would write themselves.

So rather than typing git add . && git commit -m "stuff", just tell Claude Code: "Look at what I've changed and commit it with a proper message." It'll handle the staging, write a descriptive message, and confirm what it did. You stay focused on building — not on memorising syntax.
git init

Sets up a brand new Git project in a folder. Tells Git "start tracking everything in here."

You won't need this for this project. When you create a repo on GitHub first and clone it, Git is already initialised. If you ever do need it — because you're starting from an existing local folder — just open a terminal inside that folder and ask Claude Code to do it. Claude Code works in any folder, git or not.
Ask Claude Code: "Initialise a git repository in this folder" — but again, you likely won't need this if you cloned from GitHub.
git status

Shows you what's changed since your last save. Green = ready to save. Red = changed but not staged yet.

Ask Claude Code: "What's the current git status?"
git add .

Stages all your changes — tells Git "include everything that changed in my next save." Always comes before git commit.

Ask Claude Code: "Stage all my changes"
git commit -m "message"

Saves a snapshot of your work with a short note describing what changed. The most important command you'll use repeatedly.

Ask Claude Code: "Commit my changes with the message 'feat: hero and navigation'"
git push

Uploads your saved commits from your laptop to GitHub. Until you push, your commits only exist locally. Pushing triggers Netlify to redeploy automatically.

Ask Claude Code: "Push my commits to GitHub"
git log

Shows the full history of all your commits — who made them, when, and what the message was. Useful for checking your commit history before submitting.

Ask Claude Code: "Show me my git commit history"
00 Install Git

Install Git on Your Computer

Git is the foundation everything else runs on. Before you can use GitHub, GitHub Desktop, or Claude Code, Git needs to be installed on your machine. Windows users should also install Windows Terminal — a much better terminal than the default options. This only takes a few minutes and you'll never need to do it again.

Windows users — install Windows Terminal first

Windows Terminal is Microsoft's modern terminal app — it's clean, fast, and works properly with Claude Code. It replaces the old Command Prompt and PowerShell windows with something much better. You'll use it for everything in this project.

Open the Microsoft Store (press Windows key, type "Microsoft Store", hit Enter), search for Windows Terminal, and click Install. It's free and made by Microsoft.

If you already have it, you're good — skip this. You can check by pressing Windows key and typing "Terminal" — if it appears, it's installed.

1
Open your terminal:

Mac: Press Cmd + Space, type "Terminal", hit Enter

Windows: Press Windows key, type "Terminal", hit Enter — this opens Windows Terminal
2
Type this and hit Enter:

git --version

If a version number appears (e.g. git version 2.39.0), Git is already installed — skip to the next part. If it says "command not found" or "not recognised," continue to step 3.
3
Go to git-scm.com and download the installer for your system:

Mac: Click "Download for Mac" and run the installer

Windows: Click "Download for Windows," run the .exe file, and click through using all default options. This installs Git and Git Bash in the background — Git is required for version control to work.

Once done, go back to step 2 to confirm it worked.
01 GitHub Setup

Create Your GitHub Account & Repository

GitHub is where your project will live online — but it's worth understanding what it actually is before you sign up, because it's far more than just a place to store files.

How GitHub is structured

Everything on GitHub lives inside an account, and inside that account you create repositories — one per project. A repository (or "repo") is just a folder for a project that GitHub tracks and version-controls. Your account is your identity on the platform, visible at a URL like github.com/yourname.

There are two types of accounts:

Personal Account

Belongs to one person. You create repos under your own name. Great for personal projects, portfolios, and learning. This is what you'll create today. Free forever.

Organisation Account

Belongs to a team or company. Multiple developers can be invited as members with different roles and permissions. Repos sit under the org name — e.g. github.com/yourcompany. Used by every tech company in the world.

A personal account can also belong to organisations — so a developer might have their own personal repos and also be a member of their employer's org, their open-source project's org, and a side project's org, all from the same login.

What a repository actually is

A repo is a project folder with superpowers. It holds all your files, but also the complete history of every change ever made — who changed what, when, and why. You can go back to any point in time, see exactly what was different, and restore any previous version. For a solo project this is a safety net. For a team, it's what makes collaboration possible without everyone overwriting each other's work.

Repos can be public (visible to everyone on the internet — useful for sharing work or building a portfolio) or private (only you and invited collaborators can see it). For this project, either is fine.

Collaboration on GitHub

GitHub is how the world's software gets built together. A few things worth knowing even at this stage:

Collaborators — you can invite anyone to a repo and give them read or write access. They can work on the same project from their own computer, push their changes, and everything stays in sync.

Branches — instead of everyone working on the same files simultaneously, developers create separate "branches" — parallel versions of the project. Work gets done in isolation, then merged back in when it's ready. This is how large teams ship code daily without chaos.

Pull Requests — when someone finishes work on a branch, they open a Pull Request — essentially saying "I'd like to merge my changes in." Other team members can review, comment, request changes, and approve. It's the standard review process used everywhere from small startups to companies like Google and Netflix.

If you're working solo, none of this ceremony is needed. You skip the branch entirely and just commit your changes directly, then push straight to main. No PR, no review, no approval — your changes go live immediately. That's exactly what you'll do in this project.

Two ways to start a repository

There are two common ways to get a Git repository onto your computer. It's worth knowing both, even though you'll only use one for this project.

Option A — GitHub first, then clone

You create the repository on GitHub's website, then clone it down to your computer. Cloning downloads the repo into a folder and automatically links it back to GitHub — so pushing your changes later is seamless.

This is the most common approach for new projects and the one you'll use in this guide. It keeps everything in sync from the very first commit.

Option B — Local first, then push

You already have a folder of files on your computer. Open a terminal from inside that folder — on Mac, right-click the folder and choose "New Terminal at Folder"; on Windows, right-click inside it in File Explorer and choose "Open in Terminal" (this opens Windows Terminal pointing at that folder). Then launch Claude Code and just ask it: "Initialise a git repository here, create a new repo on GitHub called my-project, and push everything up." It will run git init, connect to GitHub with git remote add origin, and push — without you needing to type any of it. Claude Code doesn't require git to already be set up before it launches; it works in any folder.

Common when you've started working locally before thinking about version control. A little more setup, but gets you to the same place. Claude Code can walk you through this if you ever need it.

For this project: use Option A. Create the repo on GitHub first, then clone it. The steps below walk you through exactly that.

For this project you're working solo with a single repo on a personal account — the simplest possible setup. But you're using the exact same platform and workflow that professional development teams use every day. Let's get it set up.

1
Go to github.com and click "Sign up" in the top right. Create a free account using any email address you have access to.
2
Once logged in, click the "+" button in the top-right corner, then click "New repository".
3
Fill in the form:

Repository name: something clean like my-website or yourname-site

Visibility: Public or Private — your choice. Private means only you can see it.

Important: Check the box that says "Add a README file" — this makes cloning easier in the next step.

Then click "Create repository".
Deliverable Share your repository link with your instructor (or invite them as a collaborator if it's private: Settings → Collaborators → Add people)
02 Clone Locally

Download GitHub Desktop & Clone Your Repo

"Cloning" means downloading a copy of your GitHub repository onto your computer so you can work on it locally. GitHub Desktop makes this simple with a visual interface.

1
Go to desktop.github.com and download GitHub Desktop. Install it, open it, and sign in with your GitHub account.
2
In GitHub Desktop, click File → Clone Repository. A window will open showing all your GitHub repositories. Select the one you just created and click "Clone".

GitHub Desktop will ask where to save the folder on your computer. The default location is fine — just remember it.
3
Once cloned, click "Show in Finder" (Mac) or "Show in Explorer" (Windows) to confirm the folder is on your computer. You should see a README.md file inside it.
Deliverable Confirm the local folder path — visible in GitHub Desktop under the repo name at the top left
03 Project Structure

Install Claude Code & Scaffold the Project

Claude Code now has a native installer — one command and it's done. Just copy, paste, and hit Enter.

Before you start — you need a paid Claude account Claude Code is not free. It requires an active Claude Pro ($20/month) or Claude Max plan. You can sign up at claude.ai/upgrade. The same account you use on claude.ai works — no separate setup needed. If you're already on Pro or Max, you're ready to go.

Don't have a plan yet? Ask Doug if he has any free trial passes left — he may be able to get you started without paying upfront.

Step 1 — Install Claude Code

Mac

Open Terminal (Cmd + Space, type "Terminal", hit Enter), then paste this and hit Enter:

curl -fsSL https://claude.ai/install.sh | bash

That's it — nothing else to install first.

Windows

Git should already be on your machine from Part 00. Open Windows Terminal: press Windows key, type "Terminal", hit Enter. Then paste this and hit Enter:

irm https://claude.ai/install.ps1 | iex

After it finishes, close and reopen your terminal before continuing.

Confirm it worked: In your terminal type claude --version and hit Enter. If you see a version number, you're good to go.

Step 2 — Log In on First Launch

1
The first time you run Claude Code, it needs to connect to your Claude account. Open your terminal, type claude --dangerously-skip-permissions and hit Enter.
2
Claude Code will open a browser window and ask you to log in. Sign in with your Claude.ai account (the one with your Pro or Max plan attached). Click "Authorize" to connect it.
3
Once authorised, go back to your terminal. You should see the Claude Code welcome screen. Your login is saved — you won't need to do this again. Type /exit to close it for now.

Step 3 — Open Your Project & Start Building

1
The easiest way to open a terminal already pointing at your project is from GitHub Desktop — no need to type folder paths:

Mac: In the top menu click Repository → Open in Terminal

Windows: In the top menu click Repository → Open in Windows Terminal
2
Launch Claude Code by typing:

claude --dangerously-skip-permissions

The --dangerously-skip-permissions flag lets Claude create, edit, and delete files without stopping to ask for approval every time. For a self-contained project like this, it's safe and makes the workflow much smoother.
3
Ask Claude Code to create the starter files. Type something like:

"Create an index.html, styles.css, and an empty assets/ folder for my website. Use plain HTML and CSS only — no frameworks."

Why plain HTML/CSS? Tools like React or Vue require extra setup and a whole new syntax to learn. Plain HTML and CSS open directly in any browser with zero configuration. Claude Code can still build you something polished and professional with just these two files.
4
Switch back to GitHub Desktop. You'll see the new files listed under "Changes" on the left. To save this to GitHub:

1. Write chore: initial site scaffold in the commit message box at the bottom left
2. Click "Commit to main"
3. Then click "Push origin" in the top bar — this uploads it to GitHub
chore: initial site scaffold
YOUR FOLDER SHOULD NOW CONTAIN: /index.html
/styles.css
/assets/
04 Build the Site

Build a Single-Page Responsive Website

This is your site — it can be about anything. There are no wrong answers here. Pick something you genuinely care about and build around that. The structure is the same regardless of the topic — only the content changes.

Some ideas to get you thinking: A personal CV or resume  ·  A musician or artist portfolio  ·  A photography showcase  ·  A fan site for something you love  ·  The joys of birdwatching  ·  Your favourite hiking trails  ·  A guide to your city  ·  A passion project  ·  A small business  ·  A blog about coffee, cooking, film, or anything else  ·  Literally whatever you want

Your site needs sections that make sense for your topic. Below are some starting points — use them as a guide, not a rigid rule.

Hero

A title, a one-line description of what the site is about, and a button that pulls people in — e.g. "Explore," "Read More," "Listen Now"

Introduction / About

3–6 sentences introducing the topic or yourself — whatever sets the scene

Main Content

The heart of the site — could be a portfolio, a music player, a gallery, a list of trails, your top 10 birds, anything

More / Updates

Upcoming events, latest posts, new additions, or a "what's next" section

Media

3–6 photos, an embedded video, or a gallery of images related to your topic

Contact / Connect

An email address and at least 3 links — social media, a forum, a community, or wherever people can find more

Footer

Your name or brand, a copyright line, location, and quick navigation links

Technical Requirements

Responsive (mobile + desktop)
Proper heading hierarchy
Alt text on all images
No console errors
No broken links
Optimized image sizes

Commit History

As you build, try to save your progress in stages rather than one big lump at the end. A rough guide is around 6 commits — one per section or chunk of work. Don't overthink the messages; Claude Code can write them for you. Below are some examples for different site types to give you an idea of the rhythm.

Option A — Personal / About Me
chore: initial site scaffold
feat: hero and navigation
feat: about and skills sections
feat: media and contact sections
style: responsive layout and polish
docs: update README with deploy instructions
Option B — CV / Resume
chore: initial site scaffold
feat: header with name, title and summary
feat: experience and education sections
feat: skills, languages and contact
style: print-friendly layout and mobile polish
docs: update README with deploy instructions
Option C — Musician / Artist
chore: initial site scaffold
feat: hero and navigation
feat: about and music sections
feat: media, shows and contact sections
style: responsive layout and polish
docs: update README with deploy instructions
Option D — Portfolio / Creative Work
chore: initial site scaffold
feat: hero and navigation
feat: about and portfolio grid
feat: individual project detail and contact
style: responsive layout and polish
docs: update README with deploy instructions
Option E — Passion / Hobby (e.g. Birdwatching, Hiking, Coffee, Film...)
chore: initial site scaffold
feat: hero and intro section
feat: main content (e.g. favourite birds, best trails, top brews)
feat: photo gallery and resources or links section
style: responsive layout and visual polish
docs: update README with deploy instructions
Not sure what to write? Just tell Claude Code: "Look at everything I've changed and write a proper commit message for it." It will read the changes and suggest a meaningful, well-formatted message. You just review and confirm.
05 Local Testing

Test Before You Ship

Before deploying, check that everything looks right in the browser. Here's exactly how to do that.

What is localhost? When a website is live on the internet, it lives on a server — a computer somewhere in the world that's always on and connected, sending your files to anyone who visits your URL.

Your own laptop can pretend to be that server. When it does, it uses the address localhost — which just means "this computer, right here." So instead of visiting yourname.netlify.app, you visit localhost in your browser and see the same site, running locally.

For plain HTML files like yours, you don't even need to set up a local server — you can just open the file directly in a browser and it will look almost identical to how it'll appear once published. The browser reads your HTML and CSS files the same way a real server would send them. So what you see locally is what people will see live.

How to open your site locally

1
Open your project folder (use "Show in Finder" / "Show in Explorer" in GitHub Desktop). Find index.html and double-click it. It will open in your default browser — this is your site running locally, not live on the internet yet.
2
Every time you make a change in Claude Code, save the file and then refresh the browser (Cmd + R on Mac or Ctrl + R on Windows) to see the updated version.

How to check mobile view

1
In Chrome, right-click anywhere on your site and click "Inspect" (or press F12 on Windows / Cmd + Option + I on Mac). This opens the developer tools panel.
2
At the top of the developer tools panel, click the phone/tablet icon. This switches to mobile view. Pick different phone sizes from the dropdown at the top and check nothing looks broken or cut off.
3
If something looks wrong, go back to Claude Code and describe the problem: "On mobile the navigation menu is overflowing off the screen — please fix this."

Final checks

Opens correctly in Chrome
Opens correctly in Safari or Firefox
Looks good in mobile view
All links work (click every one)
No text is cut off or overlapping
Images all load correctly
Deliverable Add a "Testing Notes" section to your README describing what you tested, what you found broken, and what you fixed
06 Deploy

Deploy to Netlify

Netlify will take your GitHub repository and turn it into a live website with a real URL. Every time you push new changes to GitHub, Netlify will automatically update the live site — you don't have to do anything extra.

1
Go to netlify.com and click "Sign up". Choose "Sign up with GitHub" — this connects your accounts automatically.
2
Once logged in, click "Add new project" then "Import an existing project". Choose GitHub as the source.
3
Netlify will show your GitHub repositories. Select your website repository. If you don't see it, click "Configure the Netlify app on GitHub" to grant Netlify permission — this is needed for both public and private repos.
4
Leave all settings at their defaults — no build command, no publish directory needed for plain HTML. Just click "Deploy site". Netlify will process it for about 30 seconds.
5
Netlify will give you a live URL like random-name-123.netlify.app. Click it to see your live site. You can rename it in Site settings → Domain management.
6
To confirm auto-deploy is working: make a small change in Claude Code, commit and push (either via GitHub Desktop or by asking Claude Code to do it). Wait about 30 seconds and refresh your Netlify URL — the change should appear automatically.
Deliverable Your live Netlify URL (e.g. yourname.netlify.app)
Submit

Final Submission

1

GitHub URL

Link to your repository (shared privately if needed)

2

Live Site URL

Your Netlify deployment link

3

Reflection

5–10 sentences on how you used Claude Code, what you changed, challenges, and what you'd improve

Evaluation Criteria

Git workflow quality
Commit clarity
Following the specification
Appropriate use of AI tools
Product quality and polish
Successful deployment