19 October 2026 · Harbor by Signalry
What still needs a person
How and who for the hotel job—verified when attested.
Step 1
Import the repo on Vercel
If ethanhawkes-gif/JTBD is not imported yet: Vercel → Add New → Project → this repo → Next.js → root / → production branch main. If it already builds from main, skip to the next step.
Step 2
Production environment variables
Set these on Production only, not Preview. Leave HARBOR_PRIMARY_HOST_LIVE unset until DNS works. NEXT_PUBLIC_SITE_URL is ignored until that flag is 1. Leave NEXT_PUBLIC_PLAUSIBLE_DOMAIN empty until Plausible is actually on. For a queue that survives a deploy, set KV_REST_API_URL and KV_REST_API_TOKEN (Vercel KV or Upstash Redis REST). Optional: HARBOR_STORE=kv. Without the KV pair the file queue is local and ephemeral on serverless. Do not set the site URL to a www host.
Step 3
Primary domain
Vercel → Settings → Domains → Add harbor.signalry.ai and mark it primary. Do not add www.harbor.signalry.ai. Do not add harbordesk.com.
Step 4
Cloudflare DNS only
Zone signalry.ai (nameservers kira.ns.cloudflare.com and major.ns.cloudflare.com). Add a CNAME named harbor pointing at cname.vercel-dns.com, or the exact target Vercel shows. Proxy status DNS only (grey cloud). Orange-cloud breaks Vercel TLS. Do not edit apex signalry.ai records. That apex stays the Netlify house site.
Step 5
Check the Vercel origin
https://jtbd-three.vercel.app (or VERCEL_PROJECT_PRODUCTION_URL) is the canonical host while harbor.signalry.ai does not resolve. Sitemap, robots Host and Sitemap, and the homepage canonical must use that host.
Step 6
Turn on the planned hostname
Once DNS resolves and TLS is issued for harbor.signalry.ai, set HARBOR_PRIMARY_HOST_LIVE=1 in Vercel Production and redeploy. Optional then: NEXT_PUBLIC_SITE_URL=https://harbor.signalry.ai with no www. After that redeploy, robots, the sitemap, and canonicals use the harbor host. A preview URL stays noindex.
The same list is in the repo at docs/launch-checklist.md. DNS detail is in DEPLOY.md. Status once the origin answers is on /ops. The planned host is harbor.signalry.ai. It is not the canonical until the live flag and a redeploy. No www.