Publishing your site
This page is where the "about me" section lives — but until you've written one, it doubles as the publishing guide. When you're ready, ask your agent (Claude Code or Codex) to "rewrite the about page about me" and it will replace this with something personal.
Deploy to GitHub Pages
- Push your repo to GitHub (any name you like).
- In the repo, open Settings → Pages and set Source to GitHub Actions.
- Save and upload your latest changes to GitHub — in git terms, this is called "committing" and then "pushing" to the
masterbranch. If you're using Claude Code or Codex, you can just ask it to "commit and push". The workflow in.github/workflows/deploy.ymlpicks it up, builds the site, and publishes it. - Wait a minute, then visit your default Pages URL (see below).
From then on, every time you push a change to master the site rebuilds and republishes itself — usually within a minute or two. You don't need to run any "deploy" command; saving to GitHub is the deploy.
The default URL depends on the repo name:
- If your repo is named
<username>.github.io, the site is served athttps://<username>.github.io. - Otherwise it's served at
https://<username>.github.io/<repo-name>.
Whichever URL applies to you, paste it into the site:
field at the top of astro.config.ts. That's what
populates the sitemap, canonical links, OG cards, and
/robots.txt.
Pointing a custom domain at it
- Buy a domain from any registrar (Cloudflare, Namecheap, Porkbun — pick one).
- In your repo, open Settings → Pages and enter the domain under Custom domain. GitHub will create a
CNAMEfile for you in the repo. - At your registrar, add the DNS records GitHub asks for. For an apex domain (
example.com) that's fourArecords pointing at GitHub's IPs. For a subdomain (www.example.com) it's oneCNAMEpointing at<username>.github.io. The exact values are in the GitHub docs. - Wait for DNS to propagate (usually minutes, sometimes hours), then tick Enforce HTTPS in the Pages settings.
- Update
site:inastro.config.tsto the new domain.
Other hosts
This is a fully static site, so any host that serves a folder will
do. Drop the repo into
Cloudflare Pages,
Netlify, or
Vercel
and they'll auto-detect Astro, run pnpm run build, and
serve dist/.
Where the placeholders live
The template ships with TODO markers everywhere a real
value belongs. Ask your agent to "fill in the TODOs" and it will
find them all, but for reference:
astro.config.ts— thesite:URL.src/layouts/Layout.astro— site name, default description, and the base64-encoded email used by the mailto obfuscator.src/components/Nav.astro&Footer.astro— display name in the header and copyright line.public/manifest.json— PWA name, description, theme colour.public/favicon.svg— the 32×32 grid; swap colours / glyph.