Cloudflare Pages vs Vercel for solo founders
Favok
Full-Stack Developer & Writer
Pick hosting by failure mode, not by landing-page slogans. Solo founders lose weekends to cold starts, surprise invoices, and deploys that only work on one laptop.
Cloudflare Pages plus Workers fits a brochure, blog, and light app if you accept KV/R2 constraints. Vercel still wins when you need a familiar Node server and preview comments — at a different cost curve.
Solo founder constraints
You need pull-request previews, a bill you can explain, and a path to ship when your gaming PC is busy. Enterprise sales calls and opaque overage emails waste weeks.
Both Cloudflare Pages and Vercel host a modern front end. The difference shows up in bandwidth pricing, worker/CPU limits, image pipelines, and how painful it is to attach a custom domain when email DNS already lives elsewhere.
If your product is a content hub plus a few APIs, Pages + Workers is enough. If your product is a long-running Node process, WebSocket farm, or a framework feature that assumes a Node server, Vercel (or a small VPS) will hurt less.
When Pages fits
Choose Pages when you already use Workers, KV, or R2 and want one vendor for HTML plus APIs. The free tier is generous for brochure sites and content hubs. Favokres leans on this model so publishing continues while local machines stay light.
KV is not Postgres. If you treat KV like a relational store, you will rewrite. R2 is object storage; great for images and backups, not for chat history you query five ways.
Pages preview URLs exist, but the comment-on-PR culture is thinner than Vercel’s. If you are a team of one, that may not matter. If you have a designer leaving screenshot comments, it might.
Cold starts on Workers are usually fine for HTML. They are less fine if every page bootstraps a huge SSR graph. Measure TTFB on a cold path before you bet the blog on it.
When Vercel fits
Choose Vercel when the team lives in Next.js preview comments and you value polished DX over lowest egress. Image optimization, ISR muscle memory, and “it just deployed” are real.
Watch image optimization and bandwidth. A viral post with unoptimized PNGs is how a $0 hobby bill becomes a bad weekend. Set a spend alert the same day you connect the card.
Vercel’s Node runtime makes certain libraries trivial. If your app imports a native module that Workers will never run, do not force it onto Pages for ideology.
Email DNS and the custom domain
The hosting choice is not the MX choice. Before you point the domain, copy MX, SPF, and DKIM. Orange-cloud proxy on a mail host will break inboxes. That procedure is documented for .fr domains in MX et SPF avant de changer les DNS; the same split (web proxied, mail DNS-only) applies on an .com.
Do the domain attach on a weekday. Keep the registrar login in a password manager, not in a screenshot on Discord.
Cost curves, not slogan tiers
Pages: requests, CPU time, KV reads/writes, R2. A traffic spike from a newsletter is not your monthly average. Cap KV list-then-fetch patterns; they multiply reads.
Vercel: bandwidth, function duration, image transformations. Preview deployments for every branch add up if you never delete them.
Neither vendor is “free forever” at useful volume. Put the real unit economics on an internal note: HTML vs image vs API. Then price your own product.
Failure modes to write down
- Bill shock: alert threshold, who gets the email, rollback (disable image optimization, move binaries to R2/CDN).
- Lock-in: can you export content and rebuild elsewhere in a day? Markdown in git yes; proprietary blob store no.
- Laptop off: CI must publish. If deploy only works on your PC, you do not have hosting, you have a hobby.
- Region / compliance: Workers and Vercel regions differ. If you promised EU-only processing, read the docs; do not assume.
A practical split
Many solo shops run the marketing site and blog on Pages and keep a small API on a VPS or Vercel only where Node is mandatory. That split is allowed. What is not allowed is two invoices you do not understand.
If you already pay for Cloudflare for DNS and CDN, adding Pages is one dashboard. If you already live in Vercel for a SaaS app, putting the blog there reduces moving parts — until the bandwidth line explodes.
Checklist
1. Write the failure mode you care about (bill, DX, Node libs, email DNS).
2. Deploy a hello-world on both, with your real image weight.
3. Attach a staging domain and send a test email if the domain also hosts mail.
4. Turn on a spend cap.
5. Document how to publish when you are away from the laptop.
See also the guides and shop. For US checkout copy after you pick a host, read Stripe tax display. Email DNS still wins over the slogan: copy MX before you flip nameservers.
Written by
Favok
Full-Stack Developer & Writer
Nine years in software — backend and frontend with equal weight, not a slogan. I also spent a year in IT operations, the kind of work that makes you respect uptime. The same hands that ship APIs come from graphic design through modeling, 2D and 3D. I care how a thing looks and how it holds together. Favokres is my personal digital hub: AI-assisted publishing, SEO, a forum, and a shop. An autonomous brain keeps the site moving so pages stay useful, not frozen.
About the author