Cloudflare compra Deno: 365 días de parches, 180 para Deploy y el repositorio de 13 commits que está en el centro de la operación

Cloudflare anunció el 9 de octubre de 2026 que absorbe Deno, pero sus dos notas de prensa no cuentan lo mismo: la de Deno da al runtime 12 meses de parches mensuales antes de cerrar su desarrollo y 6 meses de vida a Deno Deploy, mientras la nota de Cloudflare (10.583 caracteres) no menciona ni una sola de esas fechas. Los datos de GitHub muestran que el ritmo de commits del runtime ya había caído un 88,3% en los tres meses previos, que deployctl se archivó el 11 de marzo de 2026 y que celld —el repositorio que realmente se compra— acumula 13 commits de 2 cuentas.

El 9 de octubre de 2026 Cloudflare anunció que absorbe al equipo de Deno. El anuncio llegó en dos entradas de blog: una en el sitio de Deno firmada por Ryan Dahl y otra en el de Cloudflare firmada por Dahl y Kenton Varda. Cuentan el mismo hecho y casi el mismo plan. No cuentan las mismas consecuencias.

Si solo lees la nota de Cloudflare, no te enteras de que al runtime de Deno le quedan doce meses de vida. Si lees las dos, aparece la forma real de la operación: se apaga por calendario un runtime con 108.720 estrellas, y el repositorio que Cloudflare realmente va a fusionar con su propia plataforma suma 13 commits de 2 cuentas en su rama principal.

Antes de escribir esto bajé los datos de GitHub. El runtime ya se estaba apagando mucho antes de que nadie lo anunciara.

Qué se anunció exactamente, con fechas

La nota de Deno contiene cuatro compromisos concretos. Son breves y sorprendentemente precisos:

ActivoCompromisoFecha límite (desde el 9 de octubre de 2026)
Runtime de DenoPublicaciones mensuales solo con correcciones de errores y de seguridad y, después, «we will end our development of the Deno runtime»~9 de octubre de 2027
Deno Deploy«will continue operating for six months before shutting down»; ayuda a la migración hacia Cloudflare Workers para los clientes de pago~9 de abril de 2027
JSR«will continue operating, with its infrastructure moving to Cloudflare»sin fecha
rusty_v8Soporte continuado y «work toward integrating it into workerd»sin fecha

El plan técnico está en la nota de Cloudflare: «Ryan and Bert will be leading a new effort to make workerd self-hosting a first-class supported way to build and run apps using the Workers programming model. This will involve merging code and ideas from celld back into workerd.»

Las dos notas no dicen lo mismo

Convertí la nota de Cloudflare a texto plano y conté. El cuerpo tiene 10.583 caracteres. Esto es lo que aparece en él:

FraseApariciones en la nota de Cloudflare
«another year»0
«end our development»0
«six months»0
«shutting down» / «shut down»0 / 0
«migration support»0
«sunset» / «discontinu» / «end of life» / «EOL»0
«JSR»0
«Deno Deploy»1 — dentro de una frase sobre la complejidad operativa que Deploy le enseñó a Dahl

La nota de Cloudflare menciona el runtime de Deno exactamente una vez, para remitir al lector a la otra nota. Simon Willison señaló la asimetría en Hacker News: «I don’t like how that’s in the Deno post but gets no mention in the Cloudflare post. Seems like a pretty important detail!»

El contraargumento del mismo hilo es razonable: cada nota tiene su público, y quien usa Deno irá a la de Deno. Lo que demuestra el recuento es algo más estrecho y, creo, más útil: el documento que alguien capturará con pantallazo en 2027 para evaluar a Cloudflare no contiene una sola fecha.

Qué está comprando Cloudflare en realidad

Este es el repositorio en el centro del plan, medido el 10 de octubre de 2026:

denoland/celld
Estrellas5.198
Watchers27 (0,52% de las estrellas)
Forks242
Issues abiertas40
Creado25 de abril de 2025
Lenguaje / licenciaRust / Apache-2.0
Tamaño del repositorio3,6 MB
Contribuidores (API de GitHub)2 cuentas, 13 commits — ry 9 (69,2%), bartlomieju 4
Último push7 de octubre de 2026

