Skip to main content
All posts
Engineering3 min read

Deno joined Cloudflare, which hints at an answer to vendor lock-in

Deno is joining Cloudflare. Deno users lose a runtime and a host, but celld could make Workers apps self-hostable. And that makes me really excited!

By Ehsanur Rahman Rhythm

Risograph Cabin and Dinosaur Illustration

On 9th October, the whole Deno team joined Cloudflare. Both companies call it "joining." TechCrunch and Hacker News call it an acquisition, and nobody has disclosed terms.

I read both announcements twice. The headline is about a team changing companies, but the part I notice is a small Rust binary Deno released in August.

What Deno users lose#

This costs Deno users something real, so I'll start there. The Deno runtime gets one more year of monthly releases with bug fixes and security updates, and then development ends. It stays open source. Deno Deploy runs for six more months and then shuts down, with migration support for paying customers moving to Workers. JSR, the package registry, keeps running on Cloudflare's infrastructure.

Ryan Dahl was blunt about why on Hacker News. Deno had been "sucked into the gravity well of node compatibility." "Why reimplement Node? It works." It's an odd ending for a project that started as Dahl's list of regrets about Node.

What Cloudflare gets#

Dahl introduced Node.js in 2009 "in a Berlin warehouse," with "a 500-line JavaScript IRC server." What always bothered him was that "it was a single server, single thread even." The answer he found was Cloudflare's Durable Objects, "the distributed singleton with a SQLite database." So in August, Deno released celld. It runs the Workers and Durable Objects model on your own servers as "one binary, written in Rust, with object storage as its only external service dependency."

Cloudflare didn't have that. Their open-source runtime, workerd, could only run Durable Objects "in a single-instance way, good enough for local testing, but unable to scale." Kenton Varda, who leads the Workers runtime had tried to fix that himself: "I actually made an attempt last spring, but, embarrassingly, it didn't work." Then Deno shipped one. "Deno Land was building it for us!"

The plan now is to merge code and ideas from celld into workerd and make self-hosting a first-class way to run Workers apps. Dahl and Bert Belder will lead it.

Why I care about that part#

I build on Workers. Every site I make runs on Cloudflare, and I pick the stack around Workers on purpose, because it's cheap and fast. Vercel charges $20 a month for every developer seat. Netlify and Railway have moved to flat team pricing, and they still feel costly to me next to Workers, which is priced per account. The free plan gives you 100,000 requests a day, the paid plan starts at $5 a month, and there's no bandwidth charge. It holds up at scale too. DeliveryHobe, where I've worked, serves millions of users from a Cloudflare setup.

So I get asked about Workers a lot, and the pushback is always the same. What happens if you need to leave?

Varda has an answer I like. When Cloudflare pitched Workers for Platforms to Shopify in 2022, Shopify said they "couldn't possibly build on us unless the Workers Runtime was open source." So Cloudflare open-sourced it. Some former customers have since used workerd to leave Cloudflare entirely. Varda's reaction: "And that's OK!" Then: "being open source and giving people an escape hatch is good business." ❤️