Vite+: Unified Web Development Toolchain
What Vite+ is
Vite+ is a unified toolchain for web development from VoidZero. It bundles Vite, Vitest, Oxlint, Oxfmt, Rolldown, tsdown and Vite Task into one zero-config dependency, and adds a command-line tool, vp, that also manages the Node.js runtime and the package manager. The README sums it up as runtime and package management, create, dev, check, test, build, pack and monorepo task caching in a single dependency.
The problem it targets, per the project's "Why Vite+?" page, is tooling fragmentation: a modern JavaScript project needs a runtime, a package manager, a dev server, a linter, a formatter, a test runner, a bundler, a task runner and a growing pile of config files. In organisations with many teams each choosing its own stack, the page argues, dependencies drift, builds slow down and nobody owns the toolchain. Vite+ offers one consistent entry point instead: vp dev, vp check, vp test and vp build.
It is aimed at frontend and full-stack teams already in the Vite ecosystem, including React, Vue and Svelte projects, and at monorepo maintainers who want task caching without a separate tool. The README states that Vite+ is fully open source under the MIT licence.
How it works
Vite+ ships in two pieces. The global vp CLI manages Node.js and package managers machine-wide and makes vp available across projects. The project-local vite-plus package provides the frontend toolchain itself; the docs say either can be used on its own but recommend using both together.
Configuration lives in a single vite.config.ts at the project root. Alongside normal Vite options, that file carries a test block for Vitest, lint for Oxlint, fmt for Oxfmt, run for Vite Task definitions (including cache keys based on environment variables), and staged for the pre-commit workflow. vp migrate merges existing tool-specific files such as .oxlintrc*, .oxfmtrc* and lint-staged config into it.
For dependency management, Vite+ wraps whichever package manager the project uses (pnpm, npm, Yarn or Bun), detected from the packageManager field and lockfiles. Much of the toolchain is written in Rust; the "Why Vite+?" page says Rust is bridged to JavaScript through NAPI-RS so configuration and plugins stay in JavaScript and remain compatible with the existing ecosystem.
Key features
vp env: manage Node.js and package managers globally and per project.vp installand the rest of the package commands (add,remove,update,dedupe,outdated,why,info,link), with automatic package manager detection.vp dev: Vite's native ESM dev server with hot module replacement.vp check: formatting, linting and type checks in one command. The project claims this single pass speeds static checks up by about 2x compared with running type-aware lint rules and type checks separately.vp test: tests through the bundled Vitest.vp buildandvp pack: production app builds with Vite and Rolldown, and library builds for npm or standalone binaries via tsdown.vp run:package.jsonscripts and monorepo tasks with caching and dependency-aware scheduling, plusvp cacheto manage the cache.vp createandvp migrate: scaffold new apps, packages and monorepos, or move an existing project over. Organisations can publish curated templates as@org/create.- Git hooks and staged checks through
vp hooksandvp staged. - CI support through the official
setup-vpGitHub Action.
Getting started
Install the global CLI on Linux or macOS:
curl -fsSL https://vite.plus | bash
On Windows the README uses PowerShell:
irm https://viteplus.dev/install.ps1 | iex
Open a new shell and check the installation:
vp help
The quick start from the docs then covers the whole loop:
vp create # Create a new project
vp install # Install dependencies
vp dev # Start the dev server
vp check # Format, lint, type-check
vp test # Run JavaScript tests
vp build # Build for production
In GitHub Actions, the README points to the official action, pinned to an exact release rather than a floating tag:
- uses: voidzero-dev/setup-vp@<setup-vp-version>
with:
node-version: '22'
cache: true
For an existing project, run the migration command, which consolidates tool configs into vite.config.ts:
vp migrate
When migrating by hand, the README says to add Vite+ as a dev dependency and then add package-manager overrides that alias vite to @voidzero-dev/vite-plus-core and pin vitest to the bundled version, so the project and vp test share one Vitest copy:
vp install -D vite-plus
Use cases
- Standardising the toolchain across many repositories or teams so every project uses the same dev, check, test and build commands.
- Replacing a hand-assembled set of linter, formatter, test runner and bundler configs with one config file.
- Running monorepo tasks with caching without adopting a separate task runner.
- Pinning Node.js and package manager versions per project so local machines and CI match.
- Publishing libraries to npm, or packaging a standalone binary, with
vp pack.
How it compares
The README does not position Vite+ against named competitors; its comparison is with assembling the same pieces yourself. In practice the alternative is a stack such as plain Vite plus ESLint, Prettier, a test runner, a version manager and a monorepo task runner, each with its own config and upgrade cadence. Vite+ trades that flexibility for one opinionated set of tools from the Vite and Oxc ecosystem. Teams already committed to other linters or bundlers will find less value, while teams on Vite get the smallest migration. Performance figures in the docs (such as 10x to 100x speedups attributed to Rust tooling) are the project's own claims and depend on the workload.
Things to know before adopting
- It manages your Node.js: the global CLI takes over the global Node.js runtime and package manager. The docs say
vp env offopts out of this, andvp imploderemovesvpand its data. - Platform support: prebuilt binaries cover Linux x64 and arm64 (glibc), macOS x64 and arm64, and Windows x64, with Windows arm64 as tier 2 and musl builds experimental or unsupported tiers. On Alpine Linux,
libstdc++must be installed first. Installation fails on platforms without a prebuilt binary. - Windows installer signing: the docs note that
vp-setup.exeis not yet code-signed, so SmartScreen may warn. - CI pinning: the README asks you to pin
setup-vpto an exact version or commit SHA and not to use thev1tag, which no longer receives updates. - Version coupling: manual setups rely on overrides that alias
viteand pinvitest; mismatched versions can lead to separate mocks and runner states, as the README warns. - Maturity: the repository was created in March 2025, so it is young compared with the individual tools it bundles. Licence is MIT.
Project activity
As of October 2026 the repository has about 6,400 stars and roughly 300 forks. It was created in March 2025, its primary language is Rust, it is licensed under MIT, and it was last pushed in October 2026. Documentation is at viteplus.dev and the source is at github.com/voidzero-dev/vite-plus.
Enjoying this project?
Discover more amazing open-source projects on TechLogHub. We curate the best developer tools and projects.
Repository:https://github.com/voidzero-dev/vite-plus
GitHub - voidzero-dev/vite-plus: Vite+: Unified Web Development Toolchain
Vite+ is an MIT-licensed web toolchain from VoidZero that bundles Vite, Vitest, Oxlint, Oxfmt, Rolldown, tsdown and Vite Task behind one vp CLI, which also mana...
github - voidzero-dev/vite-plus
Related Projects
Maintain Vite+: Unified Web Development Toolchain? Add the badge to your README
Show that the project is featured on TechLogHub and send readers to this write-up.
[](https://techloghub.com/open-source/vite-plus?utm_source=techloghub_badge&utm_medium=referral&utm_campaign=readme)
