News

Laravel Starter Kits Now Ship with Vite+

Published
Laravel Starter Kits Now Ship with Vite+ image

Every Laravel starter kit now builds with Vite+, the unified toolchain released in beta on July 2, 2026. Taylor Otwell announced the switch on X:

All Laravel starter kits now ship with Vite+.

The work landed in laravel/maestro#60 from Wendell Adriel, and Maestro synced the change out to the React, Vue, Svelte, and Livewire repositories the same day. The pull request touches all starter kit variants and pins vite-plus at 0.3.0.

Vite+ is a single CLI called vp that wraps Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task, and manages your runtime and package manager alongside them. For the starter kits, the practical result is that ESLint and Prettier are no longer part of the frontend setup.

Four Commands Become Two

The Inertia kits previously carried separate lint, lint:check, format, and format:check scripts. Those collapse into vp check, which formats with Oxfmt, lints with Oxlint, and type checks in one pass:

"scripts": {
"build": "vp build",
"build:ssr": "vp build && vp build --ssr",
"dev": "vp dev",
"check": "vp check",
"check:fix": "vp check --fix",
"types:check": "tsc --noEmit"
}

composer ci:check follows the same path, running npm run check where it used to run npm run lint:check and npm run format:check back to back.

Deleting the old toolchain removed eslint.config.js, .prettierrc, and .prettierignore from each Inertia kit, along with roughly a dozen devDependencies: eslint, typescript-eslint, prettier, prettier-plugin-tailwindcss, the ESLint plugins for React, Vue, Svelte, and imports, and globals. The React kit alone dropped 129 lines of ESLint config.

Lint and Format Rules Move Into vite.config

With the standalone config files gone, the rules now live in vite.config.ts under lint and fmt keys. Warnings are treated as failures, and type-aware linting is on:

import { defineConfig, lazyPlugins } from 'vite-plus';
 
export default defineConfig({
plugins: lazyPlugins(() => [
// ...
]),
lint: {
ignorePatterns: [
'vendor/**',
'bootstrap/ssr/**',
'resources/js/actions/**',
'resources/js/components/ui/*',
'resources/js/routes/**',
'resources/js/wayfinder/**',
],
options: {
denyWarnings: true,
typeAware: true,
},
},
fmt: {
printWidth: 80,
tabWidth: 4,
singleQuote: true,
semi: true,
sortTailwindcss: {
functions: ['clsx', 'cn', 'cva'],
entryPoint: 'resources/css/app.css',
},
},
});

Per-Stack Changes

The React kit moved to @vitejs/plugin-react v6 and now runs the React Compiler through @rolldown/plugin-babel rather than the plugin's babel option:

import babel from '@rolldown/plugin-babel';
import react, { reactCompilerPreset } from '@vitejs/plugin-react';
 
// ...
react(),
babel({
presets: [reactCompilerPreset()],
}),

The Svelte kit swapped lucide-svelte for the supported @lucide/svelte package. The Livewire kit got the smallest diff of the four, since it has no TypeScript to lint: two files changed, moving dev and build to vp and wrapping its plugins in lazyPlugins().

Trying It

New applications generated from the starter kits pick this up automatically. To move an existing Vite project across, VoidZero provides a migration command:

vp migrate

The migration guide notes that complex projects may still need manual follow-up, so read it before running this against production code.

The full diff is in laravel/maestro#60, and the Vite+ documentation lives at viteplus.dev.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Filed in

Sponsored

acquaintsoft logo
Acquaint Softtech

Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

Visit Acquaint Softtech

The latest

View all →
Pessimistic Locking in Laravel Eloquent with refreshForUpdate() image

Pessimistic Locking in Laravel Eloquent with refreshForUpdate()

Read article
Mask Query Bindings in Laravel Exception Messages image

Mask Query Bindings in Laravel Exception Messages

Read article
whereBinary(): Case-Sensitive MySQL Queries in Laravel image

whereBinary(): Case-Sensitive MySQL Queries in Laravel

Read article
Compile PHP to Native Binaries with TypePHP image

Compile PHP to Native Binaries with TypePHP

Read article
State of Laravel 2026 Survey Is Now Open image

State of Laravel 2026 Survey Is Now Open

Read article
Testing Best Practices Skill in Laravel Boost v2.6.0 image

Testing Best Practices Skill in Laravel Boost v2.6.0

Read article