← notes

Custom domains on GitHub Pages: five absolute URLs and one DNS setting

Aug 14, 2026

A prototype for Pico: live webcam views, current conditions, and what islanders are reporting right now. Fog on the crossings, caravelas in the pools, whales off Lajes. A *vigia* was the cliff-top tower where a spotter watched for whales and signalled the boats.

All the data is invented and the webcam frames are deliberate wireframes rather than mock photography, so the layout gets judged without a picture doing the persuading.

The reusable part is the deployment. Vite’s base: "./" makes every asset path relative, so the same build works on a project page, a user page, or a custom domain. Open Graph is the exception because it needs absolute URLs, so the origin is hardcoded in exactly five places: canonical, og:url, og:image, og:image:secure_url, twitter:image. If the site moves, those five are the find-and-replace. The other trap is that the domain must be a DNS-only, unproxied CNAME in Cloudflare. Proxying it stops GitHub issuing the certificate, and it presents as a TLS error with nothing pointing at the proxy setting.

Push to main is the whole procedure.