# Blog production Worker runbook ## Scope and safety boundary This runbook moves only `blog.3031023.xyz` from the independent preview Worker to the independent static production Worker `3031023-xyz-blog`. It does not change the primary site, the Pages rollback project, DNS records, redirects, forms, n8n, onboarding, CMS, or client-editing boundaries. The routine workflows deploy static assets only: - relevant `main` changes deploy `3031023-xyz-blog` in production mode; - relevant non-`main` changes deploy `3031023-xyz-blog-preview` in preview mode; and - neither workflow can create, remove, or alter custom domains, DNS, routes, or redirects. ## Pre-cutover verification 1. Record the production Worker version and verify its `workers.dev` URL. 2. Confirm the journal home page and all published post pages return 200. 3. Confirm a nonexistent post returns the static 404. 4. Confirm production metadata is indexable, `robots.txt` allows crawling, and the sitemap lists the journal and published posts. 5. Confirm the preview Worker remains untouched and its current deployment is available as the immediate blog rollback target. ## Domain move (requires separate approval) 1. Remove `blog.3031023.xyz` from `3031023-xyz-blog-preview`; do not delete that Worker or its deployment history. 2. Attach `blog.3031023.xyz` to `3031023-xyz-blog` as its only custom domain. 3. Re-run the public verification checks against the hostname. ## Rollback 1. Remove `blog.3031023.xyz` from `3031023-xyz-blog`. 2. Reattach it to the unchanged `3031023-xyz-blog-preview` Worker. 3. Verify the preview Worker’s known-good deployment at the hostname. The preview build will intentionally return to its no-index behavior. ## Production cutover record — 2026-09-02 - Source commit: `5c59430` (`main`). The automatic `Deploy blog production Worker` workflow (run 140) completed successfully in 21 seconds. - Domain move: `blog.3031023.xyz` was detached from `3031023-xyz-blog-preview` and attached to `3031023-xyz-blog`. - External verification: the hostname returns 200, lists the published Markdown journal posts, is indexable, serves its sitemap through `robots.txt`, and returns a static 404 for an unknown post. - Rollback readiness: `3031023-xyz-blog-preview` remains deployed and has no custom domain, ready for a deliberate reattachment if needed.