Ajijic.org Go-Live Runbook
Private. Enter the hub password to continue.
That's not right. Try again.
Ajijic.org Go-Live Runbook
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
- Annette says go (this is her call, never Charlie's).
git rm static-site/_worker.js(removes the preview gate AND itsX-Robots-Tag: noindexheader).- Confirm
static-site/robots.txtstill allows crawling and lists the sitemap (hand-maintained since 2026-07-11 with SEO + AI crawler rules;add_og_tags.pyno longer overwrites it). - Deploy with the command above (
--branch=mainis mandatory). - Verify 5 spot URLs return 200 in a fresh browser/incognito WITHOUT the preview cookie:
- https://ajijic.org/
- https://ajijic.org/categories/healthcare
- https://ajijic.org/faq/pets
- https://ajijic.org/cost-calculator
- https://ajijic.org/about
- Verify the
X-Robots-Tagresponse header is GONE (curl -I https://ajijic.org/about). - Verify the old-stub redirects now fire via
static-site/_redirects(with the worker gone, Pages processes_redirectsnatively):curl -I https://ajijic.org/categories/pets/should 301 to/faq/pets. - Google Search Console (registered 2026-07-11, domain property, account
[email protected]): submit
https://ajijic.org/sitemap.xmland monitor indexing. - Run the validation loop:
py -3.13 C:\Users\annet\ClaudeProjects\ValidateSite\validate_site.py --config <project>\validate.config.jsonif configured. - 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-reportWorker (MyExecAssistant repo). - Link check before any deploy:
python scripts/check_links.pymust exit 0. - OG image:
static-site/assets/og-default.jpg(branded 1200x630); regenerate meta withpython 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