Skip to content

Deploying the QBTime Manager Sales Page

The sales/landing page (marketing/index.html) is a single static HTML file. It's deployed as its own Cloudflare Pages project (separate from both the app and the docs site), at get.qbtime.r2d2dev.com. Its buttons link to the app at qbtime.r2d2dev.com/signup and /login.

This is the same pattern as the docs site — fully independent, so deploying it can't affect the app.

One-time: create the project + first deploy

Run from INSIDE the marketing/ folder — it has its own wrangler.toml so the deploy does not pick up the app's config (which has Functions/KV bindings the static page must not inherit; running from the repo root fails with an "Invalid KV namespace ID" error).

cd marketing
npx wrangler pages deploy . --project-name qbtime-marketing --branch main --commit-dirty=true
cd ..

The first run creates a Pages project named qbtime-marketing and prints a temporary URL like https://qbtime-marketing.pages.dev. Open it and confirm the page renders.

One-time: attach the custom domain

  1. Cloudflare dashboard -> Workers & Pages -> qbtime-marketing -> Custom domains -> Set up a custom domain.
  2. Enter get.qbtime.r2d2dev.com -> Continue -> Activate.
  3. Cloudflare creates the DNS record automatically. Confirm it is Proxied (orange cloud).
  4. Wait 1-2 minutes, then open https://get.qbtime.r2d2dev.com.

Production homepage = main branch (Pages Production). Unlike the app, this project's custom domain points at the production branch by default, so no branch-prefix DNS edit is needed.

Updating the page later

Edit marketing/index.html, then re-deploy:

cd marketing
npx wrangler pages deploy . --project-name qbtime-marketing --branch main --commit-dirty=true
cd ..

Cloudflare keeps the same project + domain; you don't redo the custom-domain step.

The funnel

  • Visitor lands on get.qbtime.r2d2dev.com (ads, SEO, the CowboyMSP "we make this" link point here).
  • Clicks Start now -> qbtime.r2d2dev.com/signup (the app) -> signs up + pays -> enters the app.
  • Sign in link -> qbtime.r2d2dev.com/login for existing customers.

The page's button URLs are absolute, so they work regardless of which subdomain hosts the page.