Tools

Laravel and Vue starter

Laravel and Vue are the base. Tick login, social login, Passport, and the other modules, then copy one prompt.

Always in the prompt

Laravel 13Vue 3

Laravel 13 and Vue 3 stay on every prompt. Login, registration, password reset, and email verification are already in this kit.

Already have an app? Paste the error, or composer.json and package.json.

How Vue talks to Laravel
Accounts and access

Your own users sign in with Fortify or Sanctum. Passport is only for another product that brings its own client id. A page that lists every user is not a separate guide yet, so it is not a tick.

Screens
API and jobs
Live updates
Ship it

The prompt

8 guides in this prompt. Paste it into the AI agent you already have open.

prompt
Build this on Laravel and Vue with the official Vue starter kit. Inertia navigates.

Follow the guides in this order. Each block is that guide.

Read https://laravel-vuejs.space/application-setup.md
Create a project with the official Vue starter kit, then add your first model, controller and typed Vue page with Inertia. Every command you need, start to finish.

Read https://laravel-vuejs.space/laravel-fortify-vue.md
The Vue starter kit already ships Fortify screens. Install Fortify when the front end is a separate SPA, or when those actions need a new field.
Do not store a bearer token from these responses.

Read https://laravel-vuejs.space/laravel-vue-policies.md
A policy decides whether this user can update this post. The Vue page receives that boolean. The controller still calls authorize.
Do not take userid from the request body.
Do not ship every user's id to the browser and decide there.
Do not check the role in the Vue page.

Read https://laravel-vuejs.space/laravel-inertia-vue-crud.md
Create, edit, and delete posts from a Vue page, with validation errors, search, and pagination. Continues the official Vue starter kit.
Do not add Vue Router for these screens.
Do not pass $request->all() into create().

Read https://laravel-vuejs.space/laravel-vue-pagination.md
Page a Laravel list in Vue with the links that method actually returns.
Use paginate or simplePaginate when offset pages can skip or repeat.
Use cursorPaginate only when the order column is unique. Order by id.
Do not use a duplicated published_at as the cursor bound.
Do not read last_page or total off simplePaginate.

Read https://laravel-vuejs.space/typescript-laravel-vue-pages.md
defineProps on the Inertia page is the type of the controller payload. A missing key fails the check on your machine, before a blank v-for in the browser.
Do not add a second checker.
Do not silence it with as any.

Read https://laravel-vuejs.space/test-laravel-vue.md
Pest hits the Laravel routes. Vitest and Vue Test Utils hit one component. The starter kit does not ship a Vitest script until you add one.
Do not claim the kit's package.json already has Vitest.
Do not mount posts/Index.vue and stub router.get just to see a heading.

Read https://laravel-vuejs.space/deploy-laravel-vue.md
Ship the Vue starter kit without leaving the dev server file on the machine.
On Laravel Cloud, the deploy command is php artisan migrate --force.
Use npm run build:ssr when those pages need server HTML.
On a VPS, run storage:link once for the public disk and supervise the queue.
Do not put storage:link or queue:restart in the Cloud deploy command.
Do not deploy public/hot.
Do not run composer dev:ssr. The kit has no such script.

Show the diff. Do not commit.

https://laravel-vuejs.space/starter?app=inertia&m=fortify%2Cpolicies%2Ccrud%2Cpagination%2Ctypescript%2Ctests%2Cdeploy