Ah, great, another Javascript tooling stack! Let's jump on board! I'll get straight to configuring, replacing and patching as soon as possible. Or maybe let's just don't. I'm tired, Boss.
Ah, great, another Javascript tooling stack! Let's jump on board! I'll get straight to configuring, replacing and patching as soon as possible. Or maybe let's just don't. I'm tired, Boss.
The current dominant toolchain has been very stable for years now, and is much better than the mess of Webpack/Rollup/Brunch/Grunt/Gulp/Bower/Browserify/Parcel/Snowpack/Turbopack/Babel/etc/etc.
The only problem is that NOW there are too many separate different tools that aren't bundlers, so in addition to Vite one also has to configure Prettier, Eslint, Vitest, Typescript, Husky, Lint-Staged, Playwright, DotEnv, what else?
A unified toolchain might not replace each and every tool above, but it will simplify a lot of this process.
It will also simplify migrating between tools that it doesn't intend to replace, like migrating between Typescript and Typescript-Go. Etc.
This is already the reality in Go, Rust and other languages.
"Vite+ will be source-available and offers a generous free tier."
I'm also a developer ( sometimes ) and we need to eat. However, for me these tools are too low of a level of he stack to monetize, so I'll probably stick with my collection of free tools.
Every for-profit is subject to being sold to someone with different plans. If the license is not fully open, it's not smart to expect the licensing terms to get worse.
I remember gulp/grunt saga, I remember webpack 5 saga and the most recent pain with eslint 8 → 9 is a final nail in the coffin of anything stable for web building.
The only two tools I like in the JS world is `yarn` and `prettier`. They're focused and do what they do well. But you add eslint and any of the others and their configuration is a full fledged turing machine. Even autotools feels nice in comparison to that mayhem.
I agree that ESLint can become a mess, which is why I'm ok with a new competitor that doesn't require the extra configuration. Sure: they're also replacing Prettier (unnecessary) but everyone can keep using Prettier and change if Oxfmt ever becomes better.
All the other tools here are either existing, or drop-in replacements.
The current version of webpack was released 5 years ago. You can keep using eslint 8 which was released 4 years ago. This really isn’t the constantly changing space it was in the 2010’s
You will certainly be able to compile it. You might have hard time updating it though.
Updating is a different matter, if you're using multiple tools, hundreds of packages and several configuration files.
Which is why a unified tool that doesn't require configuring 20 tools at once is a good idea IMO.
This is like the comment version of the gish gallop.
And I gave three other examples, and I can give others: React itself has been around for 12 years, leading. Vue has been super stable too.
Migrating versions of frameworks is several magnitudes harder than migrating the ESLint config, and ESLint is optional. Migrating versions of previous tooling like Babel or Webpack is several orders of magnitude more complicated than ESLint.
Sure it would be better if people had gotten it right the first time, but the fatigue problem isn't really due to React.
And my argument isn't that "X is better than Y". It's that the number of new tools showing up is WAY smaller than it was when those complaints started. Today it has become a meme here in HN, often by people outside the frontend community.
But now there’s no unifying principles behind anything. No conventions. It’s just incantations to get thing working nicely together. It’s all preprocessing and post processing, code generation an what not.
Everything else is smooth and silk
Ohh, yes eslint 8 => 9 migration were also a big pain to handle.
Still not resolved. Their main recommended config is still not updated for 9.
Like, their decision to change configuration format in a way that breaks all and every plugin, tutorial, project in existence as a giant "fuck you" to the whole ecosystem and all web developers of the world - isn't that a reason good enough to never come back at this tool ever again?
It wasn't there X years ago and had changes to the config Y years ago that were very annoying time-consuming. One can believe that single digits of X and Y are "not stable enough" with a simple reason that you live in Decenarian Math.
For all its warts and all the hate that it gets, at least autotools is stable and not introducing breaking changes.
What? That mess is still ongoing. Next.js for example (probably the most popular "out of the box" solution) technically uses SWC, but not quite, because it doesn't support `styled-components` so you need to use Babel for that. But wait, you might also need to use tailwind, and for that you'll need `postcss` which might also work with Babel with `babel-plugin-import-postcss` but not necessarily, could also just use it as a Next plugin, but that doesn't always[1] seem to work.
I don't think this mess will ever end unless we throw React/Vue, and all "reactive" frameworks in the dustbin and we'll get enough folks on board to re-invent the web starting from scratch. But no one really wants to do that (yet?), so even things like Bun or Deno will try to be as compatible as possible making continuous concessions that will lead to the ongoing spaghettification of toolchains.
In the C world, most tools are orthogonal. The compilers don't need to know about the design of the package managers and the task runners don't care about either. Yes, we have glue tooling, but that is also and external project and the dependencies are interfaces instead of monkey-patching each other.
This less a problem when your project is on the web though, because vite (and I think under the hood esbuild) transforms the imports gracefully.
You do know that Vite uses a lot of these behind the scenes right? Vite in general has much better defaults so that you don't have to configure them most of the time, but anything a bit out of the box will still require messing with the configs extensively.
Not like OPs Vite+ changes anything regarding that.
It used Rollup.
And it does so transparently, while the alternative, Rolldown, was being finished.
To me this sounds like a more than acceptable compromise in the interim.
Didn't have to touch the webpack stuff either. Perhaps the issues you're having are due to something else?
Why should it even be your problem.
For NextJS, do you remember the runtime used for middlewares? What was this swc thing again?
It never ends. Every year new things are added and they never really replace anything, it's just one more thing to learn and maintain.
If every technology causes exactly 1 issue per week then you quickly spend 50% of your time fixing bugs that have absolutely zero to do with what your company is actually doing.
---- EDIT
And it doesn't even stop at issues. Every one of those technologies regularly goes through breaking changes. In the process, plugins are deprecated, new ones have completely different APIs. You want to upgrade one thing for a security fix, then you're forced to upgrade 10 other things and it spirals out of control and you've spent entire work days just sifting through change logs to change `excludeFile` to `excludedFile` to `includeGlob` to `fileFilter` to `streamBouncer` to I don't know what.
Opening up iOS or macOS app source code I haven't touched in years in the latest Xcode I just downloaded is a lot like that. There is anything from Swift errors to API changes to my build plist being invalid. And if I use any third-party tools, they probably don't work until I visit each one's latest readme.
And that's without even insisting on using the latest unstable tech (bun, biome, nextjs) like you did in your comment where you would expect that experience.
Because of Vite, there was a total of ZERO work from my side involved in changing from Rollup to Rolldown, or from babel to Esbuild to SWC.
The Rust/Go/uv model is the one to go. This is ONE step in this direction.
I haven't experienced nearly as much brittle build and dev tooling with other ecosystems, PHP or Python for example. Sure, they have their warts and problems and their fair amount of churn. But the sheer amount of JS tool and framework churn I experienced over the last few years was insane.
It might have cooled down somewhat by now, but I'm burned out. So reading about more churn to fix the churn just rubbed me the wrong way.
But many projects won't adopt it. There are so many competitors all with their own little ecosystems. So in the end, I'll still have to fix all the issues I fix right now PLUS the issues that Vite+ will add on its own.
The only chance I see for something like this actually working is if something like Node/NPM decided to add a default formatter, linter, and so on.
When these cynical takes were crafted, Angular, AngularJS, Aurelia, Backbone, Ember, Knockout, React and Vue were all competing for mindshare, with new members joining/leaving that group every month (anyone remember OJ.js and Google FOAM?) being compiled by traceur, 6to5, the Google Closure Compiler and others from (Iced) CoffeeScript, TypeScript, ES6, Atscript, Livescript and Closurescript. We had two fucking major package registries (npm and bower) for literally no reason and we’d use both in every project. We had like 4 ways of doing modules.
Today the stack has stabilized around React and Vue, with a couple perennial challengers like Suede in the background. Vite and Webpack have been the two main build toolchains for years now. We discarded all of those languages except for TypeScript (and new ES features if you want them, but there are fewer changes every year). There are a couple package management tools, but they’re cross-compatible-ish and all pull from the same registry.
So does the fact that it’s not NEARLY as bad as it was in 2015 mean that people in 2025 aren’t allowed to complain? Yes. Yes it does.
But just in the repos at work I deal with: yarn, npm, pnpm, bun, NextJS, biome, Prettier, ESlint, Vite, Vitest, Jest, Turbopack and esbuild. At least those are the things I remember right now. They all have their idiosyncracies and issues. They all require learning slightly different configs. Nothing is compatible with anything else. I can't take one library and `npm link` it into another because their toolchains are completely different. Then you have the whole topic of exporting TS vs. JS, different module types, module resolution, custom module resolution rules to accomodate for how some outdated plugin somewhere works.
And this really is just the tip of the iceberg.
I wish these folks the best and I hope I'm wrong and in a few years all of this is replaced by `vite lint` and `vite build`. But my past experience tells me that I'll simple add one more word to this list.
No, it doesn't mean people in 2025 can't complain. Hype based noise that gets in the way of people doing good work should be decried even if someone else somewhere (or somewhen) has it bad too.
This isn't a competition of badness.
Gates open. Come on in!
And as I wrote in another reply: of course other technologies are not without issues and have their churn and warts and problems, but the sheer amount of JS hype and tool and framework churn I experienced over the last few years was insane.
It might have cooled down somewhat by now, but I'm burned out. So reading about more churn to fix the churn just rubbed me the wrong way.
Especially eslint with their decision to change configuration format in a way that breaks all and every plugin, tutorial, project in existence as a giant "fuck you" to the whole ecosystem and all web developers of the world.
Jesus, it's bad enough I can't leave a js project for 6 months without it starting to rot. Now my cynicism has to be updated too?