The incorporated tools are actually really amazing:
- vitest, an ultra fast test runner. After using a lot of others, including jest and node's built in one, I love vitest.
- oxlint, replaces eslint but is compatible with its file format and ultra fast, since it isn't written JavaScript. I tried biome, but I found oxlint to have more rules and the eslint compatibility was nice.
- oxfmt, replaces prettier and is faster since it isn't written in JavaScript.
- rolldown, replaces rollup and is compatible with it but it is much faster since it isn't written in JavaScript.
The above are my go-tos in new projects anyhow since they are killer good and fast.
However vitest is still great! Selling points now are stuff like:
- shares config with vite
- works with ESM out of the box (I think Jest still doesn't)
- integrated browser testing mode that is very nice
- overall just has a ton of nicely integrated features
I have my 3000 test project suite completing in 15 seconds on my MacBook Air M3. It is pretty sweet with that setup.
Calling tests has overhead. Also knowing how to schedule and parallelize tests with dependencies is not as "simple".
Yea, this.
eslint -> oxlint (but in rust, and fast)
prettier -> oxfmt (but in rust, and fast)
webpack -> vite (...I have thoughts; but vite is popular enough so w/e)
rolldown -> tsdown (ts support, but in rast and fast)
jest -> vitest (works with vite)
It's basically taking the last decade of established conventions and supporting ts, rewriting in rust for speed, and making it all interoperable.
You already use the first, the second you should be using and has existed for years - it's a jest-compatible runner integrated to Vite.
Rolldown is a part of Vite already (since version 8, alongside other implementing tools like lightnincss).
The ox* suite are native replacements for eslint and prettier. The latter has existed for years. Both of them aim to be drop-in compatible soon.
This is a boring stack.
FWIR, prior to the purchase by Vercel (or was it Cloud flare?), Vite+ was going to be a convenient, no fuss, low movement way set up projects that they sold to businesses for funding.
I think the boring stack would skip the need for most of these. That is 5 different tools to write TypeScript in order to get some HTML, CSS and JavaScript for things that are not covered by modern web standards. Not including the frameworks itself which mostly have the same goal.
Yes, if your goal is to get HTML/CSS/JS in any form to a web client then you don't need this stuff.
If your goal is to ship a web app that stands a chance of surviving multiple devs, production traffic, etc then you need more tools. Testing behavior (vitest), enforcing code standards (oxfmt and oxlint), optimizing network calls (e.g. tree shaking from Rollup), etc. all go beyond what you describe.
This stack is as boring as it gets without literally using the tools it consolidates and replaces or dropping a requirement that necessitates them.
AI eliminates a lot of the tedium, grinding tasks, while HTML partials and htmx complement each other perfectly.
Not having to manage frontend framework, SSR states is incredibly liberating. Sprinkle in some vanillla js and redraw specific parts of the page as needed... done