Vue Starter Kit - v1.0.1

FAQ

Why Vue + Inertia and not just React?

Inertia gives you Laravel routing, controllers, and Eloquent (i.e. server-side state) while keeping the page-rendering layer in React. You write controllers like normal Laravel and pass props to React pages — no API layer to maintain. For most Laravel apps that want a richer frontend than Blade can give, this is the smallest jump.

How is this different from Laravel's official laravel/vue-starter-kit?

This kit:

  • Uses @artisanpack-ui/vue components instead of shadcn-style copy-pasted components
  • Uses DaisyUI + Tailwind 4 (Laravel's official kit uses pure Tailwind)
  • Ships Wayfinder for typed route helpers
  • Has an interactive optional-packages prompt during install (CMS framework, hooks, media library, etc.)
  • Integrates with the broader ArtisanPack UI ecosystem

If you want the official Laravel experience, use that one. If you want batteries-included with ArtisanPack UI, use this one.

Can I switch from React to Vue?

There's a Vue version of this kit. Switching mid-project means rewriting every .vue to .vue. Backend controllers, routes, and migrations are identical between the two kits.

Where do I customize the theme?

resources/css/app.css — change the DaisyUI plugin theme list. For finer control, override the CSS variables published by @artisanpack-ui/tokens.

Can I drop SSR?

Yes. SSR is opt-in via composer dev:ssr / npm run build:ssr / running php artisan inertia:start-ssr in production. If you don't run those, the app falls back to client-side rendering. The Vite plugin still scans resources/js/ssr.vue during builds, but skip building/running it if you don't need it.

Do I have to use Wayfinder?

No. The kit demonstrates one Wayfinder usage in pages/auth/Login.vue — everywhere else uses literal URL strings. You can:

  • Use Wayfinder helpers everywhere (typed, refactor-safe)
  • Use literal strings everywhere (zero ceremony, no codegen step)
  • Mix both — there's no harm

The wayfinder:generate step in post-create-project-cmd is harmless if you don't use it.

Where are the auth views?

There aren't separate "views" in the Blade sense — every auth screen is an Inertia page in resources/js/pages/auth/*.vue. The Blade root template (resources/views/app.blade.php) is the only Blade file the app renders.

How do I add a new optional package to the install prompt?

Edit app/Console/Commands/OptionalPackagesCommand.php and add to the multiselect list:

$packages = multiselect(
    __('Which optional packages would you like to install?'),
    [
        'artisanpack-ui/cms-framework',
        // add yours here
        'your-vendor/your-package',
    ]
);

How do I disable the toast region?

Remove the <InertiaToastProvider> wrapper from AppLayout.vue and AuthLayout.vue. Flash messages will still pass through Inertia shared props — you just won't see the toasts.

Does this work with PHP 8.1?

No. The kit requires PHP 8.2+ (Laravel 12 requirement).

Does this work with React 18?

The npm dependencies pin react@^19.0.0 and react-dom@^19.0.0. Downgrade in your package.json to use 18 — the Vue adapter declares peer-dep range ^18.0.0 || ^19.0.0.

How do I deploy this?

See deployment.md. Short version: standard Laravel deploy + npm run build:ssr + run php artisan inertia:start-ssr under a process supervisor.

Where do I report bugs?

github.com/ArtisanPack-UI/vue-starter-kit/issues

For component-level bugs, file against the upstream package: github.com/ArtisanPack-UI/react/issues.