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:
- Slow to load
- Full of analytics and tracking bloat
- Poorly customisable unless I paid for upgrades
- And worst of all, I didn’t own the thing
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:
- Your own link-in-bio site running locally
- Synced to your own GitHub repo
- Deployed live for free to the internet
- Using your own domain, if you want
🍺 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)
- Git: https://git-scm.com/downloads
- Node.js: https://nodejs.org (choose LTS version)
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
Go to netlify.com
Connect your GitHub repo
Set build settings:
Build command: npm run build Publish directory: dist
Hit “Deploy site”
🔸 Vercel
- Go to vercel.com
- Connect your GitHub repo
- Vercel auto-detects Astro settings. Click deploy.
🟠 Cloudflare Pages
Go to pages.cloudflare.com
Connect GitHub repo
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
- Want a custom domain? All three hosts let you add one for free.
- Want to automate RSS feeds or referral links? The theme supports that out of the box. Read the README.md.
- Want to change icons, colours, or links? It’s all in one JSON file:
src/siteConfig.json
. All documented in the README.md file.
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.