Ese recuento de contribuidores merece una advertencia antes de que alguien lo ponga en una diapositiva: el endpoint de contribuidores de GitHub solo resuelve commits de la rama principal contra cuentas identificadas, así que subestima historiales aplastados (squash), trabajo con coautoría y force-push. Lo que sí establece es que la superficie pública en la rama principal del activo que se fusiona con el runtime de Cloudflare es diminuta: aproximadamente un commit por cada 400 estrellas. La cuenta de Ryan Dahl en Hacker News (rough-sea) es el autor mayoritario.

Por qué importa un repositorio tan pequeño lo explica Varda, inusualmente sincero sobre la carencia de su propio runtime:

«In the interest of transparency, I do have to admit that workerd has always had one big gap in its production-readiness: Durable Objects. Workerd implements them, but only in a single-instance way, good enough for local testing, but unable to scale. We have always wanted to fix this. There are TODO comments in the code going back to the original release.»

Y después la admisión que hace legible la adquisición: «our production implementation of Durable Object routing is simply not the implementation any self-hoster would want. It’s a beast, designed to handle hundreds of locations, with numerous dependencies on external services operated by a team of site reliability engineers… I actually made an attempt last spring, but, embarrassingly, it didn’t work.»

Cloudflare liberó workerd en 2022 porque clientes como Shopify exigían una vía de salida. Cuatro años después, los números dicen que esa vía de escape casi nadie la usó:

RepositorioEstrellasWatchersIssues abiertasÚltimo push
denoland/deno108.7201.424 (1,31%)1.6812026-10-07
cloudflare/workerd8.86170 (0,79%)7622026-10-09
denoland/celld5.19827 (0,52%)402026-10-07

workerd tiene el 8,2% de las estrellas de Deno y el 4,9% de sus watchers. Varda lo dice sin adornos en la nota: «We released workerd genuinely intending for people to use it in production. A few have, but so far, not that many.» En el hilo, cuando le reprochan que quien usa workerd no puede ejecutar D1, KV ni Queues, responde: «Details remain to be worked out, but part of the goal of the project is to make all these interfaces plugable with reference implementations that can sit on common infrastructure. In fact, celld has already done a lot of this.»

El repositorio ya se había detenido

Lo más interesante que encontré no está en ninguno de los dos anuncios. Es el ritmo de commits en la rama principal de denoland/deno durante los últimos 700 commits, que se remontan al 15 de junio de 2026:

MesCommitsDías cubiertosCommits/día
Jun 20261951612,19
Jul 2026308319,94
Ago 2026150314,84
Sep 202635301,17
Oct 20261262,00

Es una caída del 88,3% entre julio y septiembre, meses antes de que se anunciara la operación el 9 de octubre. En la misma ventana, dos cuentas (bartlomieju y nathanwhit) produjeron 429 de 700 commits: el 61% de todo el trabajo.

La cadencia de versiones cuenta la misma historia. En los doce meses que terminan el 9 de octubre de 2026, denoland/deno publicó 42 versiones estables: una mediana de 7 días entre versiones, una media de 8,4 y un hueco máximo de 41 días. La última fue v2.9.7, el 17 de septiembre de 2026, 23 días antes del anuncio, o 3,3 veces la mediana. En noviembre de 2025 no hubo ninguna.

Dos fechas ajenas a GitHub encajan con esa curva. denoland/deployctl, la CLI de Deno Deploy, quedó archivada el 11 de marzo de 2026, siete meses antes de la nota que anunció el cierre de Deploy y mientras Deploy seguía a la venta. El 20 de marzo de 2026, David Bushell publicó «404 Deno CEO not found», donde informaba de que «a good chunk of Deno employees left the company over the last week», después de 4,9 millones de dólares de capital semilla y una Serie A de 21 millones. La réplica de Dahl por entonces se titulaba «Reports of Deno’s Demise Have Been Greatly Exaggerated».

El retrato organizativo no es el de un proyecto sano de 235 repositorios que se absorbe, sino el de un proyecto que ya se estaba apagando a mano: de los 235 repositorios de la organización denoland, 141 (el 60%) ya están archivados. Los cuatro activos nombrados en el anuncio no son, ni de lejos, los cuatro que le quedaban.

De 42 versiones al año a 12

Merece la pena convertir la promesa de soporte en un número, porque así es como la vivirá un equipo con una fecha límite encima.

Históricamente, Deno publicaba 42 versiones estables al año: unas 3,5 al mes. El compromiso del último año es publicaciones mensuales con correcciones de errores y de seguridad. Es una reducción de cadencia de 3,5 veces, y es la diferencia entre que un CVE crítico llegue en días (mediana de 7) o en semanas (hasta 31). Ninguna de las dos notas compromete a Cloudflare con un tiempo de respuesta de seguridad.

