DraftReviewPublishedArchived

Cloudflare's Deno acquisition: reshaping the paradigm for developer tools

From technology to business, Deno's future path

Explore how Deno changed the use of developer tools and business operating models through Cloudflare's acquisition

By Joker10/10/2026AI · strong

Cloudflare bought Deno, not for the runtime, but for the charging rights of the JavaScript container.

When Ryan Dahl admitted Node.js's top ten regrets on JSConf EU in 2018, what he had in his hand was not a patch, but a rewritten blueprint. Six years later, Deno's entire team moved into Cloudflare. The target of this deal was never the binary file deno-the open source projects on GitHub with fork 32,000 and star 98,000 have long been unable to escape. What Cloudflare really got was a complete tool chain that packaged computing, storage, and communications into "JavaScript containers", plus stuffing this tool chain into a distribution network of 335 edge nodes around the world.

This is interesting.


runtime war is long over, the platform war has just begun

Node.js won the ecology, Bun won the start-up speed, and Deno chose the most difficult track: turning infrastructure into built-in language capabilities .

Looking back at Deno's every technical decision, it is all about paving the way for platformization: URL import and elimination of node_modules is to make modules inherently addressable, cacheable, and edge distributable; built-in deno fmt/lint/test/compile is to reduce the dimension of the tool chain from "development-time dependence" to "run-time guarantee"; permissions sandboxes --allow-net/--allow-read are not a sense of security for developers, but a hard-core primitive that provides multi-tenant platforms to isolate untrusted code.

When Deno Deploy went online in 2021, I said: This is not Serverless, this is selling V8 isolate as a container. But Deno can't play this game of chess himself-global deployment requires money, storage requires money, WebSocket requires money, and even strong consistent key-value stores like Deno.KV have to maintain their own clusters. In 2023, Deno Deploy has only 35 regions, with a median cold start of 80ms, while Cloudflare Workers has long pushed the cold start of 335 PoPs to 0ms.

Cold start comparison during edge operation (ms) Cloudflare
Workers 0 Deno
Deploy
80 AWS
Lambda@Edge
150 Vercel
Edge
200 Netlify
Edge
350 Data source: Cloudflare/Deno/Vercel official documents 2024 Q3 benchmark

The night the acquisition was announced, I saw Luca Casonato, the core defender of Deno, posted on Discord: "We finally don't have to build Kubernetes ourselves." That's the whole business logic: Deno built the engine, gearbox, chassis, Cloudflare provided highways, toll stations, gas stations. Together, the two sides are a "JavaScript container platform" that can fight with AWS Lambda and Vercel in real terms.


opponents will say: Isn't this another script to buy, buy and destroy open source?

Under the Lobste.rs post, the most favorable reply was: "Cloudflare ate the open source team, disassembled the project, and in the end, only the brand remained." This is a reasonable worry-look at the Terraform license changes after HashiCorp was acquired by IBM, and look at Elastic's history of forcing OpenSearch out.

But Deno's hand is different. It has three trump cards to protect itself:

First, the license is MIT, not BSL. Ryan Dahl changed his license from Mozilla Public License to MIT in 2020, explicitly allowing closed-source commercial use. The legal cost of buying Cloudflare to change the license is extremely high, and the cost of community fork is extremely low-the two letters deno can become dino, reno, and venom at any time.

Second, JSR (JavaScript Registry) has implemented federated distribution. JSR is not as centralized as npm, it is a decentralized registry of content addressing + signature verification. Even if Cloudflare wants to lock JSR in its own garden, it will have to first complete the verification chain of millions of jsr:@scope/pkgs. It's like GitHub wants to privatize the Git protocol-the protocol layer has long run through, and the governance layer cannot lock it.

Third, the Fresh framework makes the "island architecture" marginal. Fresh does not perform client-side hydration, full-service rendering, and relies on the micro-hydration marked by <Island>. This architecture is inherently suitable for Cloudflare Workers 'zero-cold boot, and it is also inherently not suitable for Vercel's Next.js "package client" route. Cloudflare's purchase of Deno is equivalent to buying a frame moat that can be as tough as Next.js-and this moat is open source and cannot escape.

I make a bet: In two years, Deno CLI will still be released weekly, JSR will still be mirrored to npm synchronously, and Fresh will still support deployment to Vercel. Cloudflare makes money from Subhosting and Deno for Enterprise-allowing SaaS vendors to outsource the dirty work of "running user code" to Cloudflare's isolation sandbox.


Deployment engineer in ### data center

There is a SaaS company that does form construction, and engineer Xiaolin maintains the "user-defined script" function. The early plan was to run vm2 in his own K8s. Last year, a user posted a while(true){} to fill up the entire node CPU and drag down the payment service nearby. Kobayashi switched to isolated-vm overnight, and stepped into the trap again: V8 isolate shared heap memory, and malicious scripts can read encryption keys that isolate neighbors through the SharedArrayBuffer side channel.

Later, they connected to Deno Deploy Subhosting. Change the code to three lines:

const sandbox = await Deno.subhosting.createSandbox({ 
  limits: { cpuMs: 500, memoryMb: 64 } 
});
await sandbox.run(userCode);

Bills are calculated in milliseconds, and isolation relies on Linux KVM + gVisor dual-layer, so Kobayashi does not have to worry about kernel vulnerabilities. Last week, he told me: "I used to be the person who operated V8, but now I am the person who called V8. The difference is that when the alarm rings at three o'clock in the morning, I don't have to get up."

