Laravel Starter Kits Now Ship with Vite+
Laravel #Laravel #Vite+ #Starter Kits #Frontend Tooling #Oxlint

Laravel Starter Kits Now Ship with Vite+

3 min read Mohamed Said Mohamed Said

Laravel Starter Kits Switch to Vite+

As of August 28, 2026, every Laravel starter kit ships with Vite+, the unified frontend toolchain that entered beta on July 2, 2026. Taylor Otwell announced the change on X, and the work landed in laravel/maestro#60, contributed by Wendell Adriel. Maestro then synced the update across the React, Vue, Svelte, and Livewire repositories on the same day, pinning 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 also manages your runtime and package manager. For Laravel developers, the most immediate effect is that ESLint and Prettier are gone from the frontend setup.

Four Scripts Become Two

The Inertia-based kits previously exposed four separate npm scripts — lint, lint:check, format, and format:check. These collapse into a single vp check command that formats with Oxfmt, lints with Oxlint, and runs a type check 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 suit, running npm run check where it previously chained npm run lint:check and npm run format:check.

The old toolchain removal also deleted eslint.config.js, .prettierrc, and .prettierignore from each Inertia kit, along with roughly a dozen devDependencies including eslint, typescript-eslint, prettier, prettier-plugin-tailwindcss, and the various ESLint plugins for React, Vue, Svelte, and imports. The React kit alone shed 129 lines of ESLint configuration.

Lint and Format Rules Move into vite.config.ts

With standalone config files removed, lint and format rules now live directly in vite.config.ts under lint and fmt keys. Warnings are treated as failures, and type-aware linting is enabled by default:

import { defineConfig, lazyPlugins } from 'vite-plus';

export default defineConfig({
    plugins: lazyPlugins(() => [
        // ...
    ]),
    lint: {
        ignorePatterns: [
            'vendor/**',
            'bootstrap/ssr/**',
            'resources/js/components/ui/*',
        ],
        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

  • React — Upgraded to @vitejs/plugin-react v6; the React Compiler now runs through @rolldown/plugin-babel instead of the plugin's babel option.
  • Svelte — Swapped lucide-svelte for the officially supported @lucide/svelte package.
  • Vue — Received the standard toolchain swap with no additional framework-specific changes noted.
  • Livewire — Smallest diff of the four (no TypeScript to lint): dev and build scripts moved to vp, and plugins wrapped in lazyPlugins().

Migrating an Existing Project

New applications generated from any starter kit pick up Vite+ automatically. For existing Vite projects, VoidZero provides a migration command:

vp migrate

The official migration guide notes that complex projects may still require manual follow-up, so review it carefully before running this against production code.

Key Takeaways

  • All Laravel starter kits now pin vite-plus at 0.3.0.
  • ESLint, Prettier, and their config files are removed from every Inertia kit.
  • Four npm scripts collapse into vp check and vp check --fix.
  • Lint and format configuration moves into vite.config.ts.
  • Type-aware linting and warning-as-error are on by default.
  • Existing projects can migrate with vp migrate, but manual review is advised.

Source: Laravel Starter Kits Now Ship with Vite+ — Laravel News

Found this useful?

Frequently Asked Questions

3 questions
Q01 What does Vite+ replace in Laravel starter kits?
Vite+ replaces ESLint and Prettier, along with their configuration files (eslint.config.js, .prettierrc, .prettierignore) and roughly a dozen related devDependencies. Linting is now handled by Oxlint and formatting by Oxfmt, both bundled inside the vite-plus package.
Q02 How do I migrate an existing Laravel project to Vite+?
VoidZero provides a migration command: run `vp migrate` in your project root. The official migration guide warns that complex projects may need manual follow-up, so read the guide at viteplus.dev before running it against production code.
Q03 Which Laravel starter kit variants are affected by the Vite+ switch?
All four variants — React, Vue, Svelte, and Livewire — were updated simultaneously when Maestro synced the change from laravel/maestro#60.

Continue reading

More Articles

View all