Personal website for Barrett Ahern — built with plain HTML & CSS, hosted on GitHub Pages.
barrettahern.com/
├── index.html ← Homepage
├── about.html ← About Me page
├── work.html ← Case Studies / Work page
├── css/
│ └── style.css ← All styles (one file, well-commented)
├── images/ ← Put your own images here
└── README.md ← This file
- Go to github.com and sign in
- Click New repository (the + icon, top right)
- Name it exactly:
barrettahern.com(or any name you like) - Set it to Public (required for free GitHub Pages)
- Click Create repository
Option A — drag and drop (easiest to start):
- Open your new repo on GitHub
- Click Add file → Upload files
- Drag all the files and folders in, keeping the folder structure intact
- Click Commit changes
Option B — use Git from the terminal (better long-term):
# Navigate to this folder in your terminal
cd path/to/barrettahern.com
# Initialise a git repo
git init
# Link it to GitHub (replace YOUR_USERNAME with yours)
git remote add origin https://github.com/YOUR_USERNAME/barrettahern.com.git
# Stage all files
git add .
# Make your first commit
git commit -m "Initial site build"
# Push to GitHub
git push -u origin main- In your repo, go to Settings → Pages
- Under Source, select Deploy from a branch
- Choose branch:
main, folder:/ (root) - Click Save
- After a minute, GitHub will show you a URL like
https://yourusername.github.io/barrettahern.com
- In Settings → Pages → Custom domain, enter:
barrettahern.com - Click Save — this creates a
CNAMEfile in your repo automatically - Log in to wherever your domain is registered (e.g. GoDaddy, Namecheap)
- Update DNS records to point to GitHub:
- Add 4 A records pointing to GitHub's IPs:
185.199.108.153 185.199.109.153 185.199.110.153 185.199.111.153 - Add a CNAME record:
www→yourusername.github.io
- Add 4 A records pointing to GitHub's IPs:
- DNS changes can take up to 24 hours to propagate
- Back in GitHub Pages settings, tick Enforce HTTPS once it appears
Every change follows this pattern:
Edit file → Save → Commit → Push → Site updates automatically
Just ask Claude to make the change. For example:
- "Update the bio on about.html to say..."
- "Add a new case study card to work.html for [client]"
- "Change the footer email address"
Claude will edit the file directly in this folder. Then you commit and push to GitHub.
# See what changed
git status
# Stage the changed file(s)
git add about.html
# Or stage everything
git add .
# Write a short message describing what you changed
git commit -m "Update bio text"
# Publish to GitHub (site updates within ~1 minute)
git push| Command | What it does |
|---|---|
git status |
Shows which files have changed |
git diff |
Shows exactly what changed, line by line |
git add filename |
Stages a file to be committed |
git add . |
Stages all changed files |
git commit -m "message" |
Saves a snapshot with a description |
git push |
Sends your commits to GitHub |
git log --oneline |
Shows recent commit history |
git pull |
Gets the latest changes from GitHub |
Open index.html. The content is in clearly labelled sections with HTML comments like <!-- HERO -->, <!-- SERVICES -->, etc. Find the text you want to change and edit it.
Open work.html. Copy an existing <a class="card"> block and update the href, src (image), label, and title.
Open css/style.css. All the core values are defined at the top in :root { } as CSS variables — no need to hunt through the file.
- Save your image as
images/barrett_ahern.jpg - In
index.html, find the<img>in the hero section - Change
src="https://barrettahern.com/..."tosrc="images/barrett_ahern.jpg"
Currently, the logo and case study images are loaded directly from the WordPress site URLs. This works fine for now, but once you cancel WordPress hosting you'll want to:
- Download each image from the WordPress URLs
- Save them into the
images/folder - Update the
srcattributes in the HTML to useimages/filename.ext
- Add a
favicon.ico(the little icon in the browser tab) - Add Google Analytics for traffic tracking
- Add Open Graph meta tags so links look good when shared on social
- Improve accessibility with better colour contrast
- Add smooth hover transitions to more elements