Custom domains on GitHub Pages: five absolute URLs and one DNS setting
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.