The launch runbook for the ScamCheck growth engine: static-first deploy sequence, GSC submission + indexing-acceleration checklist, Discover activation checks, traffic + analytics activation, cost-protection settings, launch monitoring + early-warning signals, and a launch-readiness report. Keeps Vertex capped and infrastructure low-cost.
Execution runbook for Phase 25. Static-first, Vertex capped, Firestore-light. Items marked [you] are click-actions on your accounts (Vercel/GCP/Search Console) — code is rollout-ready.
NEXT_PUBLIC_SITE_URL (and optional NEXT_PUBLIC_SCAM_BASE_URL) must equal the real serving origin. Canonicals + sitemap derive from it; a mismatch breaks indexing. Verify /scams/... canonical resolves to a live URL on that origin.Deploy the branch with Vertex + Firebase env UNSET → pages, OG, widgets run in mock/memory: zero cost, zero risk.
/api/og?template=scam) render; robots now allows /api/og./widget.js, /widgets) serve./sitemap.xml (valid), /robots.txt (allows /, /api/og; blocks /api/,/ops), canonical tags, JSON-LD (Article+FAQPage+BreadcrumbList) via Rich Results Test, mobile rendering (viewport present, responsive)./sitemap.xml in GSC → Sitemaps./scams, /scams/type/{upi-fraud,otp-fraud,kyc-fraud,investment-fraud,phishing}./scams links all types, hubs, and every facet (orphan fix shipped) → strong internal discovery./scams from the main site for homepage discovery.new Date()).max-image-preview:large, article freshness dates, speakable + ImageObject schema.<= 1y CDN-cached.Generate the first pages without Vertex (templated/deterministic) or with Vertex capped. Priority order:
/api/scam-intel/alert-formats?type=<id>./ops/analytics aggregates publishing/AI/cost./api/scam-intel/growth?view=discover|entities|leverage|backlink|converting (admin).NEXT_PUBLIC_GA_ID / NEXT_PUBLIC_PLAUSIBLE_DOMAIN for client analytics.DAILY_BUDGET_USD=1, DEEP_TIER=flash, AUTOPILOT_PER_RUN=1, BUNDLES_PER_DAY=5.s-maxage); cache-hit rate visible on /ops/analytics.Watch daily for the first 1–2 weeks:
| Signal | Where | Red flag |
|---|---|---|
| AI cost today vs cap | /ops/analytics | approaching DAILY_BUDGET_USD |
| Quota utilization | /ops/analytics | over 85% (nearLimit) |
| Queue failure rate / DLQ | /ops/analytics | failure over 5% or DLQ above 0 |
| Function errors/duration | Vercel logs | spikes, timeouts |
| Indexing coverage | GSC | pages "Discovered – not indexed" stalling |
| Discover impressions | GSC → Discover | zero after 2–3 weeks of indexing |
| Rich results | GSC → Enhancements | FAQ/Article errors |
| CWV | GSC/PSI | CLS > 0.1, poor LCP |
| Firestore usage | GCP | nearing Spark limits |
Indexing issues: canonical mismatch (origin config), sitemap not submitted, noindex leak. Discover failures: no large image (robots blocked /api/og → now fixed), thin content, missing freshness. Cost spikes: budget breaker not set, autopilot caps too high, cache disabled. |
Ready-to-use in launch-content-pack: 20 scam topics, 10 Shorts ideas, 5 LinkedIn posts, 5 X threads, 10 Hindi targets, Discover candidates. Per-topic channel snippets via the alert-formats API.
| Check | Status |
|---|---|
| Build / typecheck | ✅ green |
| Prerender (250 scam + 7 trust) | ✅ |
| Sitemap valid + fresh timestamps | ✅ |
robots allows /api/og, blocks tools | ✅ |
| Canonicals consistent with sitemap origin | ✅ (set SITE_URL correctly) |
| Structured data (Article/FAQ/Breadcrumb/Speakable/ImageObject) | ✅ |
| Mobile viewport + responsive | ✅ |
| OG images (all variants) | ✅ |
| Widgets / widget.js | ✅ |
| Auth-gated admin APIs (401/200) | ✅ |
| No CLS / no hydration mismatch | ✅ |
| Cost: mock default, capped, cache-first | ✅ |
Go/No-go: GO for static-first deploy. Gate Vertex behind caps; enable crons after a clean cost day; enable ads last.
Pages indexed (target: majority of 250) · Discover impressions appear · AI cost/day under cap · DLQ ≈ 0 / failure under 5% · CWV good (CLS≈0) · first widget embeds / referring domains · trending-strip + subscribe engagement.