Deno Became the Thing It Promised to Kill

A Node.js error after a version bump turned out not to be a bug — since 2.8.0, Deno ships Node.js as a first-class citizen by default, and the landing page now sells Node compatibility outright. De-no is No-de reversed, and it just did a 180 into the thing it was built to escape. Why that broke the promise I trusted it for, why I feel like a fool for evangelizing it — and why I'm staying for now, but already hoping for an alternative.

nomadshiba | XBT

11. Juli 2026July 11, 2026 · 4 Min. Lesezeit4 min read

This week after upgrading Deno version for one of my projects, I realized that it was giving a Node.js error. I first assumed this was a bug and Deno was failing to exclude Node.js types leaking from a package.

So I tried to isolate the issue in order to open a bug report, and realized that the issue was happening at version +2.8.0. Soon I realized this was intentional, De-no which is reverse of No-de even in the name, was doing a 180 and including full Node.js support. Not just compatibility with Node.js packages, it was making Node.js first class citizen within Deno.

Then I realized landing page for Deno was redesigned to appeal to Node.js users, and was all about Node.js compatibility.

I opened an issue anyway, talking about why we can't opt-out of this: https://github.com/denoland/deno/issues/35821

And I have learned this change was here to stay. I have learned that Deno has broken the contract/promise to its userbase.

Deno has betrayed its own purpose, its own reason to exist.

I feel like a fool for trusting Deno, and for writing about and supporting it online.

Because I used to keep talking about how it's cleaner, how it doesn't sacrifice everything else for Node.js compatibility. I used to praise how Deno no longer gives CommonJS any attention. I would talk about how Bun just inherits the mess of Node.js, and I'd call it "just a fast Node.js."

I used to say, "I don't want a faster Node.js, I want Deno"

I have even written an article for supporting Deno: Why I Choose Deno Over Bun?

This whole shift feels like it should have been a different project, instead of using Deno's name to just create another Node.js runtime.

Seeing Node.js stuff now repulses me. It feels like a legacy relic that should have died years ago.

I mean, I would have accepted it if it were just "We'll inject Node.js stuff for now for compat, so you can use existing Node.js packages in your Deno applications, but DON'T WORRY we're actively working on a better solution, to GET RID OF it". But now the landing doubles down on node_modules, package.json, CommonJS🤢, tsconfig.json, npm, node.

I really do use Deno everywhere:

All clean, modern...

But now Node.js is creeping in as a first-class citizen, and that doesn't make me happy. Still, there's no alternative runtime. Deno is still the best. So I'll just stick around.

I wish Deno stayed stubborn, and gatekept its vision better. Project is not even 10 years old.

Now I'm just hoping for an alternative to exist. Same reason I switched to Deno will be the same reason why I'm switching away from it.

#deno#javascript#typescript

Written by

Comments

No comments yet. Start the conversation.