There are a few different versions of me on the internet — Josh the wedding celebrant, the content creator, MC, tour guide, dad, nerd, husband. Each role deserves its own spotlight, but I wanted one single place to send people where they could decide which Josh they’re after.

I tried the usual suspects — Linktree, Beacons, Koji, all those link-in-bio services — but every single one frustrated me.

They were:

If I’m going to build my business and identity online, I want the link that connects people to me to be mine. Fast, clean, easy, and hosted where I choose. So, I built my own using Astro.

The result is Josh’s Link in Bio Theme — a fully open-source, lightning-fast theme that you can use too. You can host it for free on services like Cloudflare Pages, Vercel, or Netlify, customise it on your own computer, and put your own domain on it.

Here’s the full step-by-step guide for anyone — even if you’ve never installed Node, touched a terminal, or heard of Astro before.


🧰 What You’ll End Up With

By the end of this guide, you’ll have:


🍺 Step 1: Install Homebrew (macOS / Linux only)

If you’re on a Mac (or Linux), Homebrew is the easiest way to install everything you’ll need.

In Terminal, paste this:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Then run:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Test it:

brew --version

If you’re on Windows, skip this and use the download links in the next step.


🛠 Step 2: Install Node and Git

macOS / Linux (with Homebrew)

brew install git node

Windows (no Homebrew)

Once installed, test in terminal or PowerShell:

git --version
node -v
npm -v

💻 Step 3: Install Visual Studio Code

You’ll want a code editor. Use VS Code — it’s free, easy, and perfect for this.


🧬 Step 4: Clone My Theme

Open your terminal and run:

git clone https://github.com/joshwithers/linkinbio.git
cd linkinbio

This downloads the theme into a folder on your computer.


📦 Step 5: Install Everything

In that same terminal window and folder, install the project dependencies with:

npm install

Then run it locally:

npm run dev

Visit http://localhost:4321 in your browser — that’s your new site! Now you just have to customise it.


☁️ Step 6: Make It Yours on GitHub

Go to github.com/new and create a new repo — leave everything unticked (no README, no licence, no .gitignore).

Back in your terminal:

git remote remove origin
git remote add origin https://github.com/YOUR_USERNAME/YOUR_REPO_NAME.git
git branch -M main
git push -u origin main

Now your version of the site lives in your own GitHub account.


🚀 Step 7: Deploy It to the Web

You’ve got three great free hosting options. Pick one:

🔹 Netlify

  1. Go to netlify.com

  2. Connect your GitHub repo

  3. Set build settings:

    Build command: npm run build
    Publish directory: dist
  4. Hit “Deploy site”

🔸 Vercel

  1. Go to vercel.com
  2. Connect your GitHub repo
  3. Vercel auto-detects Astro settings. Click deploy.

🟠 Cloudflare Pages

  1. Go to pages.cloudflare.com

  2. Connect GitHub repo

  3. Set build settings:

    Framework preset: Astro
    Build command: npm run build
    Output directory: dist

Done! You now have a fast, track-free, customisable link-in-bio website — and you own every pixel of it.


🧠 Bonus Tips


You don’t need to keep using bloated link-in-bio tools run by VC-backed startups. You can own your presence online, and it’s easier than ever to do it well.

This is why I built Josh’s Link in Bio Theme — and I’d love for you to fork it, remix it, and make it yours.

If you get stuck, you know how to get in touch.