{"id":659,"slug":"edge-vs-origin-cloudflare-default-for-smb","title":"For sub-100k pageviews/mo SMB sites, Cloudflare Pages + Workers is default; flip only when Postgres connection pooling or existing Vercel contract","kind":"reference","scope":"business","status":"current","audiences":["kevin","candid-team"],"topics":["tech-stack","hosting-platforms"],"reference_body":"**Latency math for a KW SMB serving primarily Ontario traffic:**\n\n- Cloudflare PoP in Toronto → user: 5-15ms\n- Vercel iad1 (Virginia) → Ontario user: 25-40ms\n- Single origin in Toronto VPS → Ontario user: 5-15ms\n- Single origin in Toronto → user in BC or NY: 60-100ms\n\n**For 95%-local-traffic, pure latency case for edge is weak.** The case for Cloudflare is:\n\n1. Global CDN for static assets (every option provides this).\n2. Sub-5ms V8 isolate cold starts for SSR/dynamic logic vs container-based serverless at 250ms+.\n3. Predictable pricing model that beats Vercel by ~5-10× at SMB volumes.\n4. Free tier that genuinely covers SMB volumes.\n5. DNS + CDN + edge compute + image optimization in one console.\n\n**When to flip to Vercel:** the client requires it (existing relationship, agency contract); the project is a Next.js app needing zero-config ISR/Image/PPR; the team has Vercel-specific tooling expertise.\n\n**When to flip to a Toronto VPS:** the project needs PostgreSQL with real connection pooling (not HTTP-driver only). Alternative: Neon/Supabase serverless Postgres with Cloudflare as the front door.","rationale_body":null,"metadata":null,"links":{"outgoing":[],"incoming":[{"slug":"rule-prefer-astro-cloudflare-default-marketing-site","title":"RULE: Default stack for new marketing-site work is Astro 5/6 + Tailwind v4 on Cloudflare Pages","kind":"rule","scope":"business","link_type":"depends-on"}]},"created_at":"2026-05-22T21:24:18.327Z","updated_at":"2026-05-22T21:24:18.327Z"}