La frase que sostiene todo el peso en la nota de Deno es: «Deno will remain open source, and we welcome others who want to continue its development.» Así que medí el bus factor de esa oferta:

AlcancePorcentaje de commits listados en denoland/deno
Primer contribuidor (bartlomieju)20,6%
Cinco primeros50,4%
Veinte primeros81,6%
Total (200 cuentas listadas)15.848 commits

El propio Dahl es el tercero de la lista, con 1.434 commits (9,0%). Un fork de un runtime de este tamaño, mantenido por quien aparezca, es una petición muy difícil: la pregunta afilada del hilo la hizo jflatow: «How can the community carry it forward without you? Will CloudFlare release the name/assets, or it will have to be forked?»

Siete productos que la carta no menciona

El menú de Deno lista ocho productos. El anuncio nombra cuatro activos, y uno de ellos (JSR) ya no vive ni en la organización denoland. Así están los demás, medidos hoy:

ProductoEstrellasWatchersÚltimo push¿Nombrado en el anuncio?
Fresh (framework web)13.794792026-10-03no
std (biblioteca estándar)3.559442026-09-25no
JSR2.976132026-10-08sí (continúa)
deno_lint1.582212026-09-25no
vscode_deno1.548262026-09-26no
dnt (herramienta npm)1.336172026-10-01no
Claw Patrol (firewall de agentes)1.07312026-10-03no
deno_docker1.017142026-09-17no
denokv652172026-09-24no

Fresh se mudó a la organización freshframework y sigue publicando; su reacción en el hilo fue seca pero cariñosa: «Fresh was also the best web framework I’ve used. Oh well.» std —la biblioteca estándar que importa cualquier proyecto Deno— no recibe compromiso propio, que es justo lo que preguntó chaosharmonic sin obtener respuesta: «And does it at least mean the stdlib will see continued development?»

La fila más extraña de esa tabla es Claw Patrol. Aparece en el propio menú de productos de Deno como firewall de código abierto para agentes, se creó el 28 de abril de 2026, está escrito en Go, recibió un push dos días antes del anuncio, acumula 71 issues abiertas y tiene un watcher. Si mantienes infraestructura de agentes y contabas con que Claw Patrol siguiera recibiendo parches de seguridad, el anuncio no dice nada al respecto.

Cómo funciona celld y qué sigue sin demostrarse

Conviene ser preciso sobre qué se fusiona, porque «Cloudflare compra Deno» resume mal el plan de ingeniería real. Según el propio README de celld, el modelo es este:

  • Un único binario escrito en Rust. «celld stores the long-term state in your S3-compatible, Google Cloud Storage, or Azure Blob Storage bucket. It needs no serving control plane or consensus service.»
  • Cada nodo embebe V8 y ejecuta bundles de Wrangler. Los nodos que comparten un bucket forman una flota, y ese bucket guarda los despliegues, el estado de las celdas y los registros de propiedad.
  • Una celda es un servidor con nombre y su propia base de datos SQLite. La propiedad se reclama con una escritura condicional en el bucket, de modo que exactamente un nodo posee una celda en cada momento: sin Raft, sin protocolo de pertenencia, sin detector de fallos. El enrutado y el transporte del registro replicado van por HTTP entre pares firmado.
  • KV, Queues, D1, R2, Workflows y los disparadores de cron se implementan como celdas y heredan el mismo arriendo (lease) y el mismo failover.

Esa es la parte genuinamente ingeniosa, y es la razón de que haya habido una compra y no una alianza: un bucket de almacenamiento de objetos como única dependencia externa es algo muchísimo más fácil de autoalojar que el enrutado de Durable Objects en múltiples regiones de Cloudflare.

Lo que no está resuelto es todo lo que viene después:

  1. La fusión en sí. celld es Rust; workerd es C++. Varda: «We don’t completely know what it will look like yet either, but it will absolutely be open source.»
  2. La paridad de los enlaces (bindings). Las implementaciones de referencia conectables para D1, KV y Queues existen en celld, pero no se ha demostrado que igualen el rendimiento ni la ergonomía de las gestionadas por Cloudflare.
  3. Si celld sobrevive como proyecto independiente. Varios lectores del hilo hicieron la pregunta obvia —«Does this mean that celld is dead? No more open source durable objects?»— y nadie la respondió. La superficie pública de celld hoy son 13 commits, 27 watchers y un push dos días antes del anuncio.

