mysite.example
about / publishing

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

  1. Push your repo to GitHub (any name you like).
  2. In the repo, open Settings → Pages and set Source to GitHub Actions.
  3. Save and upload your latest changes to GitHub — in git terms, this is called "committing" and then "pushing" to the master branch. If you're using Claude Code or Codex, you can just ask it to "commit and push". The workflow in .github/workflows/deploy.yml picks it up, builds the site, and publishes it.
  4. 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 at https://<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

  1. Buy a domain from any registrar (Cloudflare, Namecheap, Porkbun — pick one).
  2. In your repo, open Settings → Pages and enter the domain under Custom domain. GitHub will create a CNAME file for you in the repo.
  3. At your registrar, add the DNS records GitHub asks for. For an apex domain (example.com) that's four A records pointing at GitHub's IPs. For a subdomain (www.example.com) it's one CNAME pointing at <username>.github.io. The exact values are in the GitHub docs.
  4. Wait for DNS to propagate (usually minutes, sometimes hours), then tick Enforce HTTPS in the Pages settings.
  5. Update site: in astro.config.ts to 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 — the site: 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.