Skip to content
Harborby Signalry

19 October 2026 · Harbor by Signalry

What still needs a person

How and who for the hotel job—verified when attested.

The catalog is already on the Vercel host. harbor.signalry.ai stays off the canonical until DNS resolves and HARBOR_PRIMARY_HOST_LIVE=1. Hotels only. Verified Outcome is not insurance.
  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.