Si usas Deno, este es tu calendario

Nada de esto exige entrar en pánico. Deno 2.x tiene licencia MIT, funciona hoy y —como señalaron varios comentaristas— su fuerte inversión en compatibilidad con npm hace que salir duela menos que en 2022. Lo que exige es una decisión con fecha.

Tu situaciónQué cambiaPara cuándo
Cliente de pago de Deno DeployCierre; ayuda a migrar a Workers~9 de abril de 2027
Deno Deploy (plan gratuito)Cierre; sin ayuda declarada~9 de abril de 2027
Runtime deno en producciónSolo errores y seguridad, después sin desarrollo~9 de octubre de 2027
Embeber deno_coreNingún compromisosin fecha
Usuarios de deno compileNingún compromiso; frágil según usuarios veteranossin fecha
Fresh / std / deno_lintNo mencionados; trátalos como mantenidos por la comunidadsin fecha

Los destinos realistas, con sus propias señales:

  • Node.js — 122.260 estrellas, 3.020 watchers (un 2,47%, el ratio más sano de la comparativa), mantenido bajo la Linux Foundation y todavía el valor por defecto del 99% de los proyectos. El consejo más votado del hilo era, literalmente, volver.
  • Bun — 96.165 estrellas, 625 watchers y propiedad de Anthropic desde el 2 de diciembre de 2025 (un hilo de 2.192 puntos en Hacker News). El consejo repetido es usarlo como gestor de paquetes compatible con npm y no depender de sus APIs: «Use bun when it’s drop in replacement of npm, never use Bun API itself.»
  • Go o Rust nativos — la opción que un número sorprendente de comentaristas decía haber tomado ya. El responsable de un proyecto construido sobre Deno desde 2022 (cscheid) lo explicó así: «we’re moving to a much bigger Rust core program with node for JS user extensibility… I’m not willing to risk using the deno_core crates.»
  • Autoalojar celld / workerd — la opción que la compra pretende hacer viable y la única que depende de un anuncio futuro («more announcements about this work in the coming months»).

Hay una ironía real en la operación que el mejor comentario del hilo (ttul) resumió con limpieza: «Fundamentally this acquisition is not about Deno the open source project. It’s about buying an amazing team that has built a self-hosted version of Cloudflare Workers that actually doesn’t suck. And that is all about commoditizing the complement.»

El año en que se absorbieron los dos rivales de Node

Deno no es un caso aislado. Bun se unió a Anthropic el 2 de diciembre de 2025. Deno deja de desarrollarse el 9 de octubre de 2027. En diez meses, los dos runtimes que llevaban esta década argumentando que Node dejaba rendimiento, seguridad y herramientas sobre la mesa fueron absorbidos por las dos empresas mejor situadas para vender infraestructura de agentes.

wiseowise sacó la conclusión inversora: «this would’ve happened to Bun if it hadn’t found its killer app (Claude Code)… Think twice before you bet on that VC funded horse, folks.» syrusakbary señaló la consecuencia de mercado: «I’m a bit concerned that there are very few independent Node.js runtimes.» Y zem formuló el problema estructural del traspaso «lo mantendrá la comunidad»: «however distributed an open source project is in theory, in practice it needs a single entity to steward it, otherwise it will die.» Una respuesta propuso el modelo OpenTofu: un consorcio de las empresas que dependen del runtime.

La réplica de Varda a la acusación de acquihire merece leerse entera en lugar de parafrasearla. Cuando le preguntan por la tesis de que Cloudflare «had plans to buy out a company with the explicit intent to shut down their main product», responde: «I understand why it looks that way, and we knew it would be hard to combat this perception. But it’s simply not true. The actual story is simply this: The Deno team made a strategic decision to refocus on celld.»

La cronología medida respalda ese marco hasta cierto punto: la caída de commits, la CLI de Deploy archivada y los despidos son meses anteriores a la operación. La explicación de Dahl es que él está de acuerdo con la decisión: «It has been sucked into the gravity well of node compatibility, which forces it to behave exactly as Node does. Why reimplement Node? It works. Marginal performance or UX or security benefits are not enough.» Y también dice lo que no hará: «We’ll ship monthly releases for a year, and Deno stays MIT-licensed. If people want to carry it forward, I’d like that.»