This happens repeatedly in the edge computing industry. After the tool stripped off the cognitive load of "runtime operation and maintenance", developers no longer cared about how isolate was scheduled, how KV was copied, and how WebSocket was kept alive-they began to care about "My business logic was away from the user on the edge node" How far is it?"****


The true paradigm shift: from "download runtime" to "subscription platform capabilities"

Evolution of developer tools business model Phase 1: Libraries/Framework React, Vue, Express Cash out: Consulting/Training/Enterprise Edition Developer: npm install Phase 2: Hosted Services Vercel, Netlify, Railway Cash out: Custody fees/bandwidth/seats Developer: git push Phase 3: The runtime is the platform Deno + Cloudflare monetization: computing/storage/communications trinity Developer: deno deploy Deno + Cloudflare's "Trinity" capability stack Compute V8 Isolate zero-cold start Native TypeScript execution WebAssembly component model Storage Deno.KV strong consistency D1 (SQLite at edge) R2 / Cache API Communication WebSocket / Durable Objects Service Bindings (RPC) JSR Federalization Module Distribution

The Phase 3 in this picture is the truth why Cloudflare spent money on Deno.

In the past, Vercel sold "Help You Run Next.js" and Netlify sold "Help You Run Static Sites". Their moat was ** frame-binding -you had to use Vercel when using Next.js, and Netlify when using Astro. But Deno + Cloudflare sells language-level infrastructure : You write TypeScript, and the rest of the computing, storage, and communication are all built-in capabilities of the platform. There is no need to install packages, equip YAML, and select regions.*

JSR plays a key role here: it is not a replacement for npm, it is an edge-native package manager. jsr:@std/http automatically resolves to the cache node of the latest PoP when imported. The version lock uses the content hash instead of the semantic version number. When published, a type declaration is automatically generated and distributed to the entire network. This means that the dependency graph is no longer a build-time artifact, but a topology that can be queried at runtime.

I am reminded of Ryan Dahl's metaphor in his 2022 "JavaScript Containers" blog: "Every application should not assemble its own infrastructure, just as every container should not bring its own port, rail, or crane." When Cloudflare bought Deno, it bought all the ports, railways, and cranes and told the developer: "You just build containers (write the business code), and the rest will be ours."


What will ### developers lose? Control.

This is the price that no one likes to say, but everyone feels.

When deno deploy --project=myapp becomes the default workflow, when Deno.KV replaces Redis, D1 replaces PostgreSQL, and Durable Objects replaces the state management library, the developer's technology stack has completed the qualitative change from "assembly" to "subscription".

You no longer decide what KV engine to use, how to slice, how to choose consistency levels, and how to cut cold and hot standby. These decisions are made for you by Cloudflare's product managers, SREs, and network engineers-better than you, but not necessarily suitable for you.

There is an entrepreneurial team that does real-time collaborative editing. Last year, it moved its signaling service from self-built ws + Redis to Deno Deploy + Durable Objects. After the relocation, the delay was reduced from 120ms to 35ms, and the operation and maintenance costs were returned to zero. But last month they wanted to do end-to-end encryption and found that Durable Objects 'storage encryption keys were hosted by Cloudflare and could not bring their own key (BYOK). In order to comply, they had to move their core collaboration status back to their self-built clusters, leaving only non-sensitive signaling at the edge.

"The saved operation and maintenance costs are ultimately used to circumvent platform restrictions." CTO complained to me,"This is not Serverless, this is Server-someone-else's rules."

This is also the way tools reshape the human side: When flat replaces options, convenience becomes lock.


My judgment: In the next two years, the watershed for JavaScript servers will not be performance, but "Are you willing to hand over infrastructure decision-making power?"

The combination of Cloudflare + Deno will push JavaScript service-side development to two extremes:

  • ** One pole : Small and medium-sized teams, AI Agent hosting, edge middleware, Serverless functions-fully embrace platform capabilities and enjoy zero operation and maintenance, zero cold startup, and global distribution. They will become Cloudflare's most loyal tenants, with monthly bills naturally increasing from $0 to $5000.*
  • The other pole : Scenarios with strong compliance, strong customization, and strong data sovereignty-financial risk control, medical records, government systems, and large self-built CDN manufacturers. They will continue to use Node.js/Bun to run on their own K8s or bare metal, using Deno as a "lightweight gateway on the edge side" rather than a core runtime.

The middle zone will be squeezed very thin.

Will JSR become the next npm? I went to the theater. The moat of npm is not a registry, but the 3 million packs of ecological accumulated over 15 years and the npm ci muscle memory in the CI/CD assembly line. The real value of JSR is to make a Content Delivery Network for Deno/Cloudflare's own ecosystem-first-party packages such as jsr:@deno/kv and jsr:@cloudflare/durable-objects are its moat.

Can Fresh beat Next.js? Not in the short term. Next.js has 100,000 + Vercel paying customers, endorsements from the React team, and an architecture like app/router that changes mental models. But Fresh doesn't need to win Next.js. It just needs to stick to the "edge native, zero hydration, TypeScript first" mentality and win the group of developers who "don't want React's heavy asset-architecture". Cloudflare can earn back its acquisition costs.


The endgame of developer tools is not a better CLI, it is not the need for CLI.

Deno's joining Cloudflare marks the official entry of JavaScript servers into the era of "runtime is platform". In this era, the winner is not the fastest engine, but the platform that covers the engine, oil, roads, and toll stations.

And those of us who write code are changing from "infrastructure assembler" to "platform capability subscribers." Are you in this deal?

QUEST COMPLETE—REWARD: +30 XP, +1 LEGENDARY ITEM
Build Progress100%
No signal
PULSE
0PULSES