Pushes to main now deploy to both hosts from the same commit, with a
preview channel on pull requests. GitHub Pages stays canonical, so the
page carries a rel="canonical" link and og:url keeps pointing there —
otherwise two identical copies compete as duplicate content.
Two corrections to what `firebase init` generated:
- Exclude plans/** from hosting. "public": "." publishes the repo root,
which would have served the internal working notes at reigen.web.app.
Each host has its own exclusion mechanism, so a new directory of
working files has to be excluded in both.
- Drop the single-page-app catch-all rewrite. This site is one page of
anchor links with no client-side router, so ** -> /index.html would
return HTTP 200 with the full page for every missing path, hiding
broken asset links from us and handing crawlers unlimited duplicate
URLs.
The service account lives in the FIREBASE_SERVICE_ACCOUNT_REIGEN repo
secret; no credentials are committed.