Cloudflare — what we actually think after a year at Klem HQ
Cloudflare — the quiet edge platform that runs klemhq.com
Who this is for
Indie founders and small teams who need to ship a static marketing site, a few serverless endpoints, custom DNS, and routed email — without standing up an AWS account, paying for a Vercel team plan, or stitching together four separate vendors. If you're already deep into AWS or Vercel for reasons of scale or team standardisation, this review will not move you. If you're at the stage where the entire infrastructure for your product company can fit in one tab and one CLI, Cloudflare is the calmest option we've found.
What it does well
A short list of things we use daily and find genuinely good. None of these are speculative — they describe what klemhq.com runs on today.
- Pages deploys land in under a minute.
wrangler pages deploy . --project-name klemhq-site --branch mainfrom the local marketing directory takes 30–60 seconds end-to-end. No build server warm-up, no queue, no CDN propagation wait. The deploy returns a unique preview URL you can share before promoting to production. - Domains, DNS, and TLS are one thing, not three. Pointing
klemhq.comat Cloudflare DNS gave us free origin-cache, free TLS certificate provisioning, and configurable cache rules without touching a separate certificate authority or CDN dashboard. The setup is a single nameserver change at the registrar. - Email Routing is a real product, not a side-project. We route
admin@,hello@,privacy@,legal@, and[email protected]to a single Gmail mailbox. Zero cost. Forty-five seconds per address to configure. Inbound-only — we explain the send-side caveat in the next section. - Workers and Pages share one mental model. When the marketing site eventually needs a server-side endpoint (newsletter signup, contact-form proxy, lightweight API), it lands as a Worker on the same
klemhq.comzone, with the samewranglerCLI we already use for deploys. The cognitive overhead of "deploy a static page" versus "deploy an edge function" is roughly nil. - The free tier is genuinely usable, not a trap. klemhq.com runs entirely inside Cloudflare's free tiers for Pages, DNS, and Email Routing as of this writing. We expect the first paid line item to be Workers requests when product traffic hits a meaningful volume — and that's the right shape for a calm pricing curve.
What to watch for
Three honest caveats. We do not consider any of these dealbreakers, but you should know them before signing up.
- Email Routing does not send. Cloudflare Email Routing forwards inbound mail; it does not let you reply from the routed address. We send transactional and personal mail from a separate provider; the routed addresses are receive-only. If your mental model is "I want a full mailbox at [email protected]", you need a separate mailbox provider (Fastmail, Migadu, Google Workspace) and Cloudflare Email Routing isn't a replacement — only a low-cost inbound multiplexer.
- Wrangler authentication is interactive.
wrangler loginopens a browser to authenticate against your Cloudflare account, then writes a local token. This is correct security behaviour, but it means deploys cannot be fully automated from a fresh machine without either pre-provisioning the API token or running the interactive login first. We have an explicit "founder auth carve-out" in our session notes for this reason — it's a one-time step, but a step. - Documentation depth varies sharply by surface. The reference docs for Pages, Workers, and DNS are clear and current. The reference docs for some adjacent products (Zero Trust, Access, R2 storage) read like internal engineering notes that escaped into production. If you stray beyond the core four surfaces we use, expect to hit at least one page where you'll need to read the underlying API spec to understand the dashboard option. This is improving year over year but is still real friction.
How we use it at Klem HQ
Concrete state as of 2026-05-14.
- klemhq.com is a single static
index.htmlplus a small set of legal pages (/legal/privacy-policy,/legal/terms-of-service) and a/blogscaffold. The entire build process is "edit HTML, runwrangler pages deploy". No bundler, no framework, no CI runner. The deploy command lives in our BrandSite worker session's runbook. - DNS for
klemhq.comis hosted on Cloudflare. The nameserver change from the registrar to Cloudflare was the only structural action; everything since has been addingA,MX,TXT, andCNAMErecords as we add surfaces. - Email Routing receives mail at five trade-name addresses (
admin@,hello@,privacy@,legal@,support@) and forwards to a single Gmail mailbox. This pattern keeps the founder's personal name off the public domain — important for our brand discipline around personal identity disclosure. - Workers is not yet in production for klemhq.com but is the planned home for the eventual newsletter signup endpoint and any contact-form proxy. We deliberately defer that work until there's a real form to point at.
For the PageKeeper product itself, the runtime is Atlassian Forge, not Cloudflare — Forge has its own platform constraints and is out of scope for this review. Cloudflare here is purely about how we run the company's marketing and operational surface, not the product.
Pricing reality
What you'll actually pay versus what the website implies.
- Pages: Free tier covers 500 builds per month and unlimited bandwidth on the free plan. We have not come close to that ceiling. If you redeploy on every commit and you commit fifty times a day, you'll need the paid plan. For a calm cadence of one or two deploys per week, the free tier is genuinely free.
- DNS: Free for the standard zone product. The paid DNS tiers exist for organisations needing DNSSEC delegation override, advanced load balancing, or higher CDN cache tier — none of which a single-product indie SaaS needs at launch.
- Email Routing: Free, including for custom domains. The catch: it forwards only. See the "What to watch for" section. If you upgrade to a real mailbox via Google Workspace or Fastmail later, you still keep Email Routing for the addresses you want to multiplex without paying per-mailbox.
- Workers: Free tier covers 100,000 requests per day, which is more than klemhq.com will see for some time. The paid plan starts at $5/month and increments per million requests. If a Worker becomes the spine of a product surface, the cost shape changes — but it changes predictably, not in surprise overages.
- Registrar (Cloudflare Registrar): Domains transferred to Cloudflare Registrar are sold at wholesale cost — meaningfully cheaper than most retail registrars. We currently use a different registrar for klemhq.com; transferring is on the maintenance backlog.
Where the cost actually starts to bite, for a company shaped like Klem HQ, is when you adopt R2 storage, Zero Trust seats, or Workers KV at meaningful scale. Each is priced per-resource and the dashboard shows you the running tally. We have not had a surprise bill.
Bottom line
Cloudflare is the calmest single-vendor edge stack we've found for a one-person SaaS company. It runs klemhq.com end-to-end on free tiers, deploys land in under a minute, and the mental model is small enough to fit in one head. The friction points — inbound-only email, interactive CLI auth, uneven documentation for adjacent products — are real but limited. We recommend it without hedging for indie founders at our stage.
Affiliate disclosure: No affiliate relationship for this review — included as editorial only. Cloudflare does not run a public individual-referrer program for the products covered here, and Klem HQ does not earn a referral fee on Cloudflare sign-ups. Reviews on this site are written before any affiliate program is signed up, and we do not adjust review content based on referral fee terms. See /legal/affiliate-disclosure for full terms.