Fix Turnstile widget not showing on Astro contact page (site key and script load) When /contact renders without a Cloudflare Turnstile challenge, PUBLIC_TURNSTILE_SITE_KEY is usually missing at SSR time or api.js never loads. Fix site key bindings, readEnv, and script gating on Workers. Hi, I'm Jimmy.
I build reliable cloud platforms with a focus on architecture, DevOps, and operations.
- Resume: experience, skills, and certifications
- Blog: practical notes and guides
- About: background, interests, and now
Consulting
I also offer consulting for website design and web hosting setup. Reach out at contact@mayfield.io or use the contact form.
Recent posts
View all →-
Fix Turnstile widget not showing on Astro contact page (site key and script load) When /contact renders without a Cloudflare Turnstile challenge, PUBLIC_TURNSTILE_SITE_KEY is usually missing at SSR time or api.js never loads. Fix site key bindings, readEnv, and script gating on Workers. -
Fix contact form 502 or 503 when RESEND_API_KEY is missing in production When POST /api/contact fails because Resend is not configured, the Worker cannot read RESEND_API_KEY at request time. Fix Cloudflare secrets, env names, and redeploy steps on Astro + Workers. -
Fix TURNSTILE_SECRET_KEY is not configured (503) on Cloudflare Workers When POST /api/contact returns 503 Turnstile not configured, TURNSTILE_SECRET_KEY is missing at request time. Fix Worker secrets, env name mismatches, and redeploy steps. -
Wrangler deploy dry-run in CI before merging to main A green Astro build is not the same as a deployable Worker bundle. I run wrangler deploy --dry-run on every PR so Wrangler config and bundle size fail in CI, not on main.