🚀

Ajijic.org Go-Live Runbook

Private. Enter the hub password to continue.

That's not right. Try again.

🚀 Runbook

Ajijic.org Go-Live Runbook

Making ajijic.org fully public, safely | 2026-07-12

← Back to Hub

Redaction note: the preview-gate secret, API token reference, and account ID are replaced with "(stored in project memory)" on this page. The working values live in the project memory files on Annette's machine.

Written 2026-07-12. The site is currently soft-launch gated by static-site/_worker.js (only the homepage is public; everything else bounces to / without the ajijic_preview cookie). This runbook makes opening the gate a safe 10-minute step. Do NOT execute it until Annette says go.

Deploy command (the only one that works)

ajijic.org is a DIRECT-UPLOAD Cloudflare Pages project: git push does NOT deploy. Production branch is main (deploying to master caused the 2026-06 404s).

set CLOUDFLARE_API_TOKEN=(stored in project memory)
set CLOUDFLARE_ACCOUNT_ID=(stored in project memory)
npx wrangler pages deploy static-site --project-name=ajijic-relocation-guide --branch=main --commit-dirty=true

Go-public steps

  1. Annette says go (this is her call, never Charlie's).
  2. git rm static-site/_worker.js (removes the preview gate AND its X-Robots-Tag: noindex header).
  3. Confirm static-site/robots.txt still allows crawling and lists the sitemap (hand-maintained since 2026-07-11 with SEO + AI crawler rules; add_og_tags.py no longer overwrites it).
  4. Deploy with the command above (--branch=main is mandatory).
  5. Verify 5 spot URLs return 200 in a fresh browser/incognito WITHOUT the preview cookie:
  6. https://ajijic.org/
  7. https://ajijic.org/categories/healthcare
  8. https://ajijic.org/faq/pets
  9. https://ajijic.org/cost-calculator
  10. https://ajijic.org/about
  11. Verify the X-Robots-Tag response header is GONE (curl -I https://ajijic.org/about).
  12. Verify the old-stub redirects now fire via static-site/_redirects (with the worker gone, Pages processes _redirects natively): curl -I https://ajijic.org/categories/pets/ should 301 to /faq/pets.
  13. Google Search Console (registered 2026-07-11, domain property, account [email protected]): submit https://ajijic.org/sitemap.xml and monitor indexing.
  14. Run the validation loop: py -3.13 C:\Users\annet\ClaudeProjects\ValidateSite\validate_site.py --config <project>\validate.config.json if configured.
  15. Confirm the homepage email form still inserts to D1 (one test row, then note it in the readout).

Rollback

git checkout <last-commit-with-worker> -- static-site/_worker.js, then redeploy with the same command. The gate (and noindex) come back exactly as before.

Old-stub redirect mapping (22 retired old-design category stubs, deleted 2026-07-12)

While the gate worker exists, these 301s are served by the REDIRECTS map inside static-site/_worker.js (an advanced-mode worker intercepts everything, so _redirects is inert). After the worker is deleted, static-site/_redirects serves the identical mapping.

Old stub URL Redirects to
/categories/banking/ /categories/banking-money
/categories/real-estate/ /categories/real-estate (flat page, same path)
/categories/internet/ /categories/utilities-internet
/categories/utilities/ /categories/utilities-internet
/categories/immigration/ /categories/getting-legal
/categories/legal/ /categories/getting-legal
/categories/beauty-services/ /faq/beauty-services
/categories/contractors/ /faq/contractors
/categories/dentists/ /faq/dentists
/categories/doctors/ /faq/doctors
/categories/events-calendars/ /faq/events-calendars
/categories/healthcare-insurance/ /faq/healthcare-insurance
/categories/home-services/ /faq/home-services
/categories/markets/ /faq/markets
/categories/moving-services/ /faq/moving-services
/categories/other/ /faq/other
/categories/pets/ /faq/pets
/categories/pharmacies/ /faq/pharmacies
/categories/restaurants/ /faq/restaurants
/categories/shopping/ /faq/shopping
/categories/translators/ /faq/translators
/categories/transportation/ /faq/transportation

Related facts

  • Preview unlock: https://ajijic.org/?preview=(stored in project memory) (per-browser cookie).
  • Analytics: Cloudflare Web Analytics beacon is on every page (installed 2026-07-12); daily traffic email rides the shared sites-traffic-report Worker (MyExecAssistant repo).
  • Link check before any deploy: python scripts/check_links.py must exit 0.
  • OG image: static-site/assets/og-default.jpg (branded 1200x630); regenerate meta with python static-site/add_og_tags.py (replaces in place, never appends).
  • Do not delete website/ (pipeline target directories, resumes ~Nov 2026).

🔒 Private · annettethompson.com/hub/ajijic-go-live-runbook