Hello internet friend 👋
So.
You've decided to either:
A) Read how I built my site B) Actually steal it C) Pretend you're just "curious"
Whatever the reason… welcome.
After I wrote about how Claude Code changed my life, I had loads of messages asking:
- How did you set it up?
- Can I see the repo?
- Can I use this for my own site?
Short answer?
Yes.
Here's the barebones version: 👉 Fork the repo here
Clone it. Break it. Improve it. Make it yours.
Now let's walk through how to actually get it live.
Part 1: Getting It Online
Step 1: Buy a Domain
You don't need a custom domain.
But you'll want one.
I personally use names.co.uk because… well… I use names.co.uk 😅
There are loads of options:
- names.co.uk
- GoDaddy
- Cloudflare
- Google Domains
Buy your domain.
Do not overthink the name.
Done is better than perfect.
Step 2: Point Your Domain to GitHub Pages
Once you've bought your domain:
- Log into your domain provider
- Go to DNS settings
- Add the required records
You'll either add:
- A Records pointing to GitHub's IP addresses
- Or a CNAME record pointing to
yourusername.github.io
If you're using an apex domain (like example.com), use A records.
If you're using www.example.com, use a CNAME.
Replace any reference to my GitHub URL with your own.
GitHub's official IP addresses for A records are:
185.199.108.153 185.199.109.153 185.199.110.153 185.199.111.153
Once DNS is saved, it may take up to 24 hours to propagate.
Usually it's quicker.
Sometimes it's not.
Welcome to DNS.
Step 3: Fork or Clone the Repo
Go to the repo: 👉 Fork the repo here
Click Fork if you want your own version on GitHub.
Or clone it locally:
git clone https://github.com/yourusername/your-repo.git
Then:
cd your-repo && npm install && npm run dev
Now you should see it running locally.
Break things. Change colours. Add your own content.
This is your playground now.
Step 4: Enable GitHub Pages
Inside your repository:
- Go to Settings
- Click Pages
- Under "Source" choose: GitHub Actions
We're not using old branch deployment.
We're doing this properly.
Step 5: Set Up the GitHub Action
In the repo you'll see a .github/workflows folder.
There should be a workflow file similar to static.yml.
This handles:
- Installing dependencies
- Building the site
- Deploying it to GitHub Pages
If you're using something like Astro, SvelteKit or similar, the build command will usually
be:
npm run build
Make sure your framework outputs static files.
For example, in Astro:
export default defineConfig({ output: 'static' });
Commit and push your changes:
git add . && git commit -m "Initial setup" && git push
Then go to:
GitHub → Actions tab
You'll see the workflow run.
If it's green, you win.
Step 6: Connect Your Custom Domain in GitHub
Once the site deploys:
- Go to Settings → Pages
- Add your custom domain
- Tick Enforce HTTPS
GitHub will generate a CNAME file automatically.
If DNS is configured correctly, your site will go live shortly after.
Part 2: Setting Up Supabase (Database)
If you want your site to store content properly (posts, events, talks, books, videos, gaming
stats), you'll need a database.
This template uses Supabase.
It's open-source Firebase powered by Postgres.
The free tier is more than enough.
1. Create a Supabase Project
- Go to supabase.com and sign up
- Click New Project
- Give it a name (e.g. my-portfolio)
- Set a database password
- Pick a region close to you
- Wait about 2 minutes for provisioning
2. Create the Database Tables
- In your Supabase dashboard, go to SQL Editor
- Click New Query
- Open the
sql/schema.sqlfile from the template repo - Paste the entire contents into the editor
- Click Run
This creates 7 tables:
- posts
- events
- talks
- videos
- books
- anime
- gaming_achievements
Row Level Security is already configured for public read access.
3. Get Your API Credentials
Go to:
Settings → API
Copy:
- Your Project URL
- Your anon/public key
You'll need both.
4. Configure the Template
Inside your project:
Copy .env.example to .env
Then add:
VITE_SUPABASE_URL=https://your-project-id.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key-here
Run:
npm run dev
Your site now pulls data from Supabase.
5. Add Content
You can add content in two ways.
Option 1: Table Editor
- Go to Table Editor
- Select a table
- Click Insert Row
Easy.
Option 2: SQL Editor
Open the SQL Editor and insert a row into the posts table with your title, slug, content (as
Markdown), excerpt, published date, and tags array.
More control. More power. More fun.
6. Deploy with Supabase Connected
Push your repo to GitHub.
Then:
- Go to Settings → Secrets and variables → Actions
- Add two repository secrets:
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEY
The included GitHub Action will:
- Build the site
- Inject environment variables
- Deploy automatically on every push to main
7. Optional: Custom Domain
Drop a CNAME file into the static/ folder with your domain.
Then configure DNS to point to GitHub Pages.
Why I'm Sharing This
Because building in public changed things for me.
Because tools like Claude accelerate building massively.
Because too many people sit on ideas waiting for permission.
You don't need permission.
You need a repo. And a push command.
If you use it, tell me.
If you improve it, show me.
If you break it and blame me, at least fork it first.
Go build something.
Duncan 👊
#Claude