I didn’t like the tone of this. Building a company is hard. Building an VC-backed open source product is really, really hard.
I know on HN we don’t always love CEOs, and that’s okay… the ethos of startups has changed over the past 10 years, and tech has shifted away from tinkerers and more toward Wall Street. But Ryan Dahl isn’t doing that; he’s a tinkerer and a builder.
I dunno, I just don’t like this vibe of “what have you done for me recently” in this post, especially given he skipped over the company and is calling out Ryan directly for some reason. Ryan is responsible for many of our careers; Node is the first language I really felt at home with.
Agreed about the article tone. I'm a Deno lifer over here, and will definitely not try to cover up the mistakes they've made along the way or the trouble their deploy product has had over the past few months. Ryan Dahl is obviously polarizing as a personality for many people, always has been since he decided to "hate almost all software" or even before that when he created Node.js.
I don't use Fresh. Serverless is kind of a weird offering that forces developers to do a lot of work to adjust their programs to running all over the place. I even wish Deno had never supported NPM because that ruined their differentiator.
I'm going to keep using Deno and I hope they use this opportunity to refocus on their core product offering so that I can move back to using it from this VPS that is hosting all of my Deno servers right now.
I'm planning on using Deno long term too and have also made some contributions to their standard library. But I completely disagree with you on NPM support. I think that gap early on contributed to bun's success. I almost quit using it because of how difficult it was to use react with Deno. Now it's pretty easy to use react and other npm packages with Deno. Before that, a lot of the most popular packages were just forks of npm packages adapted for Deno, but not as well maintained since less people were using them. Then deduping dependencies was just harder when they were all urls. If your package had a dependency using a different version url, you'd need an import map just to remap them all to using the same version. I'm pretty happy with the current deno.json with jsr and npm compatibility.
Agreed. It is very easy to criticise if you've never been in the hot seat, and if you've never had to make tough decisions like this. As far as I can tell this person has never run a business with actual employees.
If Dahl had posted the typical layoff announcement people would be criticising that too.
True! Love to Ryan from my heart. He came around the corner with Node just in the right moment when ActionScript3 started to die and I seamlessly could continue my career and building things. Still to today.. Things with Deno are very ambitious and hard to establish in this space. The blog post is embarrassing.
Just an historic curiosity: Nero setting Rome on fire is just a legend. At the time, there was a fire every other day due to wooden houses and poor to nonexistent safety. I even heard somewhere that Nero actively tried to help some people escaping from the fire by opening his residence's doors. So the comparison with Nero could still be correct, but for another reason: someone being wrongly blamed.
Is there a good example of an Open Source project that was born out of VC money? Not a failed attempt of hockey-stick growth that open-sources its code upon shutting down commercial operation, but a genuinely healthy FOSS project that started as a VC-funded company, and still is going strong?
In my opinion, FOSS and VC have opposite goals and attitudes: openness, organic growth, staying free vs moat, meteoric growth fueled by marketing, turning a huge profit. I don't see how they could be compatible in the long term, unless the FOSS project is a gateway drug into a proprietary ecosystem.
Agreed. I was skeptical of Deno and I think their package management story was a mistake. But the people were still trying to make JavaScript better and doing so out of genuine love for the language. I especially feel for the employees who put in several years of their life, with the resulting opportunity cost.
Accountability starts and stops at the top. Many CEOs (CxOs) get called out. Personally, I want to write something similar about Bluesky leadership, who have fumbled hard multiple times since peaking, and have now "raised funding" from Bain Capital (private equity).
its so strange to see so many people who will never be handed 5 million dollars to write a vm jumping in front of criticism for one guy that did. sorry but when you become a public figure in this way you should expect to be subjected to a different sort of public scrutiny than, say, a rank and file employee who they pay.
i will begin to care about a CEOs feelings when they put the wellbeing of their employees before their own. not saying that the Deno CEO has done anything on the order of the raw aggression we see from other CEOs in our industry but, as they say, if you cant take the heat stay out of the kitchen.
These things are easy to say but just because someone has the title CEO doesn't mean they're automatically void of human feelings. I'm sure you understand there's a big gap between a Ryan Dahl and a Satya Nadella, despite them sharing the same job title.
This author is being an asshole and punching good people when they're down.
We live in a land of goddamned hyperscalers and megacorps trying to minimize how much they pay us (or get rid of us). Trillion dollar Zeuses that skirt by antitrust regulations for decades on end, crushing any would-be competition. Pilfering from open source while encrusting it in proprietary systems that cost an arm and a leg. Destroying the open web, turning every channel into an advertising shakedown, monitoring us, spying on us, cozying up to the spy apparatus in every country they do business in...
How dare anyone throw rocks at an open source effort?
I don't even like JavaScript, but I applaud what these folks are trying to do.
> We live in a land of goddamned hyperscalers and megacorps trying to minimize how much they pay us (or get rid of us). Trillion dollar Zeuses that skirt by antitrust regulations for decades on end, crushing any would-be competition. Pilfering from open source while encrusting it in proprietary systems that cost an arm and a leg. Destroying the open web, turning every channel into an advertising shakedown, monitoring us, spying on us, cozying up to the spy apparatus in every country they do business in...
> How dare anyone throw rocks at an open source effort?
According to the article, Deno raised over $25 million from venture capital. Unless you're disputing that, it seems a bit disingenuous to criticize corporations but call this an "open source effort"
I'm just annoyed that decimation would be a 10% layoff; standard if even weak-sauce these days. Too many people use "kill one in ten" to mean "kill them all, let God sort it out."
Be careful to check whether you're in a glass house before throwing stones - "layoff" used to mean a temporary release from employment for seasonal labour before it meant a permanent one (https://www.etymonline.com/word/layoff). "Standard" as an adjective also used to mean "being held to a standard of excellence" rather than "normal" or "average". It's ok for words to change meaning over time.
Semantic drift has always happened and will always happen in languages.
Decimation has been commonly used as a synonym for absolute destruction for a long time, being annoyed by it is wasted energy, better to let it go and accept the new meaning.
I’m not familiar with the author but something about this post just seems mean-spirited and petty.
Deno might not succeed as a project, especially with strong competition from Bun as an alternative to Node, but I would say that Deno has been more a force for bettering the ecosystem than not.
Many of those at Deno, including Ryan as well as some of those who have apparently left or been let go have been major contributors to the web development ecosystem. Thank you all for your work — we’re better off for your contributions.
Isn't it reasonable bitterness? He invested a lot of his own life on a promise that didn't pan out, and there's probably a lot of people in that community. Leadership comes with responsibility and consequences.
Content marketed at wannabe startup founders tends to be encouraging and panglossian. It's good to see here what you're signing up for if you succeed with some degree of traction.
Deno basically popularized the idea of a standalone JS runtime that primarily relies on standard Web APIs over "in-house" APIs like Node, although we can say that those standard APIs didn't exist yet when Node was created and for most of its rising period.
I don't think I'd go as far as "copying" but Deno was the first to aggressively push for web standards in server-side runtimes and certainly helped accelerate getting them adopted in that environment.
I work at Cloudflare on Workers (but infrequently work on our runtime) and I've always been pretty impressed with Deno. Their recent-ish support for built-in OpenTelemetry is something we've been wanting to do for a while and have been working on, but Deno was able to build a good implementation of that in that time.
I think it’s fair to say that work on the experimental-strip-types option in Node was inspired/energized by a desire to try to catch up with the DX improvements found in Deno for Typescript-first development that is now the norm.
I always thought Deno was more or less trying to copy the Cloudflare (edge) runtime, but decided incompatibility was a good idea. The ecosystem bifurcation was the mistake, which they came around on, but it was already too late by then.
Bun to Deno is what Zig i to Rust: a much simpler, much easier way to overcome its common predecessor's shortcomings. Not nearly as thoroughly and revolutionarily, but still.
I won't speak for Ryan, but these last 7/8 months have been extra extra hard for me with Mikeal dying, and at least, Ryan was as close to Mikeal as I was, so I'd guess it's been a hard time for him too. Being ambitious and taking on a lot is always... a lot, and he's been at it with Oracle as well. It doesn't get any easier the older you get, to be honest. Cut him some slack eh?
I find the irreverent tone refreshing, personally.
As a founder who built all my prototypes and side projects on Deno for two years, I personally think Deno’s execution was just horrible, and avoidably so. Head-scratchingly, bafflingly bad decision-making.
I was the first engineering hire at Meteor (2012-2016), and we made the mistake of thinking we could reinvent the whole app development ecosystem, and make money at it, so I have the benefit of that experience, but it is not really rocket science or some insight that I wouldn’t expect Ryan Dahl and team to have, in the 2020s.
They were stretched thin with too many projects, which they were always neglecting or rewriting, without a solid business case. They coupled together runtime, framework, linting, docs, hosting, and packaging, with almost all of these components being inferior to the usual tools. The package system became an absolute nightmare.
If the goal was to eventually replace Node and NPM with something where TypeScript was first-class, there was better security, etc, they could have done a classic “embrace and extend.”
Pivoting to node support and even more-so rewriting deploy really hurt momentum on top of all those projects. Coming out swinging with 2.0 and then decreasing regions and rewriting the product that makes you money soon after was certainly a choice.
While they’ve been doing that void 0 made a significantly better linter & formatter that can replace eslint, a perfect embrace and extend. Nodes improved and a lot of annoyances have been ironed out (at a user level at least), each passing day the benefits of deno reducing.
Fresh is close to abandonware despite being a framework that could be the middle ground between htmx and js framework insanity with even 1 man-day a fortnight dedicated to it.
JSR seems like it’s going nowhere and only exists to install @std.
This was the final straw for me, if they bounce back in a few years hell yeah I’m in but I’m begrudgingly back to node for now.
I came to Deno because I needed a break from Node/NPM. I don’t agree with all of Node’s decisions (particularly the ES module debacle), but Node/NPM have improved over the years.
A big problem with JSR was no private packages. All your code has to be open source. But JSR is the only way to get constraint solving in Deno, besides using NPM.
I'm not fully convinced that there's a tenable model for open source devtool companies. Usually there's some handwavy plan to do hosting or code quality that never comes to fruition. Hosting is a hard business and the 800 pound gorilla in the room of AWS is even harder to surmount. Otherwise, I'm not sure what business model you can look towards. Support maybe?
People want open source software, but they do not want the compromises that come with funding it. When people try and fail then you get shitty blog posts like this one. It's sheer entitlement. I think the days of building open source tooling and expecting to be able to commercialise it are now completely gone.
Yeah, I mean Deno’s success is predicated on enterprises moving production apps from NodeJS to Deno. Node is extremely established and entrenched, and migrating the goddamn runtime of a large production server is not usually an easy project. If I have a 5-10 year old Node project, it might work well on Deno, but almost no one has the time to champion a migration when it just doesn’t have that many benefits.
Yes, it comes with batteries included, but a big node project already has setups handling things like testing, linting, formatting, and dependencies. Moving to Deno for any of those might actually be easy, but migrations in the JS ecosystem never end up being easy, so people who could sway the company to change tools don’t have the appetite to tell leadership about migration projects with minimal upside and unknown duration. And under a startup with an unknown future.
NodeJS succeeded at undermining existing server toolchains, because web devs were easily sold on writing JS for their servers, so tons of successful startups built with Node, and when Node got pretty well established, it was easier to adopt for greenfield projects in the enterprise.
Deno is Node, but better. So it’s not giving a whole market of devs access to a tool that is way easier to write for. It’s marginally easier to manage and you could maybe drop some other toolchain dependencies. But again, those toolchain things are automated/hidden away from developers directly… like they don’t care we use eslint, they just care CI catches problems before they hit prod and that the linter throws an error early in the process. It’s already easy for them to run locally. So it’s not like Deno lint changes anything about the dev user experience, it just changes what DevOps/platform teams have to manage.
> If I have a 5-10 year old Node project, it might work well on Deno, but almost no one has the time to champion a migration when it just doesn’t have that many benefits.
We inherited a 10+ year old production system with node and react; it made by a succesful company that made it with vc money in a short time and then got acquired; the system has grown to 100s of 1000s of lines of js (no ts). It runs on a cluster of VPSs on ancient versions of everything.
It took me 3 days to rewrite it to typescript and deno with zero vulns by prompting cerebras glm 4.7 with basically 'port this to modern ts, drizzle and deno' and then opus in claude code to make it work and fix it. It uses playwright mcp to test all flows; it runs production now instead of the old version; no issues so far.
Also, the 3rd day was only on writing REST and Playwright tests on both versions so we could compare if everything works the same.
And essentially one of the reasonings behind it was that people weren't taking support or buying templates etc. from tailwind because they were getting essentially both of these from LLM's.
Open core can work, but you really have to find very strong product market fit on the proprietary side--ideally with features that discriminate between users who are relatively happy to pay and users who are not. (There's a reason "SSO tax" is so common.)
And you really have to believe in open source and have the discipline to keep investing in it, otherwise the temptation is ever present to throw more and more effort and resources into the proprietary parts.
"Become integral enough to the toolchain at OpenAI or Anthropic that they buy you" seems like the new one. Normally I dislike startups built with the intention to be acquihired instead of being a sustainable business, but with open source devtools maybe that's not the worst thing. I'm pretty confident that neither bun nor uv will stop existing anytime soon, and the makers got paydays out of it.
That is incredibly short sighted though as OpenAI or Anthropic themselves are struggling to make money themselves and are on incredibly shaky foundations themselves.
> I'm pretty confident that neither bun nor uv will stop existing anytime soon, and the makers got paydays out of it.
If OpenAI stocks let's say IPO and then fall 70% (because hey a business is well, a business at the end of the day), do you suppose they will still keep the folks at uv?
Sure, its good for the makers who get paydays but they are quite far and few and this doesn't feel like a strategy much to me to rely on.
If Open source needs to thrive, we might need a better strategy long term perhaps.
I could get behind some of this hate directed to Vercel’s CEO or even Cursor’s, but Deno is sort of like a breath of fresh air around the myriad of parasitic tech out there. Still, why so much hate? Who hurt you? What’s going on
I have always wanted Deno to succeed. But it just seems to be too full of contradictions.
Their initial baffling stance about package.json was the first bad sign. I almost can't imagine the hubris of expecting devs to abandon such a large eco-system of packages by not striving for 100% support out of the gate. Of course they had to relent, but honestly the damage was done. They chose ideology over practicality and that doesn't bode well with devs.
I think they saw Rust and thought that devs were willing to abandon C++ for a language that was more modern and secure. By touting these same benefits perhaps they were hoping for similar sentiment from the JavaScript community.
Deno has some really good ideas (e.g. the library KV interface). I agree with a lot (but not all) of Dahl's vision. But the whole thing is just a bit too quirky for me to invest anything critical into an ecosystem that is one funding round away from disappearing completely.
Before yt-dlp started recommending Deno as its JavaScript runtime, I had no idea it even existed.
Since then, I know that it's there and that it's more secure than Node in some applications, and I can see using it being a good option. But it sounds like it might be too little too late? Going by this article, at least.
Same, I remember googling Deno and going "Oh this new thing looks neat" - and then I haven't heard/seen/read a thing about it until this post. But I keep hearing about Bun and of course nodejs.
Feel bad for them, they obviously just didn't capture a real userbase. I expect if yt-dlp hadn't started to require it they'd have just silently flamed out.
Trying to pull people away from reference tooling requires lots of investment and historical has always failed.
Eventually the reference implementation gets good enough, and that is it.
In JavaScript case, the first error was to ignore compatibility with native addons and existing nodejs modules.
The second was not providing a business value why porting, with the pain of compatibility, one because "it feels better" doesn't release budgets in most companies.
Truth of the matter is Ryan Dahl is a suboptimal CEO. Being able to build good open source software does not have a strong correlation with being able to build a successful business.
> What is Deno's business model? How do you build business around a JS runtime?
Everything else. Seems everyone and their mother are building "platforms", so they can properly lock you in, look at Vercel for example, to get some inspiration where the rest is probably at least aiming.
Not sure why people keep falling for it though, guess it's easy enough to get started that people don't really want to understand deeper, if you can pay someone $XXX/month to not have to think about it, many people tend to go that route, especially if VC-infested.
Why this person is so mean to someone who gifted Deno and Node to the JS ecosystem? It's not fair. They are trying to build a company on top of open source.
Because the model of private capital using open source to make profits is a failure state that we need to get away from. There's no reason why the government can't sponsor open source projects, something tells me the vast majority of open source devs wouldn't mind a system where grants can be reward to projects that the public finds valuable.
That would be much more sustainable than VC rat fucking the commons to make a buck while suckering in devs that were once good community stewards into dry husks that are only formed to generate profit.
Ok but those government grants don't really exist today and what you're arguing for is zero sustainability for open source projects. This is certain to lead to the death of open source - there's not even the reputational pay-off any more if the only real consumer is AI.
Ideally, the corporations that get immeasurable benefits from open source are a better source for the money. There are multiple ways this can play out, direct payments, putting employees on the project, or contributing their own projects to benefit others.
My choice ranking is Deno Deploy > Fly.io > AWS for new projects, depending on complexity and needs. They also have a new Deno sandbox feature which is great for running untrusted code, AI agents, etc.
The real question is can they adapt to customer feedback fast enough, focus priorities, adequately market & grow, make it profitable, etc. Bumpy road but definitely not doomed.
> I wanted to know if the hundreds of hours I’d spent mastering Deno was a sunk cost
Hundreds of hours? I'm sorry but if you truly needed that much time to find your way around an incredibly straightforward runtime that's on you. Skills for Deno, Node.js, Bun, Cloudflare Workers, browser-based JS and all the rest are like 99% transferable. If Deno doesn't work for you then use something else. It would probably be simpler to switch than writing all these aggressive blog posts.
The one that wasted me hundreds of hours was TypeScript on Node with ESM. The most common, familiar, boring stuff which everyone is intimately familiar with, right?
Got shanghaied into TS-land right around Node 16 when they and TypeScript imposed mutually incompatible handling of ESM modules (that extensions mess).
Not only the type checker fail to understand of the kind of JS I had been shipping (and testing, and documenting, and communicating) up to that point; both the immediate toolchain, and people's whole pattern language around the toolset, were entirely broken as soon as you were doing anything different from the kind of React.js that later became Vercel.
Not only I was able to do 10% of what I was able to do previously conditional on jury-rigging the billion dollar stack to work, I also had a little cadre of happy campers on my ass blatantly gaslighting me that it is all, in fact, working; and suggesting the most inane "solutions" once I'd bent over backwards to demonstrate how there is, indeed, a problem of absurd dimensions, straight outta nowhere.
Later I met more such people. Same people who would insist JS runtimes are not trivially interchangeable, having committed to not examine what they're doing beyond a meager level of abstraction.
I see it as a rather perverse form of "working to spec" (have had to pick up surreal amounts of slack after such characters), but with incentives being what they are you get a cutthroat environment (such as the author of this blog post imagines to be living in), and from a cutthroat environment you get the LLMs eating everyone's breakfasts -- because no matter how yucky a word "synergy" is, synergizin' is that "fake open source" is designed to preclude, throughout the JS ecosystem.
"Fake open source" is how I call MIT/BSD licensed devtools and frameworks from hyperscalers that don't need to do an opencore rugpull because they're a piece of a long-term ecosystem strategy. They benefit from immense decade-long marketing and astroturfing efforts, lending them "default status" in the mindshare; and ultimately serve to carry the vendor's preferred version of reality into unrelated downstream projects. Which is why they often spectacularly fail to respond to the community's needs: they are built to preclude, past a certain point, the empowerment of implementors as a community.
Mastering some of that shit, now there was a sunk cost for me, but in modern JS land all these churning agglomerations play the role of "pay to play" gatekeepers. Considering what that's made the playing field be like, I'm happy pivoting to more niche technology just to keep away from said churning agglomerations.
Deno always felt like something built for the right reasons but at the wrong time. Good tech losing isn't new, it's just always a bit sad when it happens slowly.
No, they made many wrong architecture decisions that made it fringe project rather than mainstream. You could glimpse on how things could played out by looking into bun.js adoption.
Come on man. This stuff is hard. I was the guy on the other side writing these BS hit pieces. Then I raised funding and took a shot. It's so hard. It's like pushing a boulder up a mountain except you're expected to build a rocket ship on the way and blast off. It's not the analogy of falling off a cliff and building the rocket on the way down. Sure death is on the horizon and you can manage it, but the pressures are immense and so much of it you can't game. Initial hype is intoxicating and you might even have something of value but real business takes time. It's a boulder up a hill and you need to bring a lot of good people along the way to help you. OpenAI was 7 years of nothing working then boom. I hit 7 years and fatigue set in, but also life, I wasn't that same guy who started at 30. Give these people a break. Ryan has done great things with Node and Deno. Give him a break. Don't stomp on the guy. Give him some kudos. Help him FFS. Don't trash him. Shame honestly. Ryan keep up the great work. It's hard. Deno team, it's the effort and intention that counts. Good work. Regroup, try again.
> Despite the initial hype, Rome tools, Deno & Bun will be quasi abandoned as the ecosystem outpaces their release cycle and the benefits don’t merit the headache of migration.
I defaulted to Biome for all greenfield projects a year ago, and at this point you would have to drag me kicking and screaming back to ESLint and Prettier. I also defaulted to Bun and still think Bun is leagues better than Node.js but I now have my doubts about its future after seeing the OpenCode devs consciously minimize their dependency on Bun for strategic reasons.
For me Bun’s dramatic entrance and the a lack of any Deno response that reached my attention effectively evaporated any interest I would have in switching my runtime. I’m already set with my tooling and hosting.
It's easy to be critical in hindsight but honestly when Deno first came out it was pretty incredible. Even the whole idea about URL based imports makes lots of sense but it was incompatible with any of the existing toolchains that were wildly popular. At the same time, companies like Vercel launched a new kind of framework and leveraged that into a hosting business with I would say great success. They captured developers where they were at _today_, including acknowledging the demographics, the tools, the culture, etc.
Compatibility aside, Url-based imports are a bad idea as soon as you go beyond writing your entire program in a single source file and want to keep imported versions of common dependencies in sync. It's nice for scripts, but a deno.json file is better.
The idea of Deno is brilliant... but they should have either focused on Node compat from the first day (like Bun did) or just keep doing their own thing with built-in APIs to solve the most common needs (db drivers, router, s3, etc).
They had the right ideas but it's like investors panicked midway and demanded a change in direction.
Setting aside the fact that the S3 built-in API is now neglected, I'm skeptical about the runtime providing such APIs.
As Ruby on Rails does well, these are issues that should be handled by the framework, not the runtime.
While these APIs may seem convenient at first glance, breaking changes to APIs integrated into the runtime are difficult. It's not impossible, but it would likely cause dissatisfaction among many users. Furthermore, constantly keeping up with updates to third-party products would result in immense maintenance costs.
Users should also reconsider the extremely high backward compatibility that JavaScript has maintained before jumping on such hype.
> I'm skeptical about the runtime providing such APIs. As Ruby on Rails does well, these are issues that should be handled by the framework, not the runtime.
Well there's no Rails for JS and in case you're not aware there's an absolute security disaster going on with NPM.
For a typical Node project dozens if not hundreds of dependencies need to be used. Eg Platformatic needs 258 dependencies of which 97 depend on a single maintainer.
You only need a single dependency to become compromised. And as anyone who has maintained a Node app knows, with all those dependencies you're like 5 mins away from an incompat issue.
Maybe another solution would be for the runtime to provide like a versioned standard suite of deps that matches the runtime version. So these are secure and fully compatible with the runtime and with each other.
This is an absolutely horrible article. From totally over the top comparisons to an absolute lack of substance, this is no more than a collection of ‘haha me smart’ garbage mixed with personal attacks.
i did not interpret this article as hate. this is very sad news and OP is being honest about the state of things and failings along the way. they even end with a plea that things turn around.
Like other commenters the tone of this post threw me off but I was really impressed by the design of the website. Congrats for building it, it shows your hard work and taste!
I had the feeling something wasn't going well as soon as the AI pivoting. My guess was that for Ryan being acquired like Bun was might have been the only road available
Tried moving a monorepo off Node once. The runtime swap was the easy part. What killed us was the 50-odd package.json files with node-specific stuff baked in. Conditional exports, postinstall scripts, engine constraints, pnpm overrides. Bun got this right by just eating all of that as-is. Deno asking you to throw out package.json on day one was basically asking you to rewrite your entire build config before you even got to try it.
Anthropic, the company that actually has much worse revenues and likely mislead the public? [1] That Anthropic? The same Anthropic that has taken billions of gulf state money where the countries are on the verge of divesting itself from the US or fear of potentially losing their refineries + oil fields for at least 50 years? That same Anthropic?
This house of cards is about to collapse and lot of "smart" devs are going to act shocked when the water recedes.
The same thing always happens: companies "adopt" open source then, unless you have monopoly, money problems eventually appear and leadership sees this lovely team with "bloated budget" in the bylines.
It also means the Bun team is no longer in control. Acquisition has a similar time frame and we've seen numerous projects chart a similar path to irrelevance.
I think the only real perk of Bun/Deno over Node is that they can run .ts directly and have better ES compatibility. I don’t need Deno’s permission system, but it’s on by default, so I went with Bun.
I have migrated away from NextJS for similar reasons of being too special case in the ecosystem. Next in particular is designed for the way Vercel runs applications and comes with extra pain if you don't run on edge. (see middleware as an example, I think they renamed it since I left)
Bun is pragmatic, extremely fast and self-contained. Ryan Dahl is a hero of mine but Deno could be neither of those, which is a shame, but to answer your question, no, not much of these can be said for Bun.
I honestly can't think of a single practical scenario where I'd pick Deno over Node + npm today. Bun, on the other hand, has pretty much claimed the performance crown for itself at this point.
> The harsh truth is that Deno’s offerings have failed to capture developers’ attention. I can’t pretend to know why — I was a fanboy myself — but far too few devs care about Deno.
I never heard of Deno until today. So perhaps this was a marketing failure.
Because Bun's runtime is a bug ridden mess. Say what you want about Deno but people that chose Bun's runtime over Deno's are either not really using Bun's runtime (just the package manager part) or are not running in production at scale.
"Decimation" is to reduce by a tenth (and typically those being reduced would be forced to decide who to lose), so a poor comparison to "losing half your staff". If you're going to mention its Roman origins, then these details matter.
> But I need to have everything in a mono repo for agents to properly work on in.
Why was this a problem with Deno? Up until recently you had to use package.json and npm/pnpm for it to work, but even then it was better than Bun or Node since you could use import map to avoid compiling packages for testing etc (Node and Bun's type stripping doesn't work across local monorepo dependencies, and tsx produces mangled source maps making debugging a hassle). Now Deno has built-in workspace/monorepo support in deno.json.
> But I need to have everything in a mono repo for agents to properly work on in.
Why is that? Seems like an agent framework limitation, not a reasonable requirement in general. (I do not have this limitation, but I also have a custom agent stack)
I've found myself occasionally wishing I had a monorepo purely for Claude Code for web (Anthropic's hosted version of Claude Code), since it can currently only work with one private repository at a time.
On my own machine I have a dev/ folder full of checkouts of other repos, and I'll often run Claude Code or Codex CLI in that top level folder and tell it to make changes to multiple projects at once. That works just fine.
In a poly repo setup, agents are less effective having to infer changes across repo boundaries using specs rather than code as context. Changes that impact multiple repos are also much messier to wrangle.
Who cares? Why does the world need so many fringe tools/runtimes? So much fragmentation. Why does every project have to be a long-term success? Put some stuff out if its misery. Don't waste the time of the already few open-source contributors who pour hours into something for no good reason.
I'd argue that the mainstream, lowest-common-denominator tools are the ones which waste people's time. (Especially when they're backed by an incumbent. Deno, on the other hand, clicked immediately.)
I didn’t like the tone of this. Building a company is hard. Building an VC-backed open source product is really, really hard.
I know on HN we don’t always love CEOs, and that’s okay… the ethos of startups has changed over the past 10 years, and tech has shifted away from tinkerers and more toward Wall Street. But Ryan Dahl isn’t doing that; he’s a tinkerer and a builder.
I dunno, I just don’t like this vibe of “what have you done for me recently” in this post, especially given he skipped over the company and is calling out Ryan directly for some reason. Ryan is responsible for many of our careers; Node is the first language I really felt at home with.
Comparing him to Nero is gross.
Agreed about the article tone. I'm a Deno lifer over here, and will definitely not try to cover up the mistakes they've made along the way or the trouble their deploy product has had over the past few months. Ryan Dahl is obviously polarizing as a personality for many people, always has been since he decided to "hate almost all software" or even before that when he created Node.js.
I don't use Fresh. Serverless is kind of a weird offering that forces developers to do a lot of work to adjust their programs to running all over the place. I even wish Deno had never supported NPM because that ruined their differentiator.
I'm going to keep using Deno and I hope they use this opportunity to refocus on their core product offering so that I can move back to using it from this VPS that is hosting all of my Deno servers right now.
I'm planning on using Deno long term too and have also made some contributions to their standard library. But I completely disagree with you on NPM support. I think that gap early on contributed to bun's success. I almost quit using it because of how difficult it was to use react with Deno. Now it's pretty easy to use react and other npm packages with Deno. Before that, a lot of the most popular packages were just forks of npm packages adapted for Deno, but not as well maintained since less people were using them. Then deduping dependencies was just harder when they were all urls. If your package had a dependency using a different version url, you'd need an import map just to remap them all to using the same version. I'm pretty happy with the current deno.json with jsr and npm compatibility.
8 replies →
Holy shit, a wild Everett Bogue sighting. I read your blog way back. Hope you’re doing well!
1 reply →
Agreed. It is very easy to criticise if you've never been in the hot seat, and if you've never had to make tough decisions like this. As far as I can tell this person has never run a business with actual employees.
If Dahl had posted the typical layoff announcement people would be criticising that too.
Yeah, the tone felt off to me too. It felt a bit too much like a celebration of "look how right I was" concerning their earlier posts.
True! Love to Ryan from my heart. He came around the corner with Node just in the right moment when ActionScript3 started to die and I seamlessly could continue my career and building things. Still to today.. Things with Deno are very ambitious and hard to establish in this space. The blog post is embarrassing.
JavaScript on the server goes all the way back to Netscape days with LiveWire.
2 replies →
> Comparing him to Nero is gross.
Just an historic curiosity: Nero setting Rome on fire is just a legend. At the time, there was a fire every other day due to wooden houses and poor to nonexistent safety. I even heard somewhere that Nero actively tried to help some people escaping from the fire by opening his residence's doors. So the comparison with Nero could still be correct, but for another reason: someone being wrongly blamed.
Is there a good example of an Open Source project that was born out of VC money? Not a failed attempt of hockey-stick growth that open-sources its code upon shutting down commercial operation, but a genuinely healthy FOSS project that started as a VC-funded company, and still is going strong?
In my opinion, FOSS and VC have opposite goals and attitudes: openness, organic growth, staying free vs moat, meteoric growth fueled by marketing, turning a huge profit. I don't see how they could be compatible in the long term, unless the FOSS project is a gateway drug into a proprietary ecosystem.
Agreed. I was skeptical of Deno and I think their package management story was a mistake. But the people were still trying to make JavaScript better and doing so out of genuine love for the language. I especially feel for the employees who put in several years of their life, with the resulting opportunity cost.
> calling out Ryan directly for some reason
Accountability starts and stops at the top. Many CEOs (CxOs) get called out. Personally, I want to write something similar about Bluesky leadership, who have fumbled hard multiple times since peaking, and have now "raised funding" from Bain Capital (private equity).
its so strange to see so many people who will never be handed 5 million dollars to write a vm jumping in front of criticism for one guy that did. sorry but when you become a public figure in this way you should expect to be subjected to a different sort of public scrutiny than, say, a rank and file employee who they pay.
i will begin to care about a CEOs feelings when they put the wellbeing of their employees before their own. not saying that the Deno CEO has done anything on the order of the raw aggression we see from other CEOs in our industry but, as they say, if you cant take the heat stay out of the kitchen.
These things are easy to say but just because someone has the title CEO doesn't mean they're automatically void of human feelings. I'm sure you understand there's a big gap between a Ryan Dahl and a Satya Nadella, despite them sharing the same job title.
8 replies →
Some businesses don't need to be VC backed though.
That is the problem.
Agreed. But building something new takes capital, and it’s really hard to find it for an open source tool.
FWIW, it worked for Bun (at least for the VCs and employees), so there is a model there that works.
Deno started as a clean slate, no npm. Three years in, they decided to scrap it because they thought they wouldn't get enough users the promised way.
So what does Deno offer now, exactly? The free parts just sound like a pretext to pull you into some paid solutions.
It can be hard to run a company, even harder to make a buck, but at the same time we can still be allowed to say how much they suck at it.
Yeah, on top of that bringing in social media politics into it is weird, makes it hard to take this as pure/useful criticism
Fuck this blog post.
I'll say it.
This author is being an asshole and punching good people when they're down.
We live in a land of goddamned hyperscalers and megacorps trying to minimize how much they pay us (or get rid of us). Trillion dollar Zeuses that skirt by antitrust regulations for decades on end, crushing any would-be competition. Pilfering from open source while encrusting it in proprietary systems that cost an arm and a leg. Destroying the open web, turning every channel into an advertising shakedown, monitoring us, spying on us, cozying up to the spy apparatus in every country they do business in...
How dare anyone throw rocks at an open source effort?
I don't even like JavaScript, but I applaud what these folks are trying to do.
At least they're trying.
Can't even get a decent round of applause.
Yeah, I was being nice, but this writer upset me. He sees Ryan Dahl as Nero, but he’s a lot closer to Robin Hood.
2 replies →
> We live in a land of goddamned hyperscalers and megacorps trying to minimize how much they pay us (or get rid of us). Trillion dollar Zeuses that skirt by antitrust regulations for decades on end, crushing any would-be competition. Pilfering from open source while encrusting it in proprietary systems that cost an arm and a leg. Destroying the open web, turning every channel into an advertising shakedown, monitoring us, spying on us, cozying up to the spy apparatus in every country they do business in...
> How dare anyone throw rocks at an open source effort?
According to the article, Deno raised over $25 million from venture capital. Unless you're disputing that, it seems a bit disingenuous to criticize corporations but call this an "open source effort"
12 replies →
I'm just annoyed that decimation would be a 10% layoff; standard if even weak-sauce these days. Too many people use "kill one in ten" to mean "kill them all, let God sort it out."
Be careful to check whether you're in a glass house before throwing stones - "layoff" used to mean a temporary release from employment for seasonal labour before it meant a permanent one (https://www.etymonline.com/word/layoff). "Standard" as an adjective also used to mean "being held to a standard of excellence" rather than "normal" or "average". It's ok for words to change meaning over time.
Semantic drift has always happened and will always happen in languages.
Decimation has been commonly used as a synonym for absolute destruction for a long time, being annoyed by it is wasted energy, better to let it go and accept the new meaning.
at a practical level that word hasn't meant "one in ten" for like, decades. probably just need to get used to it.
Etymology is not usage though. I get where you're coming from, but fighting vernacular is all but useless outside of academia.
[dead]
[flagged]
I’m confused. What about the footer are you referring to?
I’m not familiar with the author but something about this post just seems mean-spirited and petty.
Deno might not succeed as a project, especially with strong competition from Bun as an alternative to Node, but I would say that Deno has been more a force for bettering the ecosystem than not.
Many of those at Deno, including Ryan as well as some of those who have apparently left or been let go have been major contributors to the web development ecosystem. Thank you all for your work — we’re better off for your contributions.
Isn't it reasonable bitterness? He invested a lot of his own life on a promise that didn't pan out, and there's probably a lot of people in that community. Leadership comes with responsibility and consequences.
Content marketed at wannabe startup founders tends to be encouraging and panglossian. It's good to see here what you're signing up for if you succeed with some degree of traction.
> He invested a lot of his own life on a promise that didn't pan out
So did the people who built Deno
> He invested a lot of his own life on a promise that didn't pan out
Whose fault is that?
1 reply →
Has any competitor copied anything from Deno?
Deno basically popularized the idea of a standalone JS runtime that primarily relies on standard Web APIs over "in-house" APIs like Node, although we can say that those standard APIs didn't exist yet when Node was created and for most of its rising period.
1 reply →
I don't think I'd go as far as "copying" but Deno was the first to aggressively push for web standards in server-side runtimes and certainly helped accelerate getting them adopted in that environment.
I work at Cloudflare on Workers (but infrequently work on our runtime) and I've always been pretty impressed with Deno. Their recent-ish support for built-in OpenTelemetry is something we've been wanting to do for a while and have been working on, but Deno was able to build a good implementation of that in that time.
2 replies →
I think it’s fair to say that work on the experimental-strip-types option in Node was inspired/energized by a desire to try to catch up with the DX improvements found in Deno for Typescript-first development that is now the norm.
I always thought Deno was more or less trying to copy the Cloudflare (edge) runtime, but decided incompatibility was a good idea. The ecosystem bifurcation was the mistake, which they came around on, but it was already too late by then.
Bun, competition?
Zig is yet to be 1.0, and who knows what anthropic will make out of it.
They can even pivot yet again back into node, as most acquisitions go.
In the mindshare, certainly.
Bun to Deno is what Zig i to Rust: a much simpler, much easier way to overcome its common predecessor's shortcomings. Not nearly as thoroughly and revolutionarily, but still.
1 reply →
You know any services as big as X or Claude Code built with Deno?
AFAIK the biggest users of Deno are using their subhosting service (Netlify, Slack, etc) to allow third parties to execute TS code.
2 replies →
I won't speak for Ryan, but these last 7/8 months have been extra extra hard for me with Mikeal dying, and at least, Ryan was as close to Mikeal as I was, so I'd guess it's been a hard time for him too. Being ambitious and taking on a lot is always... a lot, and he's been at it with Oracle as well. It doesn't get any easier the older you get, to be honest. Cut him some slack eh?
> I won't speak for Ryan... Mikeal dying
For those out of loop: https://github.com/mikeal/cancer-diaries
Ryan tweeted he was "crushed" when Mikael died: https://x.com/rough__sea/status/1932667147605717130
Oracle looks to me a distraction, that isn't what is going to bring users into Deno.
For the rest, I can't comment on, all the best.
Thanks. Sure, it may have indeed become a distraction, maybe it always was... I don't know. Never the less, he is finishing what he started, and that is admirable. https://dev.ua/en/news/tvorets-nodejs-zbyraie-1758280906 - https://www.devclass.com/development/2022/09/05/nodejs-creat...
RIP Mikeal. I'm sorry for your loss.
Thanks for saying so. btw your hn plugin is really fucking good! Thanks. :)
4 replies →
I find the irreverent tone refreshing, personally.
As a founder who built all my prototypes and side projects on Deno for two years, I personally think Deno’s execution was just horrible, and avoidably so. Head-scratchingly, bafflingly bad decision-making.
I was the first engineering hire at Meteor (2012-2016), and we made the mistake of thinking we could reinvent the whole app development ecosystem, and make money at it, so I have the benefit of that experience, but it is not really rocket science or some insight that I wouldn’t expect Ryan Dahl and team to have, in the 2020s.
They were stretched thin with too many projects, which they were always neglecting or rewriting, without a solid business case. They coupled together runtime, framework, linting, docs, hosting, and packaging, with almost all of these components being inferior to the usual tools. The package system became an absolute nightmare.
If the goal was to eventually replace Node and NPM with something where TypeScript was first-class, there was better security, etc, they could have done a classic “embrace and extend.”
Pivoting to node support and even more-so rewriting deploy really hurt momentum on top of all those projects. Coming out swinging with 2.0 and then decreasing regions and rewriting the product that makes you money soon after was certainly a choice.
While they’ve been doing that void 0 made a significantly better linter & formatter that can replace eslint, a perfect embrace and extend. Nodes improved and a lot of annoyances have been ironed out (at a user level at least), each passing day the benefits of deno reducing.
Fresh is close to abandonware despite being a framework that could be the middle ground between htmx and js framework insanity with even 1 man-day a fortnight dedicated to it.
JSR seems like it’s going nowhere and only exists to install @std.
This was the final straw for me, if they bounce back in a few years hell yeah I’m in but I’m begrudgingly back to node for now.
I agree with all this.
I came to Deno because I needed a break from Node/NPM. I don’t agree with all of Node’s decisions (particularly the ES module debacle), but Node/NPM have improved over the years.
A big problem with JSR was no private packages. All your code has to be open source. But JSR is the only way to get constraint solving in Deno, besides using NPM.
I'm not fully convinced that there's a tenable model for open source devtool companies. Usually there's some handwavy plan to do hosting or code quality that never comes to fruition. Hosting is a hard business and the 800 pound gorilla in the room of AWS is even harder to surmount. Otherwise, I'm not sure what business model you can look towards. Support maybe?
People want open source software, but they do not want the compromises that come with funding it. When people try and fail then you get shitty blog posts like this one. It's sheer entitlement. I think the days of building open source tooling and expecting to be able to commercialise it are now completely gone.
Yeah, I mean Deno’s success is predicated on enterprises moving production apps from NodeJS to Deno. Node is extremely established and entrenched, and migrating the goddamn runtime of a large production server is not usually an easy project. If I have a 5-10 year old Node project, it might work well on Deno, but almost no one has the time to champion a migration when it just doesn’t have that many benefits.
Yes, it comes with batteries included, but a big node project already has setups handling things like testing, linting, formatting, and dependencies. Moving to Deno for any of those might actually be easy, but migrations in the JS ecosystem never end up being easy, so people who could sway the company to change tools don’t have the appetite to tell leadership about migration projects with minimal upside and unknown duration. And under a startup with an unknown future.
NodeJS succeeded at undermining existing server toolchains, because web devs were easily sold on writing JS for their servers, so tons of successful startups built with Node, and when Node got pretty well established, it was easier to adopt for greenfield projects in the enterprise.
Deno is Node, but better. So it’s not giving a whole market of devs access to a tool that is way easier to write for. It’s marginally easier to manage and you could maybe drop some other toolchain dependencies. But again, those toolchain things are automated/hidden away from developers directly… like they don’t care we use eslint, they just care CI catches problems before they hit prod and that the linter throws an error early in the process. It’s already easy for them to run locally. So it’s not like Deno lint changes anything about the dev user experience, it just changes what DevOps/platform teams have to manage.
> If I have a 5-10 year old Node project, it might work well on Deno, but almost no one has the time to champion a migration when it just doesn’t have that many benefits.
We inherited a 10+ year old production system with node and react; it made by a succesful company that made it with vc money in a short time and then got acquired; the system has grown to 100s of 1000s of lines of js (no ts). It runs on a cluster of VPSs on ancient versions of everything.
It took me 3 days to rewrite it to typescript and deno with zero vulns by prompting cerebras glm 4.7 with basically 'port this to modern ts, drizzle and deno' and then opus in claude code to make it work and fix it. It uses playwright mcp to test all flows; it runs production now instead of the old version; no issues so far.
Also, the 3rd day was only on writing REST and Playwright tests on both versions so we could compare if everything works the same.
> Support maybe?
LLMs seem likely to kill or at least vastly weaken the support model.
Tangentially related: https://news.ycombinator.com/item?id=46527950 (Creators of Tailwind laid off 75% of their engineering team)
And essentially one of the reasonings behind it was that people weren't taking support or buying templates etc. from tailwind because they were getting essentially both of these from LLM's.
Open core can work, but you really have to find very strong product market fit on the proprietary side--ideally with features that discriminate between users who are relatively happy to pay and users who are not. (There's a reason "SSO tax" is so common.)
And you really have to believe in open source and have the discipline to keep investing in it, otherwise the temptation is ever present to throw more and more effort and resources into the proprietary parts.
"Become integral enough to the toolchain at OpenAI or Anthropic that they buy you" seems like the new one. Normally I dislike startups built with the intention to be acquihired instead of being a sustainable business, but with open source devtools maybe that's not the worst thing. I'm pretty confident that neither bun nor uv will stop existing anytime soon, and the makers got paydays out of it.
That is incredibly short sighted though as OpenAI or Anthropic themselves are struggling to make money themselves and are on incredibly shaky foundations themselves.
> I'm pretty confident that neither bun nor uv will stop existing anytime soon, and the makers got paydays out of it.
If OpenAI stocks let's say IPO and then fall 70% (because hey a business is well, a business at the end of the day), do you suppose they will still keep the folks at uv?
Sure, its good for the makers who get paydays but they are quite far and few and this doesn't feel like a strategy much to me to rely on.
If Open source needs to thrive, we might need a better strategy long term perhaps.
I could get behind some of this hate directed to Vercel’s CEO or even Cursor’s, but Deno is sort of like a breath of fresh air around the myriad of parasitic tech out there. Still, why so much hate? Who hurt you? What’s going on
The article is mostly a rant about Deno not making a public statement about layoffs. This links to the individual statements about leaving: https://www.reddit.com/r/Deno/comments/1rwjaeb/whats_going_o...
I have always wanted Deno to succeed. But it just seems to be too full of contradictions.
Their initial baffling stance about package.json was the first bad sign. I almost can't imagine the hubris of expecting devs to abandon such a large eco-system of packages by not striving for 100% support out of the gate. Of course they had to relent, but honestly the damage was done. They chose ideology over practicality and that doesn't bode well with devs.
I think they saw Rust and thought that devs were willing to abandon C++ for a language that was more modern and secure. By touting these same benefits perhaps they were hoping for similar sentiment from the JavaScript community.
Deno has some really good ideas (e.g. the library KV interface). I agree with a lot (but not all) of Dahl's vision. But the whole thing is just a bit too quirky for me to invest anything critical into an ecosystem that is one funding round away from disappearing completely.
Before yt-dlp started recommending Deno as its JavaScript runtime, I had no idea it even existed.
Since then, I know that it's there and that it's more secure than Node in some applications, and I can see using it being a good option. But it sounds like it might be too little too late? Going by this article, at least.
Same, I remember googling Deno and going "Oh this new thing looks neat" - and then I haven't heard/seen/read a thing about it until this post. But I keep hearing about Bun and of course nodejs.
Feel bad for them, they obviously just didn't capture a real userbase. I expect if yt-dlp hadn't started to require it they'd have just silently flamed out.
yt-dlp was definitely the reason for the increased adoption mentioned in the post.
I wonder if the layoffs have a deeper connection to yt-dlp.
Trying to pull people away from reference tooling requires lots of investment and historical has always failed.
Eventually the reference implementation gets good enough, and that is it.
In JavaScript case, the first error was to ignore compatibility with native addons and existing nodejs modules.
The second was not providing a business value why porting, with the pain of compatibility, one because "it feels better" doesn't release budgets in most companies.
In this case I think the reference implementation was created by one of the deno founders.
It was, but he went too far with the second attempt.
Also not everyone gets it right, only because they got lucky once, history is full of one hit wonders.
1 reply →
Truth of the matter is Ryan Dahl is a suboptimal CEO. Being able to build good open source software does not have a strong correlation with being able to build a successful business.
What is Deno's business model? How do you build business around a JS runtime? What to they pitch to the early investors even?
> What is Deno's business model? How do you build business around a JS runtime?
Everything else. Seems everyone and their mother are building "platforms", so they can properly lock you in, look at Vercel for example, to get some inspiration where the rest is probably at least aiming.
Not sure why people keep falling for it though, guess it's easy enough to get started that people don't really want to understand deeper, if you can pay someone $XXX/month to not have to think about it, many people tend to go that route, especially if VC-infested.
The problem is that outside big corporations, devs nowadays aren't willing to pay for development tooling, although we surely like to be paid.
Thus platforms and SaaS products, seem to be the only way to make sustainable open source products.
3 replies →
Hosting (Deno Deploy), https://deno.com/deploy/pricing
Wait until a big company buy them. That seems not to happen.
Is Deno a classic second system syndrome project?
Seems so. All the breaks from the first system in the name of “we’re doing it right this time” probably killed the momentum.
https://en.wikipedia.org/wiki/Second-system_effect
Even the best and brightest of us are still human.
Why this person is so mean to someone who gifted Deno and Node to the JS ecosystem? It's not fair. They are trying to build a company on top of open source.
Because the model of private capital using open source to make profits is a failure state that we need to get away from. There's no reason why the government can't sponsor open source projects, something tells me the vast majority of open source devs wouldn't mind a system where grants can be reward to projects that the public finds valuable.
That would be much more sustainable than VC rat fucking the commons to make a buck while suckering in devs that were once good community stewards into dry husks that are only formed to generate profit.
Ok but those government grants don't really exist today and what you're arguing for is zero sustainability for open source projects. This is certain to lead to the death of open source - there's not even the reputational pay-off any more if the only real consumer is AI.
3 replies →
Ideally, the corporations that get immeasurable benefits from open source are a better source for the money. There are multiple ways this can play out, direct payments, putting employees on the project, or contributing their own projects to benefit others.
Deno Deploy is actually an excellent product.
My choice ranking is Deno Deploy > Fly.io > AWS for new projects, depending on complexity and needs. They also have a new Deno sandbox feature which is great for running untrusted code, AI agents, etc.
The real question is can they adapt to customer feedback fast enough, focus priorities, adequately market & grow, make it profitable, etc. Bumpy road but definitely not doomed.
[0] https://deno.com/deploy
I was surprised by the tone about deploy in the blog post too. I think it's excellent. I use it for anything new that uses TypeScript.
> I wanted to know if the hundreds of hours I’d spent mastering Deno was a sunk cost
Hundreds of hours? I'm sorry but if you truly needed that much time to find your way around an incredibly straightforward runtime that's on you. Skills for Deno, Node.js, Bun, Cloudflare Workers, browser-based JS and all the rest are like 99% transferable. If Deno doesn't work for you then use something else. It would probably be simpler to switch than writing all these aggressive blog posts.
The one that wasted me hundreds of hours was TypeScript on Node with ESM. The most common, familiar, boring stuff which everyone is intimately familiar with, right?
Got shanghaied into TS-land right around Node 16 when they and TypeScript imposed mutually incompatible handling of ESM modules (that extensions mess).
Not only the type checker fail to understand of the kind of JS I had been shipping (and testing, and documenting, and communicating) up to that point; both the immediate toolchain, and people's whole pattern language around the toolset, were entirely broken as soon as you were doing anything different from the kind of React.js that later became Vercel.
Not only I was able to do 10% of what I was able to do previously conditional on jury-rigging the billion dollar stack to work, I also had a little cadre of happy campers on my ass blatantly gaslighting me that it is all, in fact, working; and suggesting the most inane "solutions" once I'd bent over backwards to demonstrate how there is, indeed, a problem of absurd dimensions, straight outta nowhere.
Later I met more such people. Same people who would insist JS runtimes are not trivially interchangeable, having committed to not examine what they're doing beyond a meager level of abstraction.
I see it as a rather perverse form of "working to spec" (have had to pick up surreal amounts of slack after such characters), but with incentives being what they are you get a cutthroat environment (such as the author of this blog post imagines to be living in), and from a cutthroat environment you get the LLMs eating everyone's breakfasts -- because no matter how yucky a word "synergy" is, synergizin' is that "fake open source" is designed to preclude, throughout the JS ecosystem.
"Fake open source" is how I call MIT/BSD licensed devtools and frameworks from hyperscalers that don't need to do an opencore rugpull because they're a piece of a long-term ecosystem strategy. They benefit from immense decade-long marketing and astroturfing efforts, lending them "default status" in the mindshare; and ultimately serve to carry the vendor's preferred version of reality into unrelated downstream projects. Which is why they often spectacularly fail to respond to the community's needs: they are built to preclude, past a certain point, the empowerment of implementors as a community.
Mastering some of that shit, now there was a sunk cost for me, but in modern JS land all these churning agglomerations play the role of "pay to play" gatekeepers. Considering what that's made the playing field be like, I'm happy pivoting to more niche technology just to keep away from said churning agglomerations.
Deno always felt like something built for the right reasons but at the wrong time. Good tech losing isn't new, it's just always a bit sad when it happens slowly.
No, they made many wrong architecture decisions that made it fringe project rather than mainstream. You could glimpse on how things could played out by looking into bun.js adoption.
Come on man. This stuff is hard. I was the guy on the other side writing these BS hit pieces. Then I raised funding and took a shot. It's so hard. It's like pushing a boulder up a mountain except you're expected to build a rocket ship on the way and blast off. It's not the analogy of falling off a cliff and building the rocket on the way down. Sure death is on the horizon and you can manage it, but the pressures are immense and so much of it you can't game. Initial hype is intoxicating and you might even have something of value but real business takes time. It's a boulder up a hill and you need to bring a lot of good people along the way to help you. OpenAI was 7 years of nothing working then boom. I hit 7 years and fatigue set in, but also life, I wasn't that same guy who started at 30. Give these people a break. Ryan has done great things with Node and Deno. Give him a break. Don't stomp on the guy. Give him some kudos. Help him FFS. Don't trash him. Shame honestly. Ryan keep up the great work. It's hard. Deno team, it's the effort and intention that counts. Good work. Regroup, try again.
No-one who accepts investor money deserves any sympathy.
You're literally on a VC forum.
3 replies →
As soon as Deno took money from Sequoia, this was bound to happen.
So here is what is going to happen:
Deno is going to 100% get acquired.
Ryan Dahl is obviously rare talent and any company that gets Ryan would be incredibly lucky.
He has already done a Google Brain Residency so it makes sense for him to go to OpenAI or another AI lab for developing AI agents.
[0] https://news.ycombinator.com/item?id=47426659
My prediction for 2023 is 2 out 3 (so far)
> Despite the initial hype, Rome tools, Deno & Bun will be quasi abandoned as the ecosystem outpaces their release cycle and the benefits don’t merit the headache of migration.
https://blog.raed.dev/posts/predictions_2023
I defaulted to Biome for all greenfield projects a year ago, and at this point you would have to drag me kicking and screaming back to ESLint and Prettier. I also defaulted to Bun and still think Bun is leagues better than Node.js but I now have my doubts about its future after seeing the OpenCode devs consciously minimize their dependency on Bun for strategic reasons.
Rome tools is now Biome and Biome is really good. The company didn't work out but the tool itself is better than ever.
I think you are 0/3.
- Bun just got acquired by Anthropic, which has seemingly accelerated development. Last release: 4 days ago.
- Deno is still kicking as a company, this blog post notwithstanding. Last release: 3 days ago.
- Rome was forked into Biome. Biome last release: 4 days ago.
Deno hasn't been abandoned though. The company still survives. These layoffs are probably to focus resources on the runtime and subhosting product.
Bun is in much better shape than it was in 2023 and its future is less uncertain today than it was back then.
For me Bun’s dramatic entrance and the a lack of any Deno response that reached my attention effectively evaporated any interest I would have in switching my runtime. I’m already set with my tooling and hosting.
It's easy to be critical in hindsight but honestly when Deno first came out it was pretty incredible. Even the whole idea about URL based imports makes lots of sense but it was incompatible with any of the existing toolchains that were wildly popular. At the same time, companies like Vercel launched a new kind of framework and leveraged that into a hosting business with I would say great success. They captured developers where they were at _today_, including acknowledging the demographics, the tools, the culture, etc.
Compatibility aside, Url-based imports are a bad idea as soon as you go beyond writing your entire program in a single source file and want to keep imported versions of common dependencies in sync. It's nice for scripts, but a deno.json file is better.
The author should be the change they want to see in the world. Nothing is stopping them from making an alternative.
in particular really rubbed me the wrong way for 2 reasons:
1) You acknowledge that you think you've already at least bordered on "cruel", why would you want this? It's not clever.
2) You have the arrogance to think your opinion means this much to the creator when they've achieved far more than you.
I really hope this is premature because Deno is easily the best thing to happen to the JS/TS ecosystem in years.
I agree with all the comments saying this is unnecessarily critical. We're getting an amazing tool totally for free. Quit complaining.
I would not be surprised if they get bought by one of the big AI players anyway, given the weird purchases of Bun and Astral.
The idea of Deno is brilliant... but they should have either focused on Node compat from the first day (like Bun did) or just keep doing their own thing with built-in APIs to solve the most common needs (db drivers, router, s3, etc).
They had the right ideas but it's like investors panicked midway and demanded a change in direction.
https://github.com/oven-sh/bun/issues?q=is%3Aissue%20state%3...
Setting aside the fact that the S3 built-in API is now neglected, I'm skeptical about the runtime providing such APIs. As Ruby on Rails does well, these are issues that should be handled by the framework, not the runtime. While these APIs may seem convenient at first glance, breaking changes to APIs integrated into the runtime are difficult. It's not impossible, but it would likely cause dissatisfaction among many users. Furthermore, constantly keeping up with updates to third-party products would result in immense maintenance costs.
Users should also reconsider the extremely high backward compatibility that JavaScript has maintained before jumping on such hype.
> I'm skeptical about the runtime providing such APIs. As Ruby on Rails does well, these are issues that should be handled by the framework, not the runtime.
Well there's no Rails for JS and in case you're not aware there's an absolute security disaster going on with NPM.
For a typical Node project dozens if not hundreds of dependencies need to be used. Eg Platformatic needs 258 dependencies of which 97 depend on a single maintainer.
https://npmgraph.js.org/?q=platformatic#zoom=h
You only need a single dependency to become compromised. And as anyone who has maintained a Node app knows, with all those dependencies you're like 5 mins away from an incompat issue.
Maybe another solution would be for the runtime to provide like a versioned standard suite of deps that matches the runtime version. So these are secure and fully compatible with the runtime and with each other.
1 reply →
> Idle speculation has led to baseless rumours of an OpenAI acquisition. I’m not convinced that makes sense but neither does the entire AI industry.
hmm, blog author doesn't know about Anthropic's Bun acquisition, and consequently shouldn't comment on "the entire AI industry"
> Bun has far more bugs and compatibility issues than anyone will admit. Node still has too much friction around TypeScript and ECMAScript modules.
I only use deps that support Bun like Hono and Drizzle but so far my experience has been flawless.
And yeah Node sucks for TS in comparison to Deno or Bun.
This is an absolutely horrible article. From totally over the top comparisons to an absolute lack of substance, this is no more than a collection of ‘haha me smart’ garbage mixed with personal attacks.
Drunk sports fans are more coherent than this.
i did not interpret this article as hate. this is very sad news and OP is being honest about the state of things and failings along the way. they even end with a plea that things turn around.
Like other commenters the tone of this post threw me off but I was really impressed by the design of the website. Congrats for building it, it shows your hard work and taste!
I had the feeling something wasn't going well as soon as the AI pivoting. My guess was that for Ryan being acquired like Bun was might have been the only road available
The problem Deno faces is that nodejs is “good enough”.
Pray you never have a “good enough” competitor.
I felt it should have aimed to be a 100% drop in replacement for nodejs then innovated on top of that.
Tried moving a monorepo off Node once. The runtime swap was the easy part. What killed us was the 50-odd package.json files with node-specific stuff baked in. Conditional exports, postinstall scripts, engine constraints, pnpm overrides. Bun got this right by just eating all of that as-is. Deno asking you to throw out package.json on day one was basically asking you to rewrite your entire build config before you even got to try it.
I'm afraid something like that could happen to bun.
Anthropic acquired Bun, so money should not be a problem for the next couple of years.
Anthropic, the company that actually has much worse revenues and likely mislead the public? [1] That Anthropic? The same Anthropic that has taken billions of gulf state money where the countries are on the verge of divesting itself from the US or fear of potentially losing their refineries + oil fields for at least 50 years? That same Anthropic?
This house of cards is about to collapse and lot of "smart" devs are going to act shocked when the water recedes.
The same thing always happens: companies "adopt" open source then, unless you have monopoly, money problems eventually appear and leadership sees this lovely team with "bloated budget" in the bylines.
[1] https://www.reuters.com/commentary/breakingviews/anthropic-g...
5 replies →
It also means the Bun team is no longer in control. Acquisition has a similar time frame and we've seen numerous projects chart a similar path to irrelevance.
I’m starting to think this guys obsession with writing hit pieces about Deno is not at all genuine and perhaps he is being paid.
Anthropic's acquisition might prove for the better if their able to avoid the same layoff situation.
I'm waiting for the "10 Things I Regret About Deno" blog post.
> I wanted to know if the hundreds of hours I’d spent mastering Deno was a sunk cost. Do I continue building for the runtime, or go back to Node?
I assume the author is aware that Ryan Dahl created that too?
Not that it would make him immune to criticism, but the author comes off extremely petty.
What nonsense. Does it count as a “clapback” when the CEO responds sensibly and takes responsibility? This is just pointless snark.
I think the only real perk of Bun/Deno over Node is that they can run .ts directly and have better ES compatibility. I don’t need Deno’s permission system, but it’s on by default, so I went with Bun.
They should call the next js runtime "done"
I have migrated away from NextJS for similar reasons of being too special case in the ecosystem. Next in particular is designed for the way Vercel runs applications and comes with extra pain if you don't run on edge. (see middleware as an example, I think they renamed it since I left)
Does any of this transfer over to Bun as well?
Bun is pragmatic, extremely fast and self-contained. Ryan Dahl is a hero of mine but Deno could be neither of those, which is a shame, but to answer your question, no, not much of these can be said for Bun.
Definitely, as it depends on where Zig goes, and what Antrophic will make out of it.
For me yes, I have never found these alternative runtimes appealing.
However Anthropic owns Bun now, so a different story will unfold.
I honestly can't think of a single practical scenario where I'd pick Deno over Node + npm today. Bun, on the other hand, has pretty much claimed the performance crown for itself at this point.
> The harsh truth is that Deno’s offerings have failed to capture developers’ attention. I can’t pretend to know why — I was a fanboy myself — but far too few devs care about Deno.
I never heard of Deno until today. So perhaps this was a marketing failure.
Who hurt you?
[dead]
[flagged]
[dead]
[dead]
I was really into Deno until it went all-in on nodejs compatibility (like Bun).
At that point I was left wondering -- if Bun and Deno have essentially the same strategy/approach, why would I pick the less mature option?
And so I ported everything to Bun
Because Bun's runtime is a bug ridden mess. Say what you want about Deno but people that chose Bun's runtime over Deno's are either not really using Bun's runtime (just the package manager part) or are not running in production at scale.
Yeah I’m not running it at scale. It’s been good for my projects though
"Decimation" is to reduce by a tenth (and typically those being reduced would be forced to decide who to lose), so a poor comparison to "losing half your staff". If you're going to mention its Roman origins, then these details matter.
I have switched entirely away from anything deno, even though I used it in supabase.
But I need to have everything in a mono repo for agents to properly work on in.
Cloud functions and weak desperation between dev and prod is a mess, even more so with agents in the loop.
> But I need to have everything in a mono repo for agents to properly work on in.
Why was this a problem with Deno? Up until recently you had to use package.json and npm/pnpm for it to work, but even then it was better than Bun or Node since you could use import map to avoid compiling packages for testing etc (Node and Bun's type stripping doesn't work across local monorepo dependencies, and tsx produces mangled source maps making debugging a hassle). Now Deno has built-in workspace/monorepo support in deno.json.
> But I need to have everything in a mono repo for agents to properly work on in.
Why is that? Seems like an agent framework limitation, not a reasonable requirement in general. (I do not have this limitation, but I also have a custom agent stack)
I've found myself occasionally wishing I had a monorepo purely for Claude Code for web (Anthropic's hosted version of Claude Code), since it can currently only work with one private repository at a time.
On my own machine I have a dev/ folder full of checkouts of other repos, and I'll often run Claude Code or Codex CLI in that top level folder and tell it to make changes to multiple projects at once. That works just fine.
8 replies →
This site (from nx), while biased, explains it best. https://monorepo.tools/
In a poly repo setup, agents are less effective having to infer changes across repo boundaries using specs rather than code as context. Changes that impact multiple repos are also much messier to wrangle.
1 reply →
> What’s next for Deno?
Who cares? Why does the world need so many fringe tools/runtimes? So much fragmentation. Why does every project have to be a long-term success? Put some stuff out if its misery. Don't waste the time of the already few open-source contributors who pour hours into something for no good reason.
Deno is much more than a fringe tool. It's a genuine improvement in many ways.
The world doesn't need a dozen JS runtimes.
The world doesn't need a dozen JS engines.
The world doesn't need many dozens of Linux distros.
The world doesn't need a handful of BSD distros.
The world doesn't need many dozens of package managers.
The world doesn't need hundreds of JS frameworks.
The world doesn't need dozens of programming languages or chat protocols or CI/CD systems.
The world doesn't need dozens of init systems, service managers, display servers, audio stacks, universal app formats, build tools/bundlers.
Deno may have dragged the JS runtime space forward, fully agree. Maybe it served its purpose and it is time to say goodbye.
2 replies →
I'd argue that the mainstream, lowest-common-denominator tools are the ones which waste people's time. (Especially when they're backed by an incumbent. Deno, on the other hand, clicked immediately.)