Back

Vite 8.0 Is Out

407 points10 hoursvite.dev
raydenvm4 hours ago

Yeah, it makes you wonder how much computing power the industry has wasted over the years on tools that nobody questioned because "that's just how long builds take." We planned our work around it, joked about creating breaks, and built entire caching layers to work around it.

Kudos to the Vite maintainers!

semiquaver16 minutes ago

The waste of slow JS bundles is nothing compared to the cost of bloated interpreted runtimes or inefficient abstractions. Most production software is multiple orders of magnitude slower than it needs to be. Just look at all the electron apps that use multiple GB of ram doing nothing and are laggier than similar software written 40 years ago despite having access to an incredibly luxurious amount of resources from any sane historical perspective.

Zopieux3 hours ago

I wonder what will be the parallel hindsight about waste, but for matrix multiplications, in a few years.

_heimdall2 hours ago

By then I understand that matrix multiplication will have cured cancer and invented unlimited free energy, so no hindsight of waste needed.

echelon49 minutes ago

Cure cancer? It doesn't have to cure cancer for it to make billions.

All it has to do is put price pressure on your salary. (And it is already doing that.)

jillesvangurp3 hours ago

Build performance has been a pet topic for me for quite some time when I realized I was wasting so much times waiting for stuff to build 14 years ago. The problem is especially endemic in the Java world. But also in the backend world in general. I've seen people do integration tests where 99% of the time is spend creating and recreating the same database over and over again (some shitty ruby project more than a decade ago). That took something like 10 minutes.

With Kotlin/Spring Boot, compilation is annoyingly slow. That's what you get with modern languages and rich syntax. Apparently the Rust compiler isn't a speed daemon either. But tests are something that's under your control. Unit tests should be done in seconds/milliseconds. Integration tests are where you can make huge gains if you are a bit smart.

Most integration tests are not thread safe and make assumptions about running against an empty database. Which if you think about it, is exactly how no user except your first user will ever use your system.

The fix for this is 1) allow no cleanup between tests 2) randomize data so there are no test collisions between tests and 3) use multiple threads/processes to run your tests to 1 database that is provisioned before the tests and deleted after all tests.

I have a fast mac book pro that runs our hundreds of spring integration tests (proper end to end API tests with redis, db, elasticsearch and no fakes/stubs) in under 40 seconds. It kind of doubles as a robustness and performance test. It's fast enough that I have codex just trigger that on principle after every change it makes.

There's a bit more to it of course (e.g. polling rather than sleeping for assertions, using timeouts on things that are eventually happening, etc.). But once you have set this up once, you'll never want to deal with sequentially running integration tests again. Having to run those over and over again just sucks the joy out of life.

And with agentic coding tools having fast feedback loops is more critical than ever.

Sammi38 minutes ago

> I've seen people do integration tests where 99% of the time is spend creating and recreating the same database over and over again (some shitty ruby project more than a decade ago). That took something like 10 minutes.

For anyone that doesn't know: With sqlite you can serialize the db to a buffer and create a "new" db from that buffer with just `new Datebase()`. Just run the migrations once on test initialization, serialize that migrated db and reuse it instantly for each test for amazing test isolation.

esafak5 minutes ago

Kotlin compiles fast; I don't have any problems with ktor. Spring Boot and Rust do not.

homebrewer6 hours ago

Very pleased to see such performance improvements in the era of Electron shit and general contempt for users' computers. One of the projects I'm working on has been going for many years (since before React hooks were introduced), and I remember building it back in the day with tooling that was considered standard at the time (vanilla react-scripts, assembled around Webpack). It look maybe two minutes on a decent developer desktop, and old slow CI servers were even worse. Now Vite 8 builds it in about a second on comparable hardware. Another demonstration of how much resources we're collectively wasting.

this_user2 hours ago

> Very pleased to see such performance improvements in the era of Electron shit and general contempt for users' computers.

Luckily, we have invented a completely new nightmare in the form of trying to graft machine-usable interfaces on top of AI models that were specifically designed to be used by humans.

itsTyrion1 hour ago

the vite Homepage lags on both an A55 and s23fe regardless, which bears at least some irony

vbezhenar5 hours ago

