Llevo años montando proyectos personales y prototipos de I+D, y casi siempre me pasaba lo mismo: dedicaba más tiempo a la infraestructura que a la idea. Una máquina virtual por aquí, una base de datos gestionada por allá, un bucket en otro proveedor y una factura que llegaba aunque nadie usara la aplicación.
Con Cloudflare he reducido ese trabajo a casi nada. No es la plataforma perfecta (al final de este capítulo cuento cuándo no la usaría), pero para validar ideas rápido es la que mejor me ha funcionado. En esta guía recorro todas las capas que hacen falta para llevar un proyecto completo a producción con ella.
Para quién es esta guía
Para quien quiere lanzar una aplicación real (no una demo) con poco equipo y poco presupuesto:
- Proyectos personales que pueden crecer.
- Prototipos y pruebas de concepto de I+D, donde lo importante es iterar rápido.
- Startups y equipos pequeños que no quieren mantener servidores.
Antes de empezar:
- Saber JavaScript o TypeScript y manejarte con la terminal.
- Node.js 22 o superior en tu máquina (los ejemplos están en TypeScript 7).
- Una idea que quieras llevar a producción. Si no la tienes, la aplicación de notas de la guía sirve de ejemplo.
Al terminar la guía tendrás una aplicación completa en producción, con dominio, datos, archivos, IA, seguridad, alertas y entornos de prueba, y sabrás cuánto cuesta cada pieza. También sabrás cuándo yo no usaría Cloudflare.
Si en algún capítulo te pierdes, es normal: hay muchas piezas. Cada capítulo empieza diciendo qué necesitas y termina con un resumen, así que puedes saltar al que te haga falta y volver.
Qué es Cloudflare hoy (más allá del CDN)
Mucha gente conoce Cloudflare por el DNS, el CDN o la protección contra ataques. Desde hace unos años es también una plataforma completa para ejecutar aplicaciones. La pieza central es Workers: tu código se ejecuta en la red de Cloudflare, cerca del usuario, y a su alrededor hay servicios para casi todo lo demás.
flowchart TB
U((Usuario)) --> DNS[DNS + SSL + WAF]
DNS --> W[Workers<br/>tu código]
W --> SA[Static Assets<br/>HTML, CSS, JS]
W --> D1[(D1<br/>SQL)]
W --> KV[(KV<br/>clave-valor)]
W --> R2[(R2<br/>archivos)]
W --> DO[Durable Objects<br/>estado y tiempo real]
W --> Q[Queues · Workflows<br/>segundo plano]
W --> AI[Workers AI · Vectorize<br/>IA]
W --> EM[Email · Images]
W --> HD[Hyperdrive<br/>Postgres externo]
| Capa | Producto | Para qué | Capítulo |
|---|---|---|---|
| Dominio y red | DNS, SSL, Registrar | Que tu dominio llegue a tu aplicación con HTTPS | Dominio y DNS |
| Código | Workers | APIs, páginas dinámicas, webhooks | Workers desde cero |
| Frontend | Workers Static Assets | Servir la web (estática, SPA o full-stack) | Frontend |
| Datos | D1, KV, Durable Objects, Hyperdrive | SQL, configuración, estado, bases externas | Bases de datos |
| Archivos | R2 | Subidas, descargas, copias | Almacenamiento |
| Segundo plano | Queues, Cron Triggers, Workflows | Tareas programadas y procesos largos | Segundo plano |
| Email Routing, Email Sending | Recibir y enviar correo | ||
| Imágenes | Images | Redimensionar y optimizar | Imágenes |
| IA | Workers AI, AI Gateway, Vectorize | Modelos, búsqueda semántica, RAG | IA en el borde |
| Seguridad | WAF, Turnstile, Access | Proteger la app y los entornos | Seguridad |
| Observabilidad | Logs, Traces, Analytics, Alertas | Saber qué pasa y enterarte a tiempo | Observabilidad |
| Operación | Versions, Previews, Builds | Desplegar sin miedo y volver atrás | Entornos y despliegues |
Por qué me funciona para validar ideas
Arranque en milisegundos y sin servidores que mantener
Workers no usa contenedores ni máquinas virtuales por petición: usa isolates de V8, el mismo motor de Chrome. Un isolate arranca en milisegundos, así que no hay cold starts (arranques en frío) que se noten. No hay que elegir región, tamaño de máquina ni número de instancias: Cloudflare ejecuta tu código donde está el usuario y escala solo.
Pagar solo por lo que se usa (y el cero existe)
Esto es lo que más me importa en un proyecto de I+D: si nadie lo usa, cuesta 0 $. El plan gratuito de Workers incluye 100.000 peticiones al día, y las peticiones a archivos estáticos son gratis e ilimitadas en todos los planes. El plan de pago empieza en 5 $ al mes por cuenta (no por proyecto) e incluye 10 millones de peticiones.
Cuánto cuesta al mes
Supuestos: Un prototipo con 2.000 visitas al mes, una API sencilla y una base de datos pequeña
| Concepto | Importe |
|---|---|
| Workers (plan gratuito)100.000 peticiones al día | 0,00 $ |
| Static AssetsGratis e ilimitado en todos los planes | 0,00 $ |
| D15 GB y 5 millones de filas leídas al día | 0,00 $ |
| R210 GB al mes incluidos | 0,00 $ |
| Total al mes | 0,00 $ |
Precios consultados el 3 de noviembre de 2026. Pueden cambiar.
El único coste fijo es el dominio. En el capítulo de costes hago números con proyectos más grandes.
Todo en una cuenta y conectado con bindings
En otros proveedores, conectar el código con la base de datos significa gestionar credenciales, redes y permisos. En Cloudflare se usa un binding: declaras en la configuración que tu Worker tiene acceso a una base de datos D1 o a un bucket R2, y lo usas como un objeto más (env.DB, env.FILES). Sin claves en el código ni configuración de red.
Desplegar es un comando
npx wrangler deploy sube tu código a toda la red en segundos. Cada despliegue crea una versión a la que se puede volver con otro comando. Para un proyecto personal no necesitas CI al principio; cuando lo necesites, está Workers Builds.
Qué tipos de aplicación encajan
Estas son las que he montado o he visto funcionar bien en esta plataforma, de más a menos sencilla:
| Tipo de aplicación | Piezas principales | Ejemplos |
|---|---|---|
| Web de contenido | Static Assets, Workers Cache | Blog, documentación, landing de un producto. Este blog está montado así |
| API o backend | Workers, D1, KV | API para una app móvil, backend de un formulario, webhooks de Stripe o GitHub |
| SaaS pequeño | Workers, D1, R2, Queues, Email | Herramienta con usuarios, cuentas y facturación |
| App con IA | Workers AI, AI Gateway, Vectorize | Chat sobre tus documentos (RAG), clasificador, resumen de textos |
| Tiempo real | Durable Objects, WebSockets | Chat, documentos colaborativos, juegos por turnos, reservas |
| Procesado de archivos | R2, Queues, Workflows, Images | Subir fotos y generar miniaturas, procesar PDFs o CSVs |
| Automatizaciones | Cron Triggers, Workflows, Email Workers | Informes diarios, bots, procesar correos entrantes |
| Herramienta interna | Workers, D1, Access | Panel de administración protegido con el login de tu equipo |
Dedico un capítulo entero a esto al final: Cuándo no usar Cloudflare.
La pila de referencia de esta guía
A lo largo de los capítulos voy montando, pieza a pieza, una aplicación de ejemplo: un gestor de notas con archivos adjuntos y búsqueda con IA. Es lo bastante pequeña para entenderla y lo bastante completa para tocar todas las capas.
flowchart LR
N[Navegador] -->|HTML/JS| SA[Static Assets]
N -->|/api| API[Worker API<br/>Hono]
API --> D1[(D1<br/>notas)]
API --> R2[(R2<br/>adjuntos)]
API --> Q[Queue<br/>procesar]
Q --> C[Consumidor]
C --> AI[Workers AI<br/>embeddings]
C --> V[(Vectorize)]
API --> EM[Email<br/>avisos]
Cada capítulo explica una capa con sus opciones, el código en TypeScript y lo que cuesta. Puedes leerlos en orden o saltar al que necesites.
TypeScript 7 en Workers
TypeScript 7 es la primera versión estable del compilador reescrito en Go: comprueba tipos varias veces más rápido que TypeScript 6. Para Workers no cambia nada en el código. Wrangler empaqueta el TypeScript con esbuild (que quita los tipos sin comprobarlos) y TypeScript 7 se usa para comprobar los tipos con tsc --noEmit.
Lo vemos en detalle en Workers desde cero.
Resumen
- Cloudflare tiene piezas para todas las capas de una aplicación, conectadas con bindings.
- Para proyectos personales y de I+D, el plan gratuito y el pago por uso permiten validar ideas por 0 $.
- La combinación de partida es Workers + Static Assets + D1 + R2.
- Siguiente capítulo: el dominio, el DNS y el certificado.
