16 February 2026

Steal My Website

Fork it. Clone it. Break it. Make it yours. Here's how I built my site and how you can steal it.

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:

  1. Log into your domain provider
  2. Go to DNS settings
  3. 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:

  1. Go to Settings
  2. Click Pages
  3. 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:

  1. Go to Settings → Pages
  2. Add your custom domain
  3. 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

  1. Go to supabase.com and sign up
  2. Click New Project
  3. Give it a name (e.g. my-portfolio)
  4. Set a database password
  5. Pick a region close to you
  6. Wait about 2 minutes for provisioning

2. Create the Database Tables

  1. In your Supabase dashboard, go to SQL Editor
  2. Click New Query
  3. Open the sql/schema.sql file from the template repo
  4. Paste the entire contents into the editor
  5. 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

  1. Go to Table Editor
  2. Select a table
  3. 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:

  1. Go to Settings → Secrets and variables → Actions
  2. Add two repository secrets:
    • VITE_SUPABASE_URL
    • VITE_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

Stop arguing about the numbers. Start using them.

Book a fixed-price Power BI Health Check and find out how trusted, usable and audit-ready your reporting really is, and exactly what to do next.