It is especially weird because JavaScript was not supposed to be processed at all! This is all wrong if you ask me. Web development should strive to launch unchanged sources in the browser. TypeScript also was specifically designed so engine could strip types and execute result code. These build tools should not exist in the first place.

__alexs5 hours ago

JavaScript was not supposed to a lot of things.

Aldipower3 hours ago

Steve Jobs decided differently when he hated on ActionScript.

10 years ago this sentence probably would have start a flame war. ;-)

+1
brookst2 hours ago
dschu5 hours ago

And yet it pays my bills for almost two decades.

azangru1 hour ago

Probably wasn't supposed to either :-)

azangru1 hour ago

> TypeScript also was specifically designed so engine could strip types and execute result code. These build tools should not exist in the first place.

Was it? Have you forgotten namespaces and enums?

MrJohz54 minutes ago

More recently, it's been designed so this is the case. Namespaces, enums, and the property constructor shortcut thing were all added relatively early on, before the philosophy of "just JS + types" had been fully defined.

These days, TypeScript will only add new features if they are either JavaScript features that have reached consensus (stage 3 iirc), or exist at the type system only.

There have been attempts to add type hints directly to JavaScript, so that you really could run something like TypeScript in the browser directly (with the types being automatically stripped out), but this causes a lot of additional parsing complexity and so nothing's really come of it yet. There's also the question of how useful it would even be in the end, given you can get much the same effect by using TypeScript's JSDoc-based annotations instead of `.ts` files, if you really need to be able to run your source code directly.

olmo235 hours ago

If you're already passing over the sources to strip the types, why would you also not do tree-shaking and minifications?

ZiiS4 hours ago

Why would I want to strip my types?

+1
wildpeaks4 hours ago
+1
dminik3 hours ago
+2
1dom4 hours ago
mexicocitinluez2 hours ago

> It is especially weird because JavaScript was not supposed to be processed at all! This is all wrong if you ask me.

You're not actually suggesting that technology can't evolve are you? Especially one whose original design goals were to process basic forms and are now being used to build full-blown apps?

It's absolutely wild to me that with everything that has happened in the last 2 decades with regard to the web there are still people who refuse to accept that it's changed. We are building far bigger and more complex applications with JavaScript. What would you propose instead?

k4rnaj1k5 hours ago

[dead]

vite_throwaway15 minutes ago

I have a small React project using vite 7 and have the following in my config so that vite interprets ".js" files as JSX:

    // See https://github.com/vitejs/vite/discussions/14652
    esbuild: {
      loader: "jsx",
      include: /.*\.jsx?$/,
      exclude: [],
    },
    optimizeDeps: {
      esbuildOptions: {
        loader: {
          ".js": "jsx",
        },
      },
    },
Note the comment at the top. I had no idea how to come up with this config by checking the documentation pages of vite and its various related tools. Luckily I found the GitHub issue and someone else had come up with the right incantation.

Now this new vite uses new tools, and their documentation is still lacking. I spent half an hour trying to figure out how vite (and related tools that I had to navigate and try to piece a coherent view of: esbuild, oxc, rolldown, etc.) might be convinced, but gave up and stayed with vite 7.

Someone could respond with a working solution and it would help, sure, but these tools sure as hell have documentation issues.

johnfn8 hours ago

Vite 8 is pretty incredible. We saw around an 8x improvement (4m -> 30s) in our prod build, and it was nearly a drop-in replacement. Congrats (and thank you!) to the Vite team!

FrostKiwi6 hours ago

Same here (10s to 1s). The main reason for this is rolldown [1]. Already had it installed months ago, before it got merged into vite proper. Really awesome stuff.

[1] https://rolldown.rs/

Griffinsauce6 hours ago

4 minutes?! How large is that app?

Not meant as a gotcha but I'm surprised because people always tout it as being so much faster than Next. (4m with Turbo would have to be a crazy huge app IME)

rk066 hours ago

most likely they are not running the prod build on latest mac. so it is slower.

dschu5 hours ago

Yeah, 4 mins is currently the avg. build time for our TanStack app dockerized. The turbo part takes 30 sec with Vite 7

bengale5 hours ago

We saw 12m -> 2m on one of our biggest projects. Incredible really.

christophilus5 hours ago

It blows my mind that there is a 12m build for a JavaScript application. How may lines of code is this app?

