Cloudflare
One-line description. Cloudflare is the edge platform under everything customer-facing — DNS for rycolston.com, every static site on Pages, and the natural home for future Workers / R2 / Browser Rendering work.
Why
GCP isn't the right tool for every workload. Public-facing static sites, DNS, edge logic, and webhook handlers run faster, cheaper, and simpler on Cloudflare than on Cloud Run.
This hub exists because Cloudflare is no longer a "captured option." It's a live operational dependency. DNS for rycolston.com lives there. Five+ Pages projects ship through it. Future projects (wallet pass, lead-magnet form handlers, browser screenshot jobs) will probably land on Workers.
Without a hub, Cloudflare-related decisions get scattered across Reference/Web Properties.md, individual project hubs, and feedback memory. The hub centralizes credentials path, deployment patterns, and the shortlist of what to build next on this platform.
Current state
Active. Powering production sites.
- DNS for
rycolston.com(zone731d5e532ef078b3610ff07ce41535b5), migrated from Namecheap 2026-04-24 - Pages projects live:
ry-realtor,setter-landing,customer-journey,capri-landing,handbook(and others — seeWeb Properties.mdfor the canonical list) - Account ID:
9f54c7990a6d42f0c504318d2031d9de - API token in 1Password:
op item get mieu4nz3ygy7el3mf4bxpznlaa --vault POSPJ --fields credential --reveal
Corrected 2026-06-30 — the line above was wrong, not just stale (confirmed via live Cloudflare API, earliest resource predates even the 5/6 "Last update" below): Workers, R2, KV, and Access are all live in production. Workers (3): smb-review-rycolston-com (6/25), app-the50os-com (6/21), board-rycolston-com (6/14). R2 (2 buckets): handbook-audio (5/21), handbook-offers (6/04). KV (2): GAMEPLAN_KV, handbook-completion. Cloudflare Access gates app.the50os.com and other internal tools. D1, Vectorize, Workers AI, Stream, Browser Rendering genuinely still unused.
- Status: in-flight (DNS + Pages + Workers + R2 + KV + Access all live)
- Last update: 2026-07-09 (free-vs-paid review + adoption backlog); prior 2026-06-30 correction stands
- Blocked on: nothing
2026-07-09 free-vs-paid review. Ran a review of whether to upgrade the free account, mapping 60 days of monorepo commits against Cloudflare's full catalog. Two outputs: - Adoption backlog filed as RYR-104 (AI Gateway, Web Analytics, Rate Limiting, D1, Durable Objects — all free or bundled into Workers Paid) and RYR-105 (Turnstile on public forms). Both in the Infra project, Backlog. - Pending spend decision (Ry's call, NOT yet actioned): turn on Workers Paid ($5/mo). Reason: free KV cap is 1,000 writes/day and the completion sync already had to be engineered to stay under it; $5/mo removes that ceiling and buys large CPU/subrequest headroom. Watch item, not a build: Zero Trust is free to 50 users then $7/user/mo, and the team (~27 agents) is growing toward that wall.
Next 3 actions
(none — surface when relevant)
When a Workers / R2 / Browser Rendering use case appears, the next moves are:
- First Worker: probably the Appointment Wallet Pass generator (FUB webhook → Google Wallet pass JWT). Lives well at the edge.
- First R2 bucket: any public file workload that's currently on GCS and incurring egress costs.
- First Browser Rendering job: replace any local Playwright / headless Chrome process (CMA PDF gen, screenshot-based site-doc captures).
Capability map
What Cloudflare offers that's worth knowing:
- DNS — already canonical for rycolston.com
- Pages — Git-connected static hosting, preview deploys per branch, custom domains. Already in production.
- Workers — V8 isolates at the edge. No cold starts. 100K req/day free tier. Public webhooks, form handlers, edge logic.
- R2 — S3-compatible object storage. No egress fees. Public file serving wins over GCS here.
- D1 — managed SQLite at the edge. Small workloads only.
- KV — fast key-value cache, eventually consistent.
- Vectorize — vector DB for embeddings. Cheaper than Vertex Vector Search at small scale.
- Workers AI — edge LLM inference (Llama, Mistral). Bypass Anthropic for low-stakes tasks.
- Browser Rendering — headless Chrome as an API. Screenshots, PDFs, scraping.
- Stream — video hosting + transcoding.
- Access — zero-trust auth gating in front of any route. Replaces ad-hoc passwords.
When to reach for Cloudflare over GCP
- Public webhook handler → Worker (faster + cheaper than Cloud Function)
- Public file serving → R2 (no egress vs GCS)
- Embedding search at small scale → Vectorize (simpler than Vertex)
- Browser automation → Browser Rendering (simpler than running Playwright)
- Static site → Pages (always)
- Auth gate in front of an internal tool → Access (replaces hand-rolled auth)
When to stay on GCP
- Anything touching BigQuery / Vertex / heavy compute → Cloud Run / Functions
- Anything that needs the shared-gcp-auth library or platform monorepo conventions
- Long-running jobs (>30s)
- Workloads that need GCS for interop with existing GCP pipelines
Decisions log
- 2026-04-24 — migrated
rycolston.comDNS from Namecheap to Cloudflare. Unlocked Pages + future Workers. - 2026-04-26 — captured as platform #1 in External API Platforms. Promoted to its own hub 2026-05-06 because production usage warranted it.
Open issues
Backlog now lives in Linear (Infra project). Candidate workloads:
- RYR-104 — Cloudflare platform adoption (AI Gateway, Web Analytics, Rate Limiting, D1, Durable Objects). Do-first: AI Gateway in front of Claude calls + Web Analytics on customer-facing sites.
- RYR-105 — Turnstile on public lead-gen forms (Should You Sell, consult-profile, seller funnels, Tally). Free.
- Workers Paid ($5/mo) — pending Ry spend decision (see Current state).
- Appointment Wallet Pass — first Worker candidate. See Appointment Wallet Pass.
- Lead-magnet form handlers — Capri lead-capture pages currently inert. Workers would handle form POSTs without standing up a Cloud Function.
- R2 audit — review what's in GCS that could move to R2 to cut egress costs. Public assets only.
- Browser Rendering for
/doc-site— current site-doc workflow uses local Playwright. Could move to Browser Rendering for consistency. - Cloudflare Access on internal tools — confirmed live 2026-06-30 (gates app.the50os.com and others). Audit remaining ad-hoc-auth tools as a separate follow-up.
Sites currently on Cloudflare
Source of truth: Web Properties. Snapshot as of 2026-05-06:
rycolston.com(Pages:ry-realtor)setter.rycolston.com(Pages:setter-landing)customer-journey.rycolston.com(Pages:customer-journey)capri.rycolston.com(Pages:capri-landing)handbook.rycolston.com(Pages:handbook)- DNS for everything under
rycolston.com
Credentials & deploy pattern
API token: op item get mieu4nz3ygy7el3mf4bxpznlaa --vault POSPJ --fields credential --reveal
Account ID: 9f54c7990a6d42f0c504318d2031d9de
rycolston.com zone: 731d5e532ef078b3610ff07ce41535b5
Standard Pages deploy:
CLOUDFLARE_API_TOKEN=$(op item get mieu4nz3ygy7el3mf4bxpznlaa --vault POSPJ --fields credential --reveal) \
CLOUDFLARE_ACCOUNT_ID=9f54c7990a6d42f0c504318d2031d9de \
wrangler pages deploy . --project-name=<project> --branch=main --commit-dirty=true
References
- Web Properties — canonical list of every domain/subdomain
- External API Platforms — sister hub for non-GCP platforms
- Customer Journey Map — Pages user
- Handbook Site — Pages user
- Appointment Wallet Pass — likely first Worker
- Feedback: Named Domain Means Deploy — when Ry names a subdomain, deploy directly to Cloudflare Pages
- Cloudflare docs: https://developers.cloudflare.com/