/posts/whats-new-aug-2025.md
What’s New in ViteLand: August 2025 Recap
September 1, 2025

What’s New in ViteLand: August 2025 Recap

Alexander LichterMichael Dong

Alexander Lichter and Michael Dong

Welcome to another edition of What’s new in ViteLand! Every month, we recap the project updates for Vite, Vitest, Oxc, Rolldown and what’s happening in our community.

Oxlint: Type-Aware Linting & Custom JS Plugins

Oxlint is meant to be a full-fledged linting replacement that runs at native speed. In other words, it has to cover existing linting rules, plugins, and use cases. Otherwise, users will need both Oxlint and another linter. This month, Oxlint made 2 big progress updates towards being a comprehensive replacement:

  1. Type-aware linting released. Type-aware linting has been a big feature gap for native linters because they require reading multiple files to infer type, which negates performance gains. However, Oxlint was able to maintain fast performance by building on TypeScript’s native Go port and tsgolint. The official preview of Oxlint’s type-aware linting supports 40 type-aware rules, including no-floating-promises.

  2. Custom JS plugins support roadmap. Oxlint’s custom JS plugin support is a "have my cake and eat it too" solution that provides an ESLint-compatible API and fast performance. After months of researching and prototyping, the team has found a way to run existing ESLint plugins from NPM and offer an ESLint-compatible API for custom rules and plugins. In the future, almost all ESLint plugins will work with Oxlint without modification, while maintaining the strong performance characteristics that Oxlint is known for.

Project Updates

Vite

  • React Server Component support in Vite has landed via @vitejs/plugin-rsc. The goal is to offer a unified solution for every vite-based React framework.
  • @vitejs/plugin-react version 5 has been released. It now integrates @vitejs/plugin-react-oxc directly when rolldown-vite is detected, so no different plugin is needed anymore.
  • Nobody wants their source code leaked or stolen. Due to a dev server vulnerability in various tools (including Vite), this was a real threat. Read Sapphi's retrospective blog post and find out more of the process of responding it and fixing it in the whole JS ecosystem.
  • Plugin Hooks for vite-plugin-pwa (and other Vite plugins) are in place now, speeding them up when using rolldown-vite.
Tweet is loading...

Vitest

Rolldown

  • Rolldown-Vite enables native plugins out of the box. After improving them behind a native flag, and resolving all ecosystem-ci issues, the first set is considered stable enough to be enabled by default, giving all builds a speed boost without the need for any configuration.
  • Dead Code Elimination and treeshaking is key for a small bundle. In the recent Rolldown versions, multiple improvements have been made to keep your bundle size even lower.
    • Including the inlineConst feature, which inlines imported constant values during bundling (instead of referencing them). It reduces bundle size and improves runtime performance due to fewer variable lookups. This optimization will be applied by default from version 1.0.0-beta.35 on.
  • Rolldown now has a top-level tsconfig option. You can point it to your project's tsconfig path, allowing the resolver to respect aliases from compilerOptions.paths and setting defaults for transform settings. This supersedes the previously introduced resolve.tsconfigFilename option.
  • Our first case study is out: Read how PLAID Inc. moved to Rolldown and decreased their build times by 97%

Oxc

  • Not only the Rolldown team worked on ensuring smaller bundles. Oxc's minifier now runs dead code elimination multiple times, similar to Rollup. This can reduce the bundle size even further, while only adding minimal overhead.
  • If you are using React and styled-components, your builds can become even faster as Oxc now supports most of its features as native transform. It can be easily enabled in Rolldown too as this example shows.
  • Working on the performance of tsgolint can benefit everyone! Team member Cameron sent multiple PRs to the typescript-go repository to improve its performance in various cases, helping the whole ecosystem.
Tweet is loading...

Upcoming Events

Stay tuned for these exciting events where VoidZero team members will be sharing insights and giving talks:

  • Sep 10: Vue Paris. Alex presents on Oxc and Rolldown at the community meetup.
  • Sep 18–19: SquiggleConf 2025. VoidZero is sponsoring, and Alex speaks about Rolldown.
    Win a ticket until Sep 5th by trying out Oxlint!
  • Sep 23: PragVue. Alex gives the keynote and talks about modern tooling.
  • Oct 2: JetBrains JavaScript Day. Want to know more about faster builds with fewer headaches? Then join Alex's talk.
  • Oct 9–10: ViteConf 2025. The first in-person ViteConf with talks from many of the VoidZero team!
  • Oct 14–16: JSConf North America. Evan shares insights on overcoming challenges in building faster JavaScript tooling.
  • Oct 25: VueFes Japan. Evan gives the event's keynote, Hiroshi prepared a deep dive into Vitest, and Yuji shares his OSS journey with Oxc.

From the Community

Tweet is loading...
Tweet is loading...
Tweet is loading...
Tweet is loading...
Tweet is loading...

Get all of our updates directly to your inbox. Sign up for our newsletter.

04CallToAction.vue

Interested in the future of JavaScript tooling and want to stay ahead of the curve?

We’d love to talk to you.

ContactButton.vueserved in 13ms@click=”contact”