SaaS, ferramenta, blog, app, projeto com IA: a dúvida de hospedagem serverless em JavaScript quase sempre cai em Vercel. Cloudflare Workers quase ninguém cita no começo. A Vercel ficou famosa por causa do Next.js e da publicidade. Tem programa de afiliado. A Cloudflare não paga comissão por indicar Workers. Ficou famosa pelo CDN. Quem teve WordPress já apontou o DNS para lá. A maioria não percebe que o mesmo painel virou hospedagem na borda, com banco, arquivo, objeto durável e modelo de IA na conta.
Para o que eu publico, Workers resolve mais barato. Na documentação, o pago começa em 5 dólares com 10 milhões de requests no mês; o gratuito, 100 mil por dia e 10 ms de CPU por invocação. A Vercel, na comparação que eu mostrei, pedia 20 dólares no plano mínimo pago e dava menos folga no gratuito. D1, R2, KV e Access ficam na mesma conta. Next.js até roda na Cloudflare. O que a Vercel acerta — Node de verdade, Postgres nativo no pago — eu não estou usando nesse recorte.
- Cloudflare pago
- US$ 5, 10 milhões de requests, D1 com 25 bilhões de linhas
- Cloudflare gratuito
- 100 mil requests/dia, 10 ms de CPU, D1 e R2 com cota
- Vercel, no vídeo
- Afiliado, US$ 20 no mínimo pago, menos cota no free
Por que todo mundo fala Vercel, e o que a Cloudflare empilha no mesmo login
Serverless na borda, TypeScript, app moderno: o nome que aparece no tutorial é Vercel. Parte disso é Next.js nascido na própria empresa. Parte é afiliado. Eu não ganho nada para falar de Workers. Queria. O programa de parceiros da Cloudflare é outra coisa: empresa, rota, segurança, não cupom de hospedagem. Eles também não precisam desse cupom. São o CDN que o mercado já conhece.
No mesmo login eu tenho Workers e Pages (front e lógica na borda), D1 (SQLite), R2 (objeto, no vídeo eu chamei de CDN de imagem — o produto é armazenamento sem cobrança de egress na tabela oficial), Durable Objects para estado e tempo real, Workers AI cobrado por CPU em vez de token de terceiro, autenticação, bot, proxy, WAF. Dá para separar o back em outro Worker e colocar Cloudflare Access na frente.
A Vercel oferece prateleira parecida. O senão, no que eu comparei na tela, é preço e o que entra no plano baixo. Banco e boa parte dos extras pedem o pago. O mínimo que eu citei foi 20 dólares. Workers pago: 5. No gratuito da Cloudflare eu contei, na época, uns 3 milhões de requests no mês — a cota oficial é 100 mil por dia, o que no mês fecha essa ordem de grandeza — contra 1 milhão no gratuito da Vercel, no número que eu mostrei. KV, armazenamento e R2 existem no free da Cloudflare, com teto diário. Confira a tabela atual antes de prometer cota a cliente: plano muda.
Node na Vercel, V8 na Cloudflare, e o Postgres que não vem de graça
Next.js hoje sobe em mais de um serverless. Dá para publicar Next na Cloudflare. A Vercel ainda faz coisas que a Cloudflare não copia iguais. Postgres nativo nos planos pagos da Vercel é um exemplo. No gratuito, a saída comum é ligar um Supabase (ou outro banco) por API. A Cloudflare também fala com banco externo. A diferença que me interessa: SQLite nativo no D1, inclusive no gratuito, sem segunda conta.
Runtime: a Vercel roda Node. Dá para subir um back headless em Strapi ou Directus no estilo “processo Node”. Workers não é Node. É isolate V8. Tem caminho para Rust e Python na família Cloudflare; a Vercel também oferece Python. Eu não vejo abismo de linguagem. Vejo abismo de fatura e de quantas contas você abre.
Quem está no gratuito da Vercel e começa a pagar costuma procurar outra casa. Site local, pouca visita, página de negócio: eu deixo na Cloudflare. CDN, segurança e banco no mesmo lugar. Sem conta no Supabase “porque o tutorial mandou”. Back separado, Access na frente, Turnstile no formulário. Um ecossistema. Não uma feira de PaaS.
Os 25 bilhões de linhas e o jeito de estourar 5 dólares
A preocupação que resta é limite, igual na Vercel. D1 no pago inclui 25 bilhões de linhas lidas no mês. O que passar cobra 0,001 dólar por milhão. Outros 25 bilhões extras ficam na casa de 25 dólares? Não: 25 bilhões × 0,001 / 1 milhão = 25 dólares. No vídeo eu chutei “quase 5 dólares” para esse extra — a conta oficial é 0,001 por milhão, então 25 bilhões extras são 25 dólares, não 5. O recado permanece: leitura sem índice encarece. Request sem cache também.
Gratuitos oficiais que eu conferi na tela do Workers: 100 mil solicitações por dia, 10 ms de CPU por invocação. Blog e site institucional cabem. Site que dispara query larga, loop e request extra estoura o free e o plano de 5 dólares. Cache, menos leitura, menos ida ao banco. A plataforma barata pune código ruim com fatura, não com máquina em 100% de CPU num datacenter só seu.
No pago, a documentação atual inclui 10 milhões de requests no mês e cobra 0,30 dólar por milhão extra, sem cobrança de duração de wall-clock no modelo Standard, com CPU à parte. Request para asset estático, na tabela de 2026, não entra na mesma conta. Nada disso apaga o 10 ms do free: um Worker pesado morre no gratuito mesmo com pouca visita.
- Publique uma rota real com dado, não um Hello World, nas duas plataformas se estiver em dúvida.
- Some request, CPU e linhas de banco no pior dia, não na média bonita.
- No D1, leia `rows_read`. No Workers, respeite 10 ms no free.
- Coloque segredo em variável do Worker, não em repositório, e Access no back.
- Releia a tabela oficial no dia do deploy: 5 contra 20 foi o recorte da gravação.
Doze anos de CDN, zero afiliado, e o que eu quero com isso no Brasil
Eu uso Cloudflare como CDN há mais de doze anos. Hospedagem na borda é recente para mim. Estou satisfeito. Quero conteúdo em português sobre isso porque, quando eu busco, acho gringo. Mentoria ou curso pode existir depois. Hoje o vídeo é opinião de quem publica ali e não ganha comissão.
Mesmo um site com 1 milhão de visitas no mês, no modelo por request, tende a sair mais barato do que VPS de WordPress acesa o mês inteiro. A frase não é “ilimitado”. É: a conta acompanha o uso, e o uso de um site bem feito cabe no 5 dólares. Site mal feito cabe na surpresa.
Se a sua aplicação precisa de processo Node longo, de um CMS headless clássico escutando porta, de um recurso que só existe no plugin da Vercel, teste isso com honestidade. Eu não estou dizendo que a Vercel não funciona. Estou dizendo que, para 90% do que eu vejo gente criando — blog, ferramenta, vitrine — Workers cobre, custa menos no recorte que eu mostrei, e não me obriga a espalhar banco em outro login.
Na sequência
- Compare cota de request do gratuito (100 mil/dia na Cloudflare) com o que o seu site gera hoje.
- Coloque D1, R2 e KV na mesma conta antes de abrir Postgres em outro SaaS.
- Meça CPU por request: 10 ms no free não perdoa biblioteca pesada.
- Separe o Worker de admin e proteja com Access.
- Trate afiliado e tutorial de Next como viés, não como prova de produção.
Onde isso quebra
Escolher Vercel porque “é o lugar do Next” e descobrir o plano de 20 dólares no mês seguinte.
Estourar D1 com OFFSET e LIKE e culpar a Cloudflare pelo 5 dólares virar 50.
Achar que URL secreta de Worker substitui autenticação.
Prometer hospedagem grátis ilimitada para cliente em cima do plano gratuito.
Perguntas frequentes
Workers é sempre mais barato que Vercel?
No recorte que eu gravei, sim: 5 contra 20 no pago, mais cota no free, banco SQLite incluso. Aplicação Node pesada, Postgres gerenciado e recurso exclusivo da Vercel mudam a conta. Leia a tabela do dia, não este parágrafo daqui a dois anos.
Dá para rodar Next.js na Cloudflare?
Dá. Framework moderno não é prisão da Vercel. Ainda assim eu não começo pelo Next quando HTML e um Worker resolvem.
O plano gratuito aguenta produção?
Aguenta site local e institucional se o código for enxuto. 100 mil requests por dia e 10 ms de CPU são o teto oficial, com reset à meia-noite UTC. Passou, ou você paga 5 dólares ou a invocação falha.
E se eu precisar de Postgres?
Vercel oferece caminho nativo no pago. Cloudflare fala com banco externo e tem Hyperdrive. Eu, para blog e catálogo, fico no D1. Não misturo as duas frases: “preciso de Postgres” e “quero o plano de 5 dólares com SQLite”.