bengale4 hours ago

Seems to be around 1 million. It's chunky and it's probably not well optimised for the build to be honest, but it was only starting to creep up the priority list as it crossed the 10m mark.

This is also the length on our CI which is running on some POS build machine. Locally it's far faster, but with Vite 8 its crazy fast.

pestatije3 hours ago

My banking site takes 10 seconds to LOAD...I hate thinking how long it must take them to compile it

chrisweekly30 minutes ago

Awesome news. Amid all the (real and perceived) js ecosystem churn, vite has been consistently excellent for dx and production. The unified rolldown bundler is only going to increase vite's appeal and widen the gap as the fastest, most pragmatic and flexible foundation for ts/js projects. Huge fan, speaking from deep experience (webdev since 1998).

moretti5 hours ago

Thanks to the Vite team for building a faster, modern bundling solution on a fully open source stack that isn't tied to a specific framework...cough cough, Turbopack

Aldipower3 hours ago

As I am interested in long time maintainability (should still work in 10 years) with my projects I am just using esbuild directly. I am not interested in adjusting my projects, just because things changed under the hood in "wrappers" like Vite and I suddenly have a lot of work.

christophilus1 hour ago

This is the way. Trivial to get live reloading working. HMR is overrated. I went with esbuild in my last project, and have no regrets. Also, used my own 100line end-to-end typed RPC layer with Zod validation doing the heavy lifting. No code gem required for any part of the project other than generating types from Postgres. No regrets there, either. The only thing I would have changed in that project is I would have used Kysely instead of just raw porsager.

silverwind24 minutes ago

IIRC, esbuild is still lacking code splitting.

chearon20 minutes ago

esbuild still doesn’t support top-level await. And live reloading is way, way slower than HMR.

emadda1 hour ago

esbuild has been very stable for my projects too.

I think it is the only tool in the JS ecosystem that has not broken after a few years.

soulchild777 hours ago

Awesome! Too bad Next.js will never profit from these incredible community efforts, because Vercel suffers from NIH.

gherkinnn7 hours ago

It's the Vercel way to first run broken previews for several years.

Next started with Turbopack alpha as a Webpack alternative in Next 13 (October 2022) and finally marked Turbopack as stable and default in Next 16 (October 2025). They also ran sketchy benchmarks against Vite back in 2022 [0].

Next's caching has a terrible history [1], it is demonstrably slow [2] (HN discussion [3]), RSCs had glaring security holes [4], the app router continues to confuse and relied on preview tech for years, and hosting Next outside of Vercel requires a special adapter [5].

Choosing Next.js is a liability.

0 - https://github.com/yyx990803/vite-vs-next-turbo-hmr/discussi...

1 - https://nextjs.org/blog/our-journey-with-caching

2 - https://martijnhols.nl/blog/how-much-traffic-can-a-pre-rende...

3 - https://news.ycombinator.com/item?id=43277148

4 - https://nextjs.org/blog/CVE-2025-66478

5 - https://opennext.js.org/

ssijak6 hours ago

Next took a very bad turn and double downed on it. Coupled with years of terrible bugs its beyond repair for me unless they rewind a bunch of core changes they did.

There are several much better options right now. My favourite is Tanstack Start. No magice, great DX

adamgoodapp5 hours ago

+1 for Tanstack start. I just setup a new project with it and like the whole ecosystem. Only slight disadvantage is most third party documentation and automatic setup with packages aren't setup for Tanstack Start yet.

littlecranky675 hours ago

Any suggestions to replace NextJS when you only use static export (no SSR)?

dbbk4 hours ago

Tanstack Start is the gold standard here. It’ll do a static export no problem.

christophilus5 hours ago

It depends on your application, but for typical SPAs, there are any number of approaches which are better than next by every metric I (personally) care about.

littlecranky672 hours ago

Care to list those?

J_tt4 hours ago
+1
littlecranky672 hours ago
NamlchakKhandro4 hours ago

tanstack router

CalRobert7 hours ago

Got back in to react after a few years’ hiatus and I struggle to even understand what the point of Next is. Bizarrely the official docs even reference Next. Are people using react for non-SPA’s? Why?

drawfloat6 hours ago

