# Happy Tails Astro pilot This repository is a static Astro pilot for `3031023.xyz`. The existing Cloudflare Pages site remains the rollback target while this branch is tested. ## Repository layout - `sites/www/` is the primary-site content location; it serves `3031023.xyz`. - `sites/blog/` is the separate `blog.3031023.xyz` sample site. - `sites.json` is the operator-controlled manifest. It is not public intake. - `src/` contains shared Astro presentation code. - `schemas/` and `fixtures/` provide the Phase 1 JSON contract proof. The blog is static JSON in this phase. Markdown content, CMS workflows, public sign-up changes, n8n changes, and onboarding-worker changes are deliberately out of scope. ## Local checks Use Node 22. ```bash npm ci SITE_KEY=www npm run build:site SITE_KEY=www npm run verify:build SITE_KEY=blog npm run build:site SITE_KEY=blog npm run verify:build ``` Each selected site builds to `dist//`. The Worker configurations use only static assets and a custom 404 page. They contain no custom domains, routes, account IDs, or secrets. ## Preview deployment The Gitea workflow deploys only a non-production Worker from the pilot branch: `3031023-xyz-www-preview` by default, or the manually selected `blog` site. It uses the existing repository secrets `CF_API_TOKEN` and `CF_ACCOUNT_ID`. Routine jobs do not configure DNS or custom domains. Production hostname attachment and the `www` redirect are manual, operator-controlled cutover steps. See `docs/pilot-baseline.md` for the rollback record.