Las dos cosas pueden ser ciertas. Cloudflare no tuvo que inventar un cierre: Deno ya no lograba financiar su propio runtime. Pero la consecuencia es la misma para quien eligió Deno precisamente por la razón por la que existía: la ruptura limpia con Node se acabó y de aquella promesa solo queda la licencia.

Método de auditoría

Todos los números se midieron el 10 de octubre de 2026 con la API REST de GitHub (/repos/{owner}/{repo}, /repos/{owner}/{repo}/releases, /repos/{owner}/{repo}/commits, /repos/{owner}/{repo}/contributors, /orgs/denoland/repos, /search/issues), además de Hacker News vía la API de Algolia y las dos notas de anuncio descargadas directamente. Límites conocidos: open_issues_count incluye pull requests; el endpoint de contribuidores refleja solo commits de la rama principal asociados a cuentas; los meses del ritmo de commits están acotados por la muestra de 700 commits (15 de junio – 6 de octubre de 2026), así que junio y octubre son parciales. Las estrellas se mueven: toma los ratios, no los absolutos, como hallazgo.

Preguntas frecuentes

¿Está muerto Deno? No, pero tiene calendario. El runtime seguirá recibiendo correcciones de errores y de seguridad cada mes durante doce meses desde el 9 de octubre de 2026 y después Cloudflare cesa su desarrollo. Sigue teniendo licencia MIT y el código sigue público. deno 2.x funcionará durante años; lo que se detiene son las mejoras y una respuesta de seguridad previsible.

¿Qué pasa con mi despliegue en Deno Deploy? Deploy cierra a los seis meses (~9 de abril de 2027). El compromiso de Cloudflare cubre «migration support for paying customers moving to Cloudflare Workers». Los usuarios del plan gratuito no aparecen mencionados en ninguna de las dos notas.

¿Sobrevivirá celld como proyecto independiente? No está claro y el anuncio no lo dice. El plan es fusionar las ideas y el código de celld dentro de workerd, así que el futuro del demonio independiente depende de la hoja de ruta de Cloudflare, una hoja de ruta que Varda describe como «details remain to be worked out». Si los Durable Objects autoalojados te importan, vigila el historial de commits de celld y toma 13 commits y 27 watchers como la línea base a superar.

¿Puedo seguir usando Deno para scripts de CLI y herramientas internas? Sí, y el trabajo de compatibilidad con npm de los últimos tres años hace que salir sea más fácil que antes. Fija la versión exacta (v2.9.7 es la última estable al escribir esto), empaqueta tus dependencias y no diseñes arquitectura nueva en torno a APIs exclusivas de Deno —KV, Deploy o deno compile— si tienes un horizonte de varios años.

¿Y JSR? Sobrevive y su infraestructura se muda a Cloudflare: es el único activo del anuncio sin fecha límite. Ojo con sus señales medidas: 2.976 estrellas, 13 watchers (0,44% de las estrellas), 236 issues abiertas. En el hilo se dudaba de que un registro cuyo diferenciador era publicar TypeScript nativo para Deno tenga futuro sin el runtime de Deno como consumidor de primera clase.

¿Compró Cloudflare Deno para matarlo? Los datos no respaldan una versión simple de esa historia: la velocidad de commits, una CLI de Deploy archivada y los despidos son anteriores a la compra. Tampoco respaldan la versión inocente. Cloudflare paga por un equipo y por un activo (celld) que hace autoalojable su propio runtime; el runtime que ese equipo mantenía tiene un año de parches y una sola línea sobre que la comunidad lo continúe.

Conclusión

El número interesante de esta operación no son las 108.720 estrellas ni un precio que nadie ha publicado. Son los 13 commits del historial público de celld, la caída del 88,3% en el ritmo de commits de Deno entre julio y septiembre, y las cero ocasiones en que la propia nota de Cloudflare menciona que el runtime que adquiere tiene un año de vida por delante.

Si usas Deno, tienes una fecha límite y una licencia, no un custodio. Si evalúas Cloudflare Workers pensando en autoalojarte, lo que hay que vigilar no es el anuncio sino la fusión: si el modelo de celdas sustentado en almacenamiento de objetos llega de verdad a un runtime escrito en C++, si los enlaces conectables alcanzan a los gestionados y si un repositorio que hoy cabe en una pantalla crece hasta convertirse en la vía de escape que estos cuatro años no produjeron.