Vercel has slowly taken over Facebook's position as being the employer of the main developers of React. There's a debate to be had over how much they 'control' it or not, but the fact create-next-app is the first recommended option on the official installation page now does show it's had an impact.

5 or so years ago, Next was a pretty solid option to quickly build up a non SPA, when combined with the static export function. It wasn't ideal, but it worked and came batteries included. Over time it's become more bloated, more complicated, and focused on features that benefit from Vercel's hosting – and static builds can't take advantage of them.

These newer features seem of limited benefit, to me, for even SPAs. Why is there still not a first class way of referencing API routes in the client code that provides typing? Once you reach even medium scale, it becomes a mess of inteprolated string paths and manually added shared response types.

robertlagrant4 hours ago

I'm trying to build a nextjs app and it's quite painful. It seems to be more and more focused on SSR, which I don't care about (looking for a static app that calls separate API endpoints). That would have been fine in the NextJS I remember from a few years ago, where static and SSR seemed equally viable, but I can't be bothered now. I'm going to try Tanstack Start.

mexicocitinluez2 hours ago

> but the fact create-next-app is the first recommended option on the official installation page now does show it's had an impact.

There is a decent bit of history around that page and whether some things should go in a collapsible div and whether that was prioritizing certain frameworks over other ones.

One thing I'm still salty about is that CRA isn't mentioned anywhere (in the entire site). It's like it never existed.

flowerbreeze6 hours ago

I'm being rather snarky here, but the main point of front-end JS UI frameworks is to exist and to survive in their environment. For this purpose they have evolved to form a parasymbiotic relationship with others in their environment, for example with influencers. The frameworks with the best influencers win out over older ones that do not have the novelty value anymore and fail to attract the best influencers.

Griffinsauce6 hours ago

This could also apply to the recent wave of hate towards Next.

christophilus4 hours ago

Next is the Microsoft Sharepoint of the JavaScript world. It’s a terrible solution to just about anything, and yet gets crammed into places and forced on people due to marketing-led decision making.

azangru1 hour ago

> Are people using react for non-SPA’s?

Imagine a page that loads html during the first load, and then performs client-side routing during subsequent navigations. Is it an SPA? Is it not an SPA?

codetantra7 hours ago

After Tanstack Start, Next.js seems even less intuitive. While it remains a viable option due to its established momentum, it feels quite alien to backend devs, esp with its unconventional defaults.

CalRobert7 hours ago

It feels like Wordpress inasmuch as it’s shoving a tool in places that don’t make sense. React is great for SPAs but if I wanted pre-rendered static content I’d use a different tool.

patates6 hours ago

I had had a client cancel a job when they heard it's not going to use Wordpress. It was going to be a dashboard showing statistics (air quality, room bookings etc.) from their facility.

+1
davidodio6 hours ago
gnarlbar7 hours ago

Not me, but I can imagine it happening.

JSX is a nice server side templating language. There a lot of people who aren't dependency conscious, and a lot of people who love react, and there is quite a bit of overlap in those two groups. I've used bun + preact_render_to_string for server side JSX templates before and it was nice. When I did it seemed that bun somewhat embraced react, and I could imagine react being the path of least resistance to server-side JSX there for some of the folks in the aforementioned groups.

pjmlp6 hours ago

The point is JavaScript developers rediscovering PHP, Spring MVC, ASP.NET MVC, Rails,.....

And to sell Vercel on top.

user342832 hours ago

Instead of going:

Fetch index.html -> Fetch JS bundle -> Evaluate -> Fetch /users/me

You do:

Fetch index.html (your page is rendered at this point) -> rehydrate with client side JS for interactivity in the background

It's a pretty smart solution I think, and many people are still sleeping on the whole SSR topic.

anon70002 hours ago

It makes sense for sites with a lot of static pages, but you barely need react in that case. NextJS does not perform that well out of the box. I’d argue that a basic SPA with no SSR using something like preact would be a better choice for many building dashboards or applications (not marketing/docs sites). It’s also easier to host & operate and has fewer footguns.

Getting SSR right is tricky and barely even matters for a lot of use cases I’m seeing with Next.

Better server/client integration when it comes to rendering UIs is neat, but there are other technologies that solve for that at a more fundamental level (htmx, phoenix)

user342831 hour ago

It rather appears to make sense for any site that currently makes additional requests to fetch data as part of the page load.

It is broadly useful and relatively easy to use while still staying within the React framework the developer knows well.

That said, I didn't build more than a demo app with NextJS, so I don't know a lot about possible issues. Just the concept seems to be good.

pjmlp7 hours ago

They have the enterprise partners that make Next.js the only officially supported SDK on their SaaS integrations.

See Sitecore Cloud, Sanity, Contentful,....

rk067 hours ago

Really the enterprise partner supports next, but not vanilla js sounds stupid? Honestly I expect them to prioritize nextjs and react given the popularity, but still be open to vanilla js.

I checked sitecore cloud to have special integration for nextjs and reactjs. But it also support vanilla js as well.

Are there really anyone who is exclusive to nextjs?

pjmlp7 hours ago

Vanilla JS is "supported" if you write the missing parts, e.g. layout service, visual editing integration,...

In many places they will say it is supported, but when you look into the details only React/Next.js work out of the box without additional work.

A bit like you can deploy Next.js on Vercel, or do it yourself somewhere else.

rvcdbn7 hours ago

maybe of interest: https://github.com/cloudflare/vinext

(haven't tried it myself)

vijaybritto7 hours ago

It's not a good piece of software. Breaks in many places

rozenmd5 hours ago

that makes sense, it's not 1.0 yet

littlecranky676 hours ago

"Read the announcement: How we rebuilt Next.js with AI in one week".

brillout2 hours ago

Vite+, Void Cloud, Void Framework... an epic battle between Vercel and Void is coming.

The PRC (aka server functions) demo [0] is particularly interesting — end-to-end type safety (from DB to UI) is a major milestone for JavaScript. We've been doing a lot of RPC design work in that space with Telefunc (tRPC alternative) [1] — it's a really hard topic, and we're looking forward to collaborating with the Void team. (Also looking forward to contributing as the creators of Vike [2].)

[0]: https://www.youtube.com/watch?v=BX0Xv73kXNk (around the end of the first talk) [1]: https://telefunc.com (see the last PR) [2]: https://vike.dev

shunia_huang5 hours ago

Ah, wondering how long it will take Angular to replace it's sh*t building tool chain to fully vite compatible, hope it could happen before I change may career path or retire.

h4ch14 hours ago

I've been using rolldown-vite for the past 3-4 months with absolutely no issues on a very large monorepo with SvelteKit, multiple TS services and custom packages.

Just upgraded to 8 with some version bumping. Dev server time reduced to 1.5s from 8s and build reduced to 35s from 2m30. Really really impressed.

nebezb7 hours ago

> Built-in tsconfig paths support

A great QoL change. One less place to duplicate (and potentially mistake) a config.

c-hendricks16 minutes ago

This is great news, but people should also try using regular nodejs import aliases and see if they're viable for their project.

gdorsi5 hours ago

Sweet, great job Vite team!

I wonder how much of the Rollup bundling magic has been ported to Rolldown.

One thing that always made this kind of switch to Rust has always been that Rollup has become so sophisticated that's hard to replace with something new.

brandensilva8 hours ago

Man the perf changes for this version are awesome. Thanks Vite.

imfing6 hours ago

Awesome! been using Vite since its early days. really excited to see how it's improving the JavaScript and TypeScript tooling landscape and how it continues to evolve

karel-3d6 hours ago

Yesterday I stopped hating AI because it converted an old webpack project with impenetrable plugin settings to a single simple Vite config.

I still don't understand how people used to think scripts like this are the proper way to bundle an app.

https://github.com/facebook/create-react-app/blob/main/packa...

vite is great, is all I am saying

jjice36 minutes ago

800 lines config to compile code that's later interpreted is wild. I get the general idea behind having a script instead of a static config, so you can do some runtime config (whether or not we should have runtime changes to config is a different conversation), but this is absurd.

I'm a big believer in fully reviewing all LLM generated code, but if I had to generate and review a webpack config like this, my eyes would gloss over...

throwaway2904 hours ago

Outsider question: why use Rollup when Esbuild exist? Is esbuild not enough for production builds?

rk064 hours ago

it is not. lack of plugin support is sufficient to block adoptions among other things.

throwaway2903 hours ago

but it has plugin support? what kind of plugins you mean?

slopinthebag9 hours ago

> Currently, the Oxc transformer does not support lowering native decorators as we are waiting for the specification to progress

Does Oxc also support TS runtime features like constructor parameter properties and enums? I seem to recall in the beta that they had enabled --erasableSyntaxOnly, presumably because Rolldown / Oxc didn't support doing a full transform.

ameliaquining8 hours ago

Yes, those work fine: https://playground.oxc.rs/?options=%7B%22run%22%3A%7B%22lint...

For that matter, TypeScript's version of decorators ("experimental decorators") also works: https://playground.oxc.rs/?options=%7B%22run%22%3A%7B%22lint...

What's not supported is the current draft proposal for standardized ECMAScript decorators; if you uncheck experimentalDecorators, the decorator syntax is simply passed through as-is, even when lowering to ES2015.

Benjamin_Dobell7 hours ago

TC39 decorators emit just landed in tsgo about 24 hours ago. Hopefully they're available in Vite 8 soon. I'm using them in GodotJS https://github.com/godotjs/GodotJS/commit/a4bafef9f14c103b09...

krona5 hours ago

It doesn't support const enum, unlike esbuild which supports them well enough to be credible.

https://github.com/oxc-project/oxc/issues/6073

slopinthebag7 hours ago

Awesome. Standard decorators support is not a dealbreaker for me, but enums and other types of non-erasable syntax would be.

Do you know what the status is on using Rolldown as a crate for rust usage? At the moment most rust projects use SWC but afaik its bundler is depreciated. I usually just call into Deno for builds but would be nice to have it all purely in Rust.

heldrida4 hours ago

Migrating straight away! Thank you!

verma_yatharth7 hours ago

I tried it and I saw more than 6x improvement in speed. It's on the top. Awesome tool 1

pkilgore8 hours ago

Congratulations!

hackernewsman717 hours ago

holy shit - Vite 8 - rhymes in french! Did they mention that somewhere?

ptak_dev6 hours ago

[dead]

JulianPembroke5 hours ago

[flagged]

pjmlp7 hours ago

Another rewrite in Rust.

What about finally stop using node.js for server side development?

hrmtst938376 hours ago

Rust works well for toolchains where speed counts and you can control deps, but it's a much bigger ask for server-side app logic where teams lean on JS and its libraries. Switching an established stack to Rust hits hiring and maintenance friction fast, especially with async and lifetime bugs. For Vite's community, requiring plugin authors to redo everything in Rust would probably destroy most of the value users care about.

pjmlp6 hours ago

It has worked perfectly fine with compiled languages until someone had the idea to use V8 outside of the browser.

In fact it still does, I only use node when forced to do so by project delivery where "backend" implies something like Next.js full stack, or React apps running on iframes from SaaS products.

maccard5 hours ago

I’m with you. It’s very telling when all of the tools are being rewritten and seeing orders of magnitudes of speed ups.

It just shows that people don’t value the actual performance of what they’re running.

CodeCompost6 hours ago

Node as a compiler runtime or node as a runtime runtime?

pjmlp6 hours ago

Anything backend related.

vijaybritto7 hours ago

This is for tooling.

Node.js has been extraordinarily useful for building build tools. We're outgrowing it's capacity and rightfully moving to a compiled language. Also faster tooling is essential for establishing a high quality feedback loop for AI agents

pjmlp7 hours ago

Why go halfway, embrace compiled languages in the backend.

Fast all the way down, especially when coupled with REPL tooling.

omnimus6 hours ago

Because writing Rust backend is needlessly complex for majority of projects.

maccard5 hours ago

There’s a middle ground between node and rust. Dotnet and Java are wildly productive places to work but they’re not as exciting as rust.

Also, writing JavaScript for the backend is needlessly underperforming for anything with any load.

+1
pjmlp6 hours ago
potwinkle6 hours ago

I've had a great time using Rust with Actix as the framework.

wiseowise6 hours ago

It takes tooling team and discipline to keep compile times at bay when you reach mid size projects with compiled languages (looking at you Java, C++, Rust).

+1
christophilus4 hours ago
+1
pjmlp6 hours ago
mmusc5 hours ago

isnt that what projects like bun